mx6sabresd: Add Falcon mode support
authorDiego Dorta <diego.dorta@nxp.com>
Tue, 11 Oct 2016 14:09:27 +0000 (11:09 -0300)
committerStefano Babic <sbabic@denx.de>
Mon, 17 Oct 2016 07:18:01 +0000 (09:18 +0200)
Allow i.MX6Q Sabre SD to load the kernel and dtb via SPL in Falcon mode.

Based on the Falcon mode code for MX6 Gateworks Ventana board.

Signed-off-by: Diego Dorta <diego.dorta@nxp.com>
board/freescale/mx6sabresd/mx6sabresd.c
include/configs/mx6sabresd.h

index e58c03cca74e19c0577a59ab3e30eb30e7d2c0f0..2b6d7be0a358b416978e927cff501907cd18ce72 100644 (file)
@@ -57,6 +57,8 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #define DISP0_PWR_EN   IMX_GPIO_NR(1, 21)
 
+#define KEY_VOL_UP     IMX_GPIO_NR(1, 4)
+
 int dram_init(void)
 {
        gd->ram_size = imx_ddr_size();
@@ -682,6 +684,16 @@ int checkboard(void)
 #include <spl.h>
 #include <libfdt.h>
 
+#ifdef CONFIG_SPL_OS_BOOT
+int spl_start_uboot(void)
+{
+       gpio_direction_input(KEY_VOL_UP);
+
+       /* Only enter in Falcon mode if KEY_VOL_UP is pressed */
+       return gpio_get_value(KEY_VOL_UP);
+}
+#endif
+
 static void ccgr_init(void)
 {
        struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
index 5c2734d3cce57eaf4eca97b32289012c5f60a1d6..6a7a0d356a4d4ef91139d6375c3cd1517685bde5 100644 (file)
@@ -11,6 +11,7 @@
 
 #ifdef CONFIG_SPL
 #include "imx6_spl.h"
+#undef CONFIG_SPL_EXT_SUPPORT
 #endif
 
 #define CONFIG_MACH_TYPE       3980
 
 #include "mx6sabre_common.h"
 
+/* Falcon Mode */
+#define CONFIG_CMD_SPL
+#define CONFIG_SPL_OS_BOOT
+#define CONFIG_SYS_SPL_ARGS_ADDR       0x18000000
+#define CONFIG_CMD_SPL_WRITE_SIZE      (128 * SZ_1K)
+
+/* Falcon Mode - MMC support: args@1MB kernel@2MB */
+#define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR  0x800   /* 1MB */
+#define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512)
+#define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR        0x1000  /* 2MB */
+
 #define CONFIG_SYS_FSL_USDHC_NUM       3
 #if defined(CONFIG_ENV_IS_IN_MMC)
 #define CONFIG_SYS_MMC_ENV_DEV         1       /* SDHC3 */