mx6sabre: Use PARTUUID to specify the rootfs location
authorFabio Estevam <fabio.estevam@nxp.com>
Mon, 10 Jul 2017 18:59:12 +0000 (15:59 -0300)
committerStefano Babic <sbabic@denx.de>
Wed, 12 Jul 2017 08:23:37 +0000 (10:23 +0200)
mx6sabre boards can run different kernel versions, such as NXP 4.1 or
mainline.

Currently the rootfs location is passed via mmcblk number and the
problem with this approach is that the mmcblk number for the eMMC
changes depending on the kernel version.

In order to avoid such issue, use UUID method to specify the rootfs
location.

Succesfully tested booting a NXP 4.1 and also a mainline kernel on a
mx6qsabresd and mx6dlsabreauto.

Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
configs/mx6sabreauto_defconfig
configs/mx6sabresd_defconfig
include/configs/mx6sabre_common.h
include/configs/mx6sabreauto.h
include/configs/mx6sabresd.h

index f904cbfe8d106a5df37be5b4d612c5b7acfaa384..236af953b5e06b3f488590138618cf8664aa6424 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_CMD_BOOTZ=y
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_MMC=y
+CONFIG_CMD_PART=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_USB=y
index 972e971a6a84789f6301ebb74f1e1b96bea7e6c1..d8e05cfe04c54974cf62fc510bb549e137e26954 100644 (file)
@@ -23,6 +23,7 @@ CONFIG_CMD_BOOTZ=y
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 CONFIG_CMD_MMC=y
+CONFIG_CMD_PART=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_USB=y
index 9b0fe5a3c27c8e5484a93a017bd5444dc0b21983..d4e4628841e1c7efadad269546080c690ae20eab 100644 (file)
@@ -77,7 +77,7 @@
        "initrd_high=0xffffffff\0" \
        "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
        "mmcpart=1\0" \
-       "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
+       "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
        "update_sd_firmware=" \
                "if test ${ip_dyn} = yes; then " \
                        "setenv get_cmd dhcp; " \
@@ -93,7 +93,7 @@
                "fi\0" \
        EMMC_ENV          \
        "mmcargs=setenv bootargs console=${console},${baudrate} " \
-               "root=${mmcroot}\0" \
+               "root=PARTUUID=${uuid} rootwait rw\0" \
        "loadbootscript=" \
                "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
        "bootscript=echo Running bootscript from mmc ...; " \
        "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
        "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
        "mmcboot=echo Booting from mmc ...; " \
+               "run finduuid; " \
                "run mmcargs; " \
                "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
                        "if run loadfdt; then " \
index 2c08fd1baa7ed81d5bc65e15cdee8907e600ded0..1883eb0ba6665f9369f2ef9b75b7cd2913e7ef63 100644 (file)
@@ -16,7 +16,6 @@
 #define CONFIG_MACH_TYPE       3529
 #define CONFIG_MXC_UART_BASE   UART4_BASE
 #define CONSOLE_DEV            "ttymxc3"
-#define CONFIG_MMCROOT                 "/dev/mmcblk0p2"
 
 /* USB Configs */
 #define CONFIG_USB_HOST_ETHER
index 3eba70a5a4a4441daa611281584284d4a0304719..27e767241fbb91cdaf9697f81dcbc6fb72ddd1a5 100644 (file)
@@ -16,7 +16,6 @@
 #define CONFIG_MACH_TYPE       3980
 #define CONFIG_MXC_UART_BASE   UART1_BASE
 #define CONSOLE_DEV            "ttymxc0"
-#define CONFIG_MMCROOT                 "/dev/mmcblk1p2"
 
 #define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */