diff --git a/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary b/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary index 916bc424..b6886ff8 100755 --- a/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary +++ b/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary @@ -39,9 +39,16 @@ create_partitions() { # same as arm64/armhf, but set bit 2 legacy bios bootable # on the first partition for uboot sgdisk "${disk_image}" \ - --new=15:0:204800 \ + --set-alignment=2 \ + --new=13:34:2081 \ + --change-name=13:loader1 \ + --typecode=13:5B193300-FC78-40CD-8002-E86C45580B47 \ + --new=14:2082:10273 \ + --change-name=14:loader2 \ + --typecode=14:2E54B353-1271-4842-806F-E436D6AF6985 \ + --new=15::+106M\ --typecode=15:ef00 \ - --new=1: \ + --new=1:: \ --attributes=1:set:2 ;; amd64) @@ -103,11 +110,18 @@ install_grub() { ;; riscv64) # TODO does not exist yet on riscv64 - chroot mountpoint apt-get install -qqy u-boot-menu #grub-efi-riscv64 + chroot mountpoint apt-get install -qqy u-boot-menu u-boot-sifive #grub-efi-riscv64 efi_target=riscv64-efi chroot mountpoint u-boot-update + # FSBL, which gets U-Boot SPL + loader1="/dev/mapper${loop_device///dev/}p13" + # The real U-Boot + loader2="/dev/mapper${loop_device///dev/}p14" + + dd if=mountpoint/usr/lib/u-boot/sifive_fu540/u-boot-spl.bin of=$loader1 + dd if=mountpoint/usr/lib/u-boot/sifive_fu540/u-boot.itb of=$loader2 ## TODO remove below once we have grub-efi-riscv64 rm mountpoint/tmp/device.map umount mountpoint/boot/efi