summaryrefslogtreecommitdiff
path: root/board/freescale
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2016-03-10 17:18:57 +0800
committerYe Li <ye.li@nxp.com>2016-03-25 16:01:45 +0800
commitf66842f79d4e33ace45762466eed23a86d367642 (patch)
treeef2886bedf4e87462e3fa841d4e57912ee5007e2 /board/freescale
parent43fe988af28c5e51fb23aa846e04bc9698256926 (diff)
downloadu-boot-imx-f66842f79d4e33ace45762466eed23a86d367642.zip
u-boot-imx-f66842f79d4e33ace45762466eed23a86d367642.tar.gz
u-boot-imx-f66842f79d4e33ace45762466eed23a86d367642.tar.bz2
MLK-12531 mx6sxsabresd: Add CM4 fast boot up demo
This is a demo that CM4 will boot up by u-boot without typing any command. It boots up at u-boot early init, try to minimize the time from power up to the CM4 running. Since CM4 runs on QSPI NOR XIP, we have to disable the QSPI driver in u-boot to avoid conflict. RDC for shared GPIO1 is added, but not enabled, because the kernel is not ready for shared GPIO1. Users can uncomment the CONFIG_IMX_RDC to enable it. Some legacy codes in mx6sxsabreauto are removed. We only need this work on mx6sxsabresd as a demo. Signed-off-by: Ye Li <ye.li@nxp.com>
Diffstat (limited to 'board/freescale')
-rw-r--r--board/freescale/mx6sxsabresd/mx6sxsabresd.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/board/freescale/mx6sxsabresd/mx6sxsabresd.c b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
index 20637ce..46256b4 100644
--- a/board/freescale/mx6sxsabresd/mx6sxsabresd.c
+++ b/board/freescale/mx6sxsabresd/mx6sxsabresd.c
@@ -32,6 +32,11 @@
#include <usb/ehci-fsl.h>
#include <asm/imx-common/video.h>
+#ifdef CONFIG_IMX_RDC
+#include <asm/imx-common/rdc-sema.h>
+#include <asm/arch/imx-rdc.h>
+#endif
+
#ifdef CONFIG_FSL_FASTBOOT
#include <fsl_fastboot.h>
#ifdef CONFIG_ANDROID_RECOVERY
@@ -436,8 +441,22 @@ int board_phy_config(struct phy_device *phydev)
return 0;
}
+#ifdef CONFIG_IMX_RDC
+static rdc_peri_cfg_t const shared_resources[] = {
+ (RDC_PER_GPIO1 | RDC_DOMAIN(0) | RDC_DOMAIN(1)),
+};
+#endif
+
int board_early_init_f(void)
{
+#ifdef CONFIG_IMX_RDC
+ 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;