From 9a820765924a311b7d7c8ccc740c86370c7efd26 Mon Sep 17 00:00:00 2001 From: Josua Mayer Date: Thu, 19 Oct 2017 09:22:11 +0200 Subject: [PATCH] mvebu: clearfog: use partition uuid for root= bootarg 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 [replace lede with openwrt, redact commit message] Signed-off-by: Tomasz Maciej Nowak --- target/linux/mvebu/image/cfbase-boot.script | 13 +++++++------ target/linux/mvebu/image/cfpro-boot.script | 13 +++++++------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/target/linux/mvebu/image/cfbase-boot.script b/target/linux/mvebu/image/cfbase-boot.script index 89fa1dc578..6ab6e363bc 100644 --- a/target/linux/mvebu/image/cfbase-boot.script +++ b/target/linux/mvebu/image/cfbase-boot.script @@ -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 diff --git a/target/linux/mvebu/image/cfpro-boot.script b/target/linux/mvebu/image/cfpro-boot.script index 1588c1546e..5971b0da77 100644 --- a/target/linux/mvebu/image/cfpro-boot.script +++ b/target/linux/mvebu/image/cfpro-boot.script @@ -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 -- 2.30.2