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.
This commit is contained in:
Johan Gunnarsson 2020-09-22 20:03:05 +02:00
parent b4e8aacb2f
commit 914df6b545
2 changed files with 20 additions and 12 deletions

View File

@ -13,12 +13,16 @@ FDT=/usr/lib/linux
# Create U-Boot boot script # Create U-Boot boot script
cat << EOF > /boot/boot.cmd cat << EOF > /boot/boot.cmd
mmc dev 0 load \${devtype} \${devnum}:\${distro_bootpart} \${kernel_addr_r} /boot/vmlinuz-${ABI}
ext4load mmc 0:2 \${kernel_addr_r} /boot/vmlinuz-${ABI} load \${devtype} \${devnum}:\${distro_bootpart} \${ramdisk_addr_r} /boot/initrd.uimg-${ABI}
ext4load mmc 0:2 \${ramdisk_addr_r} /boot/initrd.uimg-${ABI} part uuid \${devtype} \${devnum}:\${distro_bootpart} partuuid
ext4load mmc 0:2 \${fdt_addr_r} ${FDT}/\${fdtfile} setenv bootargs root=PARTUUID=\${partuuid} rw rootwait
setenv bootargs "root=/dev/mmcblk0p2 rw rootwait" if test -e \${devtype} \${devnum}:\${distro_bootpart} ${FDT}/\${fdtfile}; then
booti \${kernel_addr_r} \${ramdisk_addr_r} \${fdt_addr_r} 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 EOF
# Create U-Boot boot script # Create U-Boot boot script

View File

@ -13,12 +13,16 @@ FDT=/usr/lib/linux
# Create U-Boot boot script # Create U-Boot boot script
cat << EOF > /boot/boot.cmd cat << EOF > /boot/boot.cmd
mmc dev 0 load \${devtype} \${devnum}:\${distro_bootpart} \${kernel_addr_r} /boot/vmlinuz-${ABI}
ext4load mmc 0:2 \${kernel_addr_r} /boot/vmlinuz-${ABI} load \${devtype} \${devnum}:\${distro_bootpart} \${ramdisk_addr_r} /boot/initrd.uimg-${ABI}
ext4load mmc 0:2 \${ramdisk_addr_r} /boot/initrd.uimg-${ABI} part uuid \${devtype} \${devnum}:\${distro_bootpart} partuuid
ext4load mmc 0:2 \${fdt_addr_r} ${FDT}/\${fdtfile} setenv bootargs root=PARTUUID=\${partuuid} rw rootwait
setenv bootargs "root=/dev/mmcblk0p2 rw rootwait" if test -e \${devtype} \${devnum}:\${distro_bootpart} ${FDT}/\${fdtfile}; then
bootz \${kernel_addr_r} \${ramdisk_addr_r} \${fdt_addr_r} 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 EOF
# Create U-Boot boot script # Create U-Boot boot script