mx7ulp_com: add support for SPL
authorRicardo Salveti <ricardo@foundries.io>
Sun, 12 Sep 2021 14:32:57 +0000 (17:32 +0300)
committerStefano Babic <sbabic@denx.de>
Sat, 5 Feb 2022 12:38:38 +0000 (13:38 +0100)
Add EA iMX7ULP COM board support for building SPL.

Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
arch/arm/dts/imx7ulp-com-u-boot.dtsi [new file with mode: 0644]
arch/arm/dts/imx7ulp-com.dts
arch/arm/mach-imx/mx7ulp/Kconfig
board/ea/mx7ulp_com/mx7ulp_com.c
include/configs/mx7ulp_com.h

diff --git a/arch/arm/dts/imx7ulp-com-u-boot.dtsi b/arch/arm/dts/imx7ulp-com-u-boot.dtsi
new file mode 100644 (file)
index 0000000..d73bfbf
--- /dev/null
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-2.0+ OR X11
+/*
+ * Copyright 2019 Foundries.io
+ */
+
+&iomuxc1 {
+       u-boot,dm-spl;
+};
+
+&ahbbridge0 {
+       u-boot,dm-spl;
+};
+
+&ahbbridge1 {
+       u-boot,dm-spl;
+};
+
+&lpuart4 {
+       u-boot,dm-spl;
+};
+
+&usbotg1 {
+       extcon = <&usbphy1>;
+       u-boot,dm-spl;
+};
+
+&usbphy1 {
+       u-boot,dm-spl;
+};
+
+&usdhc0 {
+       u-boot,dm-spl;
+};
+
+&gpio0 {
+       u-boot,dm-spl;
+};
index c01e03d..dcfa374 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include "imx7ulp.dtsi"
+#include "imx7ulp-com-u-boot.dtsi"
 
 / {
        model = "Embedded Artists i.MX7ULP COM";
index 56a3efd..15c3ab6 100644 (file)
@@ -23,6 +23,18 @@ config TARGET_MX7ULP_COM
        bool "Support MX7ULP COM board"
        select MX7ULP
        select SYS_ARCH_TIMER
+       select SPL_DM if SPL
+       select SPL_GPIO_SUPPORT if SPL
+       select SPL_LIBCOMMON_SUPPORT if SPL
+       select SPL_LIBDISK_SUPPORT if SPL
+       select SPL_LIBGENERIC_SUPPORT if SPL
+       select SPL_MMC_SUPPORT if SPL
+       select SPL_OF_CONTROL if SPL
+       select SPL_OF_LIBFDT if SPL
+       select SPL_PINCTRL if SPL
+       select SPL_SEPARATE_BSS if SPL
+       select SPL_SERIAL_SUPPORT if SPL
+       select SUPPORT_SPL
 
 config TARGET_MX7ULP_EVK
        bool "Support mx7ulp EVK board"
index 7fce75a..cd9591a 100644 (file)
@@ -52,3 +52,29 @@ int board_init(void)
 
        return 0;
 }
+
+#ifdef CONFIG_SPL_BUILD
+#include <spl.h>
+
+#ifdef CONFIG_SPL_LOAD_FIT
+int board_fit_config_name_match(const char *name)
+{
+       if (!strcmp(name, "imx7ulp-com"))
+               return 0;
+
+       return -1;
+}
+#endif
+
+void spl_board_init(void)
+{
+       preloader_console_init();
+}
+
+void board_init_f(ulong dummy)
+{
+       arch_cpu_init();
+
+       board_early_init_f();
+}
+#endif
index 8c4d942..75f5cf0 100644 (file)
 #include <linux/sizes.h>
 #include <asm/arch/imx-regs.h>
 
+#ifdef CONFIG_SPL
+#include "imx7ulp_spl.h"
+#endif
+
 #define CONFIG_BOARD_POSTCLK_INIT
 #define CONFIG_SYS_BOOTM_LEN           0x1000000
 
@@ -67,5 +71,7 @@
 #define CONFIG_SYS_INIT_SP_ADDR \
        (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
 
+#define CONFIG_ARMV7_SECURE_BASE       0x2F000000
+
 #define CONFIG_MXC_USB_PORTSC          (PORT_PTS_UTMI | PORT_PTS_PTW)
 #endif /* __CONFIG_H */