From 914df6b545f4ff7fbbd4b64c10d22d0a166ea05c Mon Sep 17 00:00:00 2001 From: Johan Gunnarsson Date: Tue, 22 Sep 2020 20:03:05 +0200 Subject: [PATCH] zz-update-uimg: Remove hardcoded partition, device and FS type * Boot from the partition and device that was actually probed (needed by for example Tinker Board). * Boot with the DTB that U-Boot provided if the DTB file was not found in the boot partition (needed by for example QEMU virt). * Let U-Boot figure out filesystem type. --- .../etc/initramfs/post-update.d/zz-update-uimg | 16 ++++++++++------ .../etc/initramfs/post-update.d/zz-update-uimg | 16 ++++++++++------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/2nd-stage-files/pre-2nd-stage-files-arm64/etc/initramfs/post-update.d/zz-update-uimg b/2nd-stage-files/pre-2nd-stage-files-arm64/etc/initramfs/post-update.d/zz-update-uimg index b3d2841..c24a76e 100755 --- a/2nd-stage-files/pre-2nd-stage-files-arm64/etc/initramfs/post-update.d/zz-update-uimg +++ b/2nd-stage-files/pre-2nd-stage-files-arm64/etc/initramfs/post-update.d/zz-update-uimg @@ -13,12 +13,16 @@ FDT=/usr/lib/linux # Create U-Boot boot script cat << EOF > /boot/boot.cmd -mmc dev 0 -ext4load mmc 0:2 \${kernel_addr_r} /boot/vmlinuz-${ABI} -ext4load mmc 0:2 \${ramdisk_addr_r} /boot/initrd.uimg-${ABI} -ext4load mmc 0:2 \${fdt_addr_r} ${FDT}/\${fdtfile} -setenv bootargs "root=/dev/mmcblk0p2 rw rootwait" -booti \${kernel_addr_r} \${ramdisk_addr_r} \${fdt_addr_r} +load \${devtype} \${devnum}:\${distro_bootpart} \${kernel_addr_r} /boot/vmlinuz-${ABI} +load \${devtype} \${devnum}:\${distro_bootpart} \${ramdisk_addr_r} /boot/initrd.uimg-${ABI} +part uuid \${devtype} \${devnum}:\${distro_bootpart} partuuid +setenv bootargs root=PARTUUID=\${partuuid} rw rootwait +if test -e \${devtype} \${devnum}:\${distro_bootpart} ${FDT}/\${fdtfile}; then + load \${devtype} \${devnum}:\${distro_bootpart} \${fdt_addr_r} ${FDT}/\${fdtfile} + booti \${kernel_addr_r} \${ramdisk_addr_r} \${fdt_addr_r} +else + booti \${kernel_addr_r} \${ramdisk_addr_r} \${fdt_addr} +fi EOF # Create U-Boot boot script diff --git a/2nd-stage-files/pre-2nd-stage-files-armhf/etc/initramfs/post-update.d/zz-update-uimg b/2nd-stage-files/pre-2nd-stage-files-armhf/etc/initramfs/post-update.d/zz-update-uimg index e192505..3921a54 100755 --- a/2nd-stage-files/pre-2nd-stage-files-armhf/etc/initramfs/post-update.d/zz-update-uimg +++ b/2nd-stage-files/pre-2nd-stage-files-armhf/etc/initramfs/post-update.d/zz-update-uimg @@ -13,12 +13,16 @@ FDT=/usr/lib/linux # Create U-Boot boot script cat << EOF > /boot/boot.cmd -mmc dev 0 -ext4load mmc 0:2 \${kernel_addr_r} /boot/vmlinuz-${ABI} -ext4load mmc 0:2 \${ramdisk_addr_r} /boot/initrd.uimg-${ABI} -ext4load mmc 0:2 \${fdt_addr_r} ${FDT}/\${fdtfile} -setenv bootargs "root=/dev/mmcblk0p2 rw rootwait" -bootz \${kernel_addr_r} \${ramdisk_addr_r} \${fdt_addr_r} +load \${devtype} \${devnum}:\${distro_bootpart} \${kernel_addr_r} /boot/vmlinuz-${ABI} +load \${devtype} \${devnum}:\${distro_bootpart} \${ramdisk_addr_r} /boot/initrd.uimg-${ABI} +part uuid \${devtype} \${devnum}:\${distro_bootpart} partuuid +setenv bootargs root=PARTUUID=\${partuuid} rw rootwait +if test -e \${devtype} \${devnum}:\${distro_bootpart} ${FDT}/\${fdtfile}; then + load \${devtype} \${devnum}:\${distro_bootpart} \${fdt_addr_r} ${FDT}/\${fdtfile} + bootz \${kernel_addr_r} \${ramdisk_addr_r} \${fdt_addr_r} +else + bootz \${kernel_addr_r} \${ramdisk_addr_r} \${fdt_addr} +fi EOF # Create U-Boot boot script