mx6sabre: Use PARTUUID to specify the rootfs location

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>
This commit is contained in:
Fabio Estevam 2017-07-10 15:59:12 -03:00 committed by Stefano Babic
parent ca62e5d043
commit 00f43e51c5
5 changed files with 5 additions and 4 deletions

View file

@ -22,6 +22,7 @@ CONFIG_CMD_BOOTZ=y
# CONFIG_CMD_IMLS is not set # CONFIG_CMD_IMLS is not set
# CONFIG_CMD_FLASH is not set # CONFIG_CMD_FLASH is not set
CONFIG_CMD_MMC=y CONFIG_CMD_MMC=y
CONFIG_CMD_PART=y
CONFIG_CMD_SF=y CONFIG_CMD_SF=y
CONFIG_CMD_I2C=y CONFIG_CMD_I2C=y
CONFIG_CMD_USB=y CONFIG_CMD_USB=y

View file

@ -23,6 +23,7 @@ CONFIG_CMD_BOOTZ=y
# CONFIG_CMD_IMLS is not set # CONFIG_CMD_IMLS is not set
# CONFIG_CMD_FLASH is not set # CONFIG_CMD_FLASH is not set
CONFIG_CMD_MMC=y CONFIG_CMD_MMC=y
CONFIG_CMD_PART=y
CONFIG_CMD_SF=y CONFIG_CMD_SF=y
CONFIG_CMD_I2C=y CONFIG_CMD_I2C=y
CONFIG_CMD_USB=y CONFIG_CMD_USB=y

View file

@ -77,7 +77,7 @@
"initrd_high=0xffffffff\0" \ "initrd_high=0xffffffff\0" \
"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \ "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
"mmcpart=1\0" \ "mmcpart=1\0" \
"mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
"update_sd_firmware=" \ "update_sd_firmware=" \
"if test ${ip_dyn} = yes; then " \ "if test ${ip_dyn} = yes; then " \
"setenv get_cmd dhcp; " \ "setenv get_cmd dhcp; " \
@ -93,7 +93,7 @@
"fi\0" \ "fi\0" \
EMMC_ENV \ EMMC_ENV \
"mmcargs=setenv bootargs console=${console},${baudrate} " \ "mmcargs=setenv bootargs console=${console},${baudrate} " \
"root=${mmcroot}\0" \ "root=PARTUUID=${uuid} rootwait rw\0" \
"loadbootscript=" \ "loadbootscript=" \
"fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
"bootscript=echo Running bootscript from mmc ...; " \ "bootscript=echo Running bootscript from mmc ...; " \
@ -101,6 +101,7 @@
"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
"mmcboot=echo Booting from mmc ...; " \ "mmcboot=echo Booting from mmc ...; " \
"run finduuid; " \
"run mmcargs; " \ "run mmcargs; " \
"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
"if run loadfdt; then " \ "if run loadfdt; then " \

View file

@ -16,7 +16,6 @@
#define CONFIG_MACH_TYPE 3529 #define CONFIG_MACH_TYPE 3529
#define CONFIG_MXC_UART_BASE UART4_BASE #define CONFIG_MXC_UART_BASE UART4_BASE
#define CONSOLE_DEV "ttymxc3" #define CONSOLE_DEV "ttymxc3"
#define CONFIG_MMCROOT "/dev/mmcblk0p2"
/* USB Configs */ /* USB Configs */
#define CONFIG_USB_HOST_ETHER #define CONFIG_USB_HOST_ETHER

View file

@ -16,7 +16,6 @@
#define CONFIG_MACH_TYPE 3980 #define CONFIG_MACH_TYPE 3980
#define CONFIG_MXC_UART_BASE UART1_BASE #define CONFIG_MXC_UART_BASE UART1_BASE
#define CONSOLE_DEV "ttymxc0" #define CONSOLE_DEV "ttymxc0"
#define CONFIG_MMCROOT "/dev/mmcblk1p2"
#define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */ #define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */