aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Estevam2018-06-29 15:19:14 -0300
committerStefano Babic2018-07-23 10:59:48 +0200
commit78d30a1bc039bc4c0a63cca4c03238adb5cf02bb (patch)
treed88db7803f1c809bb98e565bb3e7ccf37b516572
parent22dda6bd8b2b495a71d3776cf0b4379fe14fd8bc (diff)
pico-imx7d: Add Falcon mode support
Falcon mode boots the kernel directly from SPL, without loading the full U-Boot. As pico-imx7d does not have a GPIO for selecting Falcon versus normal mode, enter in Falcon mode when the customer selects the CONFIG_SPL_OS_BOOT option in menuconfig. Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-rw-r--r--board/technexion/pico-imx7d/spl.c8
-rw-r--r--configs/pico-imx7d_defconfig2
-rw-r--r--include/configs/pico-imx7d.h12
3 files changed, 22 insertions, 0 deletions
diff --git a/board/technexion/pico-imx7d/spl.c b/board/technexion/pico-imx7d/spl.c
index 14d96cb0c54..a5463ee68b0 100644
--- a/board/technexion/pico-imx7d/spl.c
+++ b/board/technexion/pico-imx7d/spl.c
@@ -13,6 +13,14 @@
#include <spl.h>
#if defined(CONFIG_SPL_BUILD)
+
+#ifdef CONFIG_SPL_OS_BOOT
+int spl_start_uboot(void)
+{
+ return 0;
+}
+#endif
+
static struct ddrc ddrc_regs_val = {
.mstr = 0x01040001,
.rfshtmg = 0x00400046,
diff --git a/configs/pico-imx7d_defconfig b/configs/pico-imx7d_defconfig
index 3eb26c75d6c..6ea49fdee20 100644
--- a/configs/pico-imx7d_defconfig
+++ b/configs/pico-imx7d_defconfig
@@ -21,6 +21,8 @@ CONFIG_SPL_USB_SDP_SUPPORT=y
CONFIG_CMD_BOOTMENU=y
# CONFIG_CMD_IMI is not set
# CONFIG_CMD_XIMG is not set
+CONFIG_CMD_SPL=y
+CONFIG_CMD_SPL_WRITE_SIZE=0x20000
CONFIG_CMD_DFU=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_GPT=y
diff --git a/include/configs/pico-imx7d.h b/include/configs/pico-imx7d.h
index 94c846a3959..8f1876c8b29 100644
--- a/include/configs/pico-imx7d.h
+++ b/include/configs/pico-imx7d.h
@@ -12,6 +12,18 @@
#include "imx7_spl.h"
+#ifdef CONFIG_SPL_OS_BOOT
+/* Falcon Mode */
+#define CONFIG_SPL_FS_LOAD_ARGS_NAME "args"
+#define CONFIG_SPL_FS_LOAD_KERNEL_NAME "uImage"
+#define CONFIG_SYS_SPL_ARGS_ADDR 0x88000000
+
+/* 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 */
+#endif
+
/* Size of malloc() pool */
#define CONFIG_SYS_MALLOC_LEN (32 * SZ_1M)