mvebu: clearfog: use partition uuid for root= bootarg
authorJosua Mayer <josua.mayer97@gmail.com>
Thu, 19 Oct 2017 07:22:11 +0000 (09:22 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 2 Mar 2018 20:33:07 +0000 (21:33 +0100)
U-Boot already knows where it found the boot.scr, and
figuring out the partition UUID becomes trivial at this point.
This change allows booting OpenWrt from whatever storage it has been
flashed to: SD card, eMMC, USB disk or SATA disk.

Signed-off-by: Josua Mayer <josua.mayer97@gmail.com>
[replace lede with openwrt, redact commit message]
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
target/linux/mvebu/image/cfbase-boot.script
target/linux/mvebu/image/cfpro-boot.script

index 89fa1dc578d0cef61e6279e72e09ca6ae00071ae..6ab6e363bc7ea0fec70fecdcaeb155cd1c2aa588 100644 (file)
@@ -7,13 +7,14 @@
 # removed once U-Boot is able to detect the board variant.
 setenv fdtfile armada-388-clearfog-base.dtb
 
-# generate bootargs for rootfs on MMC
-if test "${devtype}" = "mmc"; then
-       setexpr openwrt_rootpart ${distro_bootpart} + 1
-       setenv bootargs ${bootargs} root=/dev/mmcblk${devnum}p${openwrt_rootpart} rootfstype=auto rootwait
-fi
+# rootfs is always on the next partition
+setexpr openwrt_rootpart ${distro_bootpart} + 1
+
+# figure out partition uuid to pass to the kernel as root=
+part uuid ${devtype} ${devnum}:${openwrt_rootpart} uuid
 
-# here one could add logic for other rootfs device types such as scsi and usb
+# generate bootargs (rootfs)
+setenv bootargs ${bootargs} root=PARTUUID=${uuid} rootfstype=auto rootwait
 
 # add console= option to bootargs, if any
 if test -n "${console}"; then
index 1588c1546e5323cd4a0522c25596013ac8b0b60a..5971b0da77ab61cf2873300bc6a016d251ce1898 100644 (file)
@@ -3,13 +3,14 @@
 # This script assumes that there is a boot partition, 
 # and that the root partition is always the next one.
 
-# generate bootargs for rootfs on MMC
-if test "${devtype}" = "mmc"; then
-       setexpr openwrt_rootpart ${distro_bootpart} + 1
-       setenv bootargs ${bootargs} root=/dev/mmcblk${devnum}p${openwrt_rootpart} rootfstype=auto rootwait
-fi
+# rootfs is always on the next partition
+setexpr openwrt_rootpart ${distro_bootpart} + 1
+
+# figure out partition uuid to pass to the kernel as root=
+part uuid ${devtype} ${devnum}:${openwrt_rootpart} uuid
 
-# here one could add logic for other rootfs device types such as scsi and usb
+# generate bootargs (rootfs)
+setenv bootargs ${bootargs} root=PARTUUID=${uuid} rootfstype=auto rootwait
 
 # add console= option to bootargs, if any
 if test -n "${console}"; then