diff options
author | Ye.Li <B37916@freescale.com> | 2014-06-26 19:25:09 +0800 |
---|---|---|
committer | Ye.Li <B37916@freescale.com> | 2014-06-30 11:31:43 +0800 |
commit | 7feb8533f52677f641e3ff88a996cd3f1f722708 (patch) | |
tree | f70c5bb35d29dc63b94bdafeee31cd723c516b0e /include | |
parent | 987c48c07c9ef62fa3fe55faa6f7369b30637127 (diff) | |
download | u-boot-imx-7feb8533f52677f641e3ff88a996cd3f1f722708.zip u-boot-imx-7feb8533f52677f641e3ff88a996cd3f1f722708.tar.gz u-boot-imx-7feb8533f52677f641e3ff88a996cd3f1f722708.tar.bz2 |
ENGR00320125 iMX6: Change to use dynamical mmcroot
The kernel changes to fix the mmcblk index with USDHC controllers
as below:
mmcblk0 ---> USDHC1
mmcblk1 ---> USDHC2
mmcblk2 ---> USDHC3
mmcblk3 ---> USDHC4
So in u-boot, the "mmcroot" must be updated together.
When booting from SD/MMC device, change the "mmcroot" to
dynamically set according to the boot USDHC controller.
It is the same mechanism as "mmcdev" used for kernel image loading.
Therefore, the uboot, kernel image, dtb and rootfs are required
in same SD/MMC card.
To disable the mmc dynamical detection, set the "mmcautodetect" to "no",
then "mmcroot" and "mmcdev" will not be overwritten.
When booting from other devices which needs to load kernel, dtb and
rootfs from SD/MMC card, their "mmcdev" reset vaule is
CONFIG_SYS_MMC_ENV_DEV and "mmcroot" reset value is CONFIG_MMCROOT.
Signed-off-by: Ye.Li <B37916@freescale.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/configs/mx6qarm2.h | 8 | ||||
-rw-r--r-- | include/configs/mx6qsabreauto.h | 4 | ||||
-rw-r--r-- | include/configs/mx6sabre_common.h | 17 | ||||
-rw-r--r-- | include/configs/mx6sabresd.h | 2 | ||||
-rw-r--r-- | include/configs/mx6slevk.h | 8 | ||||
-rw-r--r-- | include/configs/mx6sx_17x17_arm2.h | 6 | ||||
-rw-r--r-- | include/configs/mx6sx_19x19_arm2.h | 4 | ||||
-rw-r--r-- | include/configs/mx6sx_arm2.h | 19 | ||||
-rw-r--r-- | include/configs/mx6sxsabresd.h | 6 |
9 files changed, 29 insertions, 45 deletions
diff --git a/include/configs/mx6qarm2.h b/include/configs/mx6qarm2.h index 05fb579..27e9ad0 100644 --- a/include/configs/mx6qarm2.h +++ b/include/configs/mx6qarm2.h @@ -95,9 +95,10 @@ "initrd_high=0xffffffff\0" \ "boot_fdt=try\0" \ "ip_dyn=yes\0" \ - "mmcdev=1\0" \ + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ "mmcpart=1\0" \ - "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ + "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ + "mmcautodetect=yes\0" \ "mmcargs=setenv bootargs console=${console},${baudrate} " \ "root=${mmcroot}\0" \ "loadbootscript=" \ @@ -204,8 +205,9 @@ #define CONFIG_ENV_OFFSET (8 * 64 * 1024) #define CONFIG_ENV_SIZE (8 * 1024) #define CONFIG_ENV_IS_IN_MMC -#define CONFIG_SYS_MMC_ENV_DEV 1 +#define CONFIG_SYS_MMC_ENV_DEV 1 /* SDHC4 */ #define CONFIG_SYS_MMC_ENV_PART 0 /* user partition */ +#define CONFIG_MMCROOT "/dev/mmcblk3p2" /* SDHC4 */ #define CONFIG_OF_LIBFDT #define CONFIG_CMD_BOOTZ diff --git a/include/configs/mx6qsabreauto.h b/include/configs/mx6qsabreauto.h index 133e218..48e64e5 100644 --- a/include/configs/mx6qsabreauto.h +++ b/include/configs/mx6qsabreauto.h @@ -12,7 +12,7 @@ #define CONFIG_MACH_TYPE 3529 #define CONFIG_MXC_UART_BASE UART4_BASE #define CONFIG_CONSOLE_DEV "ttymxc3" -#define CONFIG_MMCROOT "/dev/mmcblk0p2" +#define CONFIG_MMCROOT "/dev/mmcblk2p2" /* SDHC3 */ #define CONFIG_SYS_USE_NAND @@ -40,7 +40,7 @@ #endif #define CONFIG_SYS_FSL_USDHC_NUM 2 -#define CONFIG_SYS_MMC_ENV_DEV 1 +#define CONFIG_SYS_MMC_ENV_DEV 1 /* SDHC3 */ #define CONFIG_SYS_MMC_ENV_PART 0 /* user partition */ #ifdef CONFIG_SYS_USE_SPINOR diff --git a/include/configs/mx6sabre_common.h b/include/configs/mx6sabre_common.h index b74b752..9962e3d 100644 --- a/include/configs/mx6sabre_common.h +++ b/include/configs/mx6sabre_common.h @@ -104,19 +104,6 @@ #define CONFIG_MFG_NAND_PARTITION "" #endif -/* - * For the SPI/WEIM NOR, it can't store all the images into it due to it's - * capacity, we need one default mmc device to load the left image or rootfs. - * The end user need change the default setting according to their needs. - * For NAND/SATA boot, the storage is big enough to hold all the stuff. - * For SD/MMC boot, mmcdev is dynamiclly created due to the boot SD/MMC slot. - */ -#if defined(CONFIG_SYS_BOOT_EIMNOR) || defined(CONFIG_SYS_BOOT_SPINOR) -#define CONFIG_MMC_DEV_SET "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) -#else -#define CONFIG_MMC_DEV_SET " " -#endif - #define CONFIG_MFG_ENV_SETTINGS \ "mfgtool_args=setenv bootargs console=" CONFIG_CONSOLE_DEV ",115200 " \ "rdinit=/linuxrc " \ @@ -177,10 +164,10 @@ "console=" CONFIG_CONSOLE_DEV "\0" \ "fdt_high=0xffffffff\0" \ "initrd_high=0xffffffff\0" \ - CONFIG_MMC_DEV_SET \ - "\0" \ + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ + "mmcautodetect=yes\0" \ "update_sd_firmware=" \ "if test ${ip_dyn} = yes; then " \ "setenv get_cmd dhcp; " \ diff --git a/include/configs/mx6sabresd.h b/include/configs/mx6sabresd.h index e12d084..ed85b84 100644 --- a/include/configs/mx6sabresd.h +++ b/include/configs/mx6sabresd.h @@ -15,7 +15,7 @@ #define CONFIG_MACH_TYPE 3980 #define CONFIG_MXC_UART_BASE UART1_BASE #define CONFIG_CONSOLE_DEV "ttymxc0" -#define CONFIG_MMCROOT "/dev/mmcblk0p2" +#define CONFIG_MMCROOT "/dev/mmcblk2p2" /* SDHC3 */ #include "mx6sabre_common.h" diff --git a/include/configs/mx6slevk.h b/include/configs/mx6slevk.h index 84078c1..f46fca8 100644 --- a/include/configs/mx6slevk.h +++ b/include/configs/mx6slevk.h @@ -120,9 +120,10 @@ "fdt_addr=0x83000000\0" \ "boot_fdt=try\0" \ "ip_dyn=yes\0" \ - "mmcdev=1\0" \ + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ "mmcpart=1\0" \ - "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ + "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ + "mmcautodetect=yes\0" \ "mmcargs=setenv bootargs console=${console},${baudrate} " \ "root=${mmcroot}\0" \ "loadbootscript=" \ @@ -221,8 +222,9 @@ #define CONFIG_SYS_NO_FLASH #define CONFIG_ENV_SIZE SZ_8K -#define CONFIG_SYS_MMC_ENV_DEV 1 +#define CONFIG_SYS_MMC_ENV_DEV 1 /* USDHC2 */ #define CONFIG_SYS_MMC_ENV_PART 0 /* user partition */ +#define CONFIG_MMCROOT "/dev/mmcblk1p2" /* USDHC2 */ #if defined CONFIG_SYS_BOOT_SPINOR #define CONFIG_SYS_USE_SPINOR diff --git a/include/configs/mx6sx_17x17_arm2.h b/include/configs/mx6sx_17x17_arm2.h index 9db44cf..bedb1db 100644 --- a/include/configs/mx6sx_17x17_arm2.h +++ b/include/configs/mx6sx_17x17_arm2.h @@ -13,12 +13,14 @@ #ifdef CONFIG_SYS_USE_SPINOR /* Pin conflict between SPI-NOR and SD2 */ #define CONFIG_SYS_FSL_USDHC_NUM 2 -#define CONFIG_SYS_MMC_ENV_DEV 0 +#define CONFIG_SYS_MMC_ENV_DEV 0 /* USDHC3 */ #define CONFIG_SYS_MMC_ENV_PART 0 /* user area */ +#define CONFIG_MMCROOT "/dev/mmcblk2p2" /* USDHC3 */ #else #define CONFIG_SYS_FSL_USDHC_NUM 3 -#define CONFIG_SYS_MMC_ENV_DEV 1 +#define CONFIG_SYS_MMC_ENV_DEV 1 /* USDHC3 */ #define CONFIG_SYS_MMC_ENV_PART 0 /* user area */ +#define CONFIG_MMCROOT "/dev/mmcblk2p2" /* USDHC3 */ #endif #ifdef CONFIG_SYS_USE_EIMNOR diff --git a/include/configs/mx6sx_19x19_arm2.h b/include/configs/mx6sx_19x19_arm2.h index c6265fd..e2bb434 100644 --- a/include/configs/mx6sx_19x19_arm2.h +++ b/include/configs/mx6sx_19x19_arm2.h @@ -15,6 +15,8 @@ #include "mx6sx_arm2.h" #define CONFIG_SYS_FSL_USDHC_NUM 1 -#define CONFIG_SYS_MMC_ENV_DEV 0 +#define CONFIG_SYS_MMC_ENV_DEV 0 /* USDHC1 */ #define CONFIG_SYS_MMC_ENV_PART 0 /* user area */ +#define CONFIG_MMCROOT "/dev/mmcblk0p2" /* USDHC1 */ + #endif diff --git a/include/configs/mx6sx_arm2.h b/include/configs/mx6sx_arm2.h index 2168fc6..6a7b7bc 100644 --- a/include/configs/mx6sx_arm2.h +++ b/include/configs/mx6sx_arm2.h @@ -148,19 +148,6 @@ #define CONFIG_MFG_NAND_PARTITION "" #endif -/* - * For the SPI/WEIM NOR, it can't store all the images into it due to it's - * capacity, we need one default mmc device to load the left image or rootfs. - * The end user need change the default setting according to their needs. - * For NAND/SATA boot, the storage is big enough to hold all the stuff. - * For SD/MMC boot, mmcdev is dynamiclly created due to the boot SD/MMC slot. - */ -#if defined(CONFIG_SYS_BOOT_EIMNOR) || defined(CONFIG_SYS_BOOT_SPINOR) || defined(CONFIG_SYS_BOOT_QSPI) -#define CONFIG_MMC_DEV_SET "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) -#else -#define CONFIG_MMC_DEV_SET " " -#endif - #ifdef CONFIG_VIDEO #define CONFIG_VIDEO_MODE \ "panel=Hannstar-XGA\0" @@ -207,10 +194,10 @@ "fdt_addr=0x83000000\0" \ "boot_fdt=try\0" \ "ip_dyn=yes\0" \ - CONFIG_MMC_DEV_SET \ - "\0" \ + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \ - "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ + "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ + "mmcautodetect=yes\0" \ "mmcargs=setenv bootargs console=${console},${baudrate} " \ "root=${mmcroot}\0" \ "loadbootscript=" \ diff --git a/include/configs/mx6sxsabresd.h b/include/configs/mx6sxsabresd.h index c92e1f2..38a2c22 100644 --- a/include/configs/mx6sxsabresd.h +++ b/include/configs/mx6sxsabresd.h @@ -183,9 +183,10 @@ "fdt_addr=0x83000000\0" \ "boot_fdt=try\0" \ "ip_dyn=yes\0" \ - "mmcdev=2\0" \ + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ "mmcpart=1\0" \ - "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ + "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ + "mmcautodetect=yes\0" \ "mmcargs=setenv bootargs console=${console},${baudrate} " \ "root=${mmcroot}\0" \ "loadbootscript=" \ @@ -314,6 +315,7 @@ #define CONFIG_SYS_MMC_ENV_DEV 2 /*USDHC4*/ #define CONFIG_SYS_MMC_ENV_PART 0 /* user area */ +#define CONFIG_MMCROOT "/dev/mmcblk3p2" /* USDHC4 */ #if defined(CONFIG_ENV_IS_IN_MMC) #define CONFIG_ENV_OFFSET (8 * SZ_64K) |