summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYe.Li <B37916@freescale.com>2014-06-12 16:38:35 +0800
committerYe.Li <B37916@freescale.com>2014-06-17 11:14:01 +0800
commit0a79c88e23b361d1309f1baaf800a5f7b7af79ad (patch)
tree85bbbad63da27242e99977a151096535b4c6d874
parentbfc7a914724643beb327d6b9412afa468ead81ec (diff)
downloadu-boot-imx-0a79c88e23b361d1309f1baaf800a5f7b7af79ad.zip
u-boot-imx-0a79c88e23b361d1309f1baaf800a5f7b7af79ad.tar.gz
u-boot-imx-0a79c88e23b361d1309f1baaf800a5f7b7af79ad.tar.bz2
ENGR00315894-66 iMX6SX:SABRESD Support M4 fast boot at early stage
T support M4 boot in 50 ms, kick start M4 at "board_early_init_f" stage where u-boot passes ARM and architecture initialization. Add a configuration "CONFIG_SYS_AUXCORE_FASTUP" for this feature enablement. And a build config "mx6sxsabresd_m4fastup". Adjust the default M4 image address to 0x78000000 represented by "CONFIG_SYS_AUXCORE_BOOTDATA". When M4 fast boot is enabled, RDC should be enabled together and the QSPI driver must turn off, because M4 is running on QSPI flash in XIP. Setup this relationship by configurations. Signed-off-by: Ye.Li <B37916@freescale.com>
-rw-r--r--board/freescale/mx6sxsabresd/mx6sxsabresd.c4
-rw-r--r--boards.cfg1
-rw-r--r--include/configs/mx6sxsabresd.h9
3 files changed, 12 insertions, 2 deletions
diff --git a/board/freescale/mx6sxsabresd/mx6sxsabresd.c b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
index 3f098f4..5aca602 100644
--- a/board/freescale/mx6sxsabresd/mx6sxsabresd.c
+++ b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
@@ -555,6 +555,10 @@ int board_early_init_f(void)
imx_rdc_setup_peripherals(shared_resources, ARRAY_SIZE(shared_resources));
#endif
+#ifdef CONFIG_SYS_AUXCORE_FASTUP
+ arch_auxiliary_core_up(0, CONFIG_SYS_AUXCORE_BOOTDATA);
+#endif
+
setup_iomux_uart();
return 0;
}
diff --git a/boards.cfg b/boards.cfg
index e69272e..6b3618c 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -361,6 +361,7 @@ Active arm armv7 mx6 freescale mx6sx_19x19_arm2
Active arm armv7 mx6 freescale mx6sx_19x19_arm2 mx6sx_19x19_lpddr2_arm2_qspi2 mx6sx_19x19_arm2:IMX_CONFIG=board/freescale/mx6sx_19x19_arm2/imximage_lpddr2.cfg,MX6SX,LPDDR2,DEFAULT_FDT_FILE="imx6sx-19x19-arm2.dtb",SYS_BOOT_QSPI
Active arm armv7 mx6 freescale mx6sxsabresd mx6sxsabresd mx6sxsabresd:IMX_CONFIG=board/freescale/mx6sxsabresd/imximage.cfg,MX6SX Fabio Estevam <fabio.estevam@freescale.com>
Active arm armv7 mx6 freescale mx6sxsabresd mx6sxsabresd_qspi2 mx6sxsabresd:IMX_CONFIG=board/freescale/mx6sxsabresd/imximage.cfg,MX6SX,SYS_BOOT_QSPI Fabio Estevam <fabio.estevam@freescale.com>
+Active arm armv7 mx6 freescale mx6sxsabresd mx6sxsabresd_m4fastup mx6sxsabresd:IMX_CONFIG=board/freescale/mx6sxsabresd/imximage.cfg,MX6SX,SYS_BOOT_QSPI,SYS_AUXCORE_FASTUP Fabio Estevam <fabio.estevam@freescale.com>
Active arm armv7 mx6 gateworks gw_ventana gwventanadl gw_ventana:IMX_CONFIG=board/gateworks/gw_ventana/gw_ventana.cfg,MX6DL,DDR_MB=512 Tim Harvey <tharvey@gateworks.com>
Active arm armv7 mx6 gateworks gw_ventana gwventanadl1g gw_ventana:IMX_CONFIG=board/gateworks/gw_ventana/gw_ventana.cfg,MX6DL,DDR_MB=1024 Tim Harvey <tharvey@gateworks.com>
Active arm armv7 mx6 gateworks gw_ventana gwventanaq gw_ventana:IMX_CONFIG=board/gateworks/gw_ventana/gw_ventana.cfg,MX6Q,DDR_MB=512 Tim Harvey <tharvey@gateworks.com>
diff --git a/include/configs/mx6sxsabresd.h b/include/configs/mx6sxsabresd.h
index a495377..ea26f3f 100644
--- a/include/configs/mx6sxsabresd.h
+++ b/include/configs/mx6sxsabresd.h
@@ -125,8 +125,10 @@
#define CONFIG_SYS_TEXT_BASE 0x87800000
#define CONFIG_SYS_AUXCORE_BOOTDATA 0x78000000 /* Set to QSPI2 B flash at default */
-#define CONFIG_CMD_BOOTAUX /* Boot M4 */
+#ifndef CONFIG_SYS_AUXCORE_FASTUP
+#define CONFIG_CMD_BOOTAUX /* Boot M4 by command, disable this when M4 fast up */
#define CONFIG_CMD_SETEXPR
+#endif
#ifdef CONFIG_CMD_BOOTAUX
#define UPDATE_M4_ENV \
@@ -274,7 +276,10 @@
#define CONFIG_ENV_SIZE SZ_8K
-#ifdef CONFIG_SYS_BOOT_QSPI
+#ifdef CONFIG_SYS_AUXCORE_FASTUP
+#define CONFIG_MXC_RDC
+#define CONFIG_ENV_IS_IN_MMC /* Must disable QSPI driver, because M4 run on QSPI */
+#elif defined CONFIG_SYS_BOOT_QSPI
#define CONFIG_SYS_USE_QSPI
#define CONFIG_ENV_IS_IN_SPI_FLASH
#else