summaryrefslogtreecommitdiff
path: root/alt-rootfs-installer/socs.d/AllWinner-riscv64.sh
diff options
context:
space:
mode:
Diffstat (limited to 'alt-rootfs-installer/socs.d/AllWinner-riscv64.sh')
-rw-r--r--alt-rootfs-installer/socs.d/AllWinner-riscv64.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/alt-rootfs-installer/socs.d/AllWinner-riscv64.sh b/alt-rootfs-installer/socs.d/AllWinner-riscv64.sh
new file mode 100644
index 0000000..1c2c828
--- /dev/null
+++ b/alt-rootfs-installer/socs.d/AllWinner-riscv64.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+# vim:sw=8:noet
+
+BBL=2E54B353-1271-4842-806F-E436D6AF6985
+FSBL=5B193300-FC78-40CD-8002-E86C45580B47
+
+MEDIATABLE=gpt
+START_SECTOR=34 # MiB
+ROOTPART_NUM=1
+CONSOLE=1
+[ -n "$SYSCON" ] || SYSCON=ttyS0,115200n8
+
+soc_write_bootloader() {
+ if [ "$MEDIATABLE" = gpt ]; then
+ [ -n "$ROOTFS" ] || clear_riscv64_bootloader_partition
+
+ # resize gpt table to 7 KiB (56 entries partition)
+ sgdisk -S 56 "${MEDIA-}"
+ fi
+
+ [ -n "$TMPROOT" ] || mount_partition
+ # Write U-Boot
+ set_path_to_uboot
+ print_message "Searching U-Boot files for ${TARGET-}..."
+ [ -d "$UBOOT" ] ||
+ fatal_error "U-Boot files for ${TARGET-} were not found"
+ print_done
+ if [ -f "$UBOOT/u-boot.itb" ]; then
+ print_message "Writing sunxi-spl.bin for ${TARGET-}..."
+ dd if="$UBOOT/sunxi-spl.bin" of="${MEDIA-}" bs=8k seek=1 ||
+ fatal_error "failed to write SPL"
+ sync
+ print_done
+
+ print_message "Writing U-Boot image for ${TARGET-}..."
+ dd if="$UBOOT/u-boot.itb" of="${MEDIA-}" bs=8k seek=5 ||
+ fatal_error "failed to write U-Boot"
+ sync
+ print_done
+ else
+ print_message "Writing u-boot-sunxi-with-spl.bin..."
+ dd if="$UBOOT/u-boot-sunxi-with-spl.bin" of="${MEDIA-}" bs=1024 seek=8 ||
+ fatal_error "failed to write U-Boot"
+ sync
+ print_done
+ fi
+}