]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mx7d: Add Storopack's SMEGW01 board
authorFabio Estevam <festevam@denx.de>
Fri, 28 May 2021 13:26:57 +0000 (10:26 -0300)
committerStefano Babic <sbabic@denx.de>
Wed, 9 Jun 2021 11:34:38 +0000 (13:34 +0200)
Add support for Storopack's SMEGW01 board, which is an
IoT gateway based on the i.MX7D SoC.

Based on the original U-Boot work done by Phytec.

Signed-off-by: Fabio Estevam <festevam@denx.de>
arch/arm/dts/Makefile
arch/arm/dts/imx7d-smegw01.dts [new file with mode: 0644]
arch/arm/mach-imx/mx7/Kconfig
board/storopack/smegw01/Kconfig [new file with mode: 0644]
board/storopack/smegw01/MAINTAINERS [new file with mode: 0644]
board/storopack/smegw01/Makefile [new file with mode: 0644]
board/storopack/smegw01/imximage.cfg [new file with mode: 0644]
board/storopack/smegw01/smegw01.c [new file with mode: 0644]
configs/smegw01_defconfig [new file with mode: 0644]
include/configs/smegw01.h [new file with mode: 0644]

index 6884c4e98fc0239bad8aff9f58bee05cc0e64836..27bc6a796171549172807b4fcadbb308a5d6ff3d 100644 (file)
@@ -834,8 +834,8 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
        imx7s-warp.dtb \
        imx7d-meerkat96.dtb \
        imx7d-pico-pi.dtb \
-       imx7d-pico-hobbit.dtb
-
+       imx7d-pico-hobbit.dtb \
+       imx7d-smegw01.dtb
 
 dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-com.dtb \
        imx7ulp-evk.dtb
diff --git a/arch/arm/dts/imx7d-smegw01.dts b/arch/arm/dts/imx7d-smegw01.dts
new file mode 100644 (file)
index 0000000..aefc654
--- /dev/null
@@ -0,0 +1,190 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+//
+// Copyright (C) 2020 PHYTEC Messtechnik GmbH
+// Author: Jens Lang  <J.Lang@phytec.de>
+// Copyright (C) 2021 Fabio Estevam <festevam@denx.de>
+
+/dts-v1/;
+#include "imx7d.dtsi"
+
+/ {
+       model = "Storopack SMEGW01 board";
+       compatible = "storopack,imx7d-smegw01", "fsl,imx7d";
+
+       aliases {
+               mmc0 = &usdhc1;
+               mmc1 = &usdhc3;
+       };
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>;
+       };
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
+                         <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
+       assigned-clock-rates = <0>, <100000000>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy0>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio: mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+               };
+       };
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
+       no-1-8-v;
+       enable-sdio-wakeup;
+       keep-power-in-suspend;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
+       assigned-clock-rates = <400000000>;
+       max-frequency = <200000000>;
+       bus-width = <8>;
+       fsl,tuning-step = <1>;
+       non-removable;
+       cap-sd-highspeed;
+       cap-mmc-highspeed;
+       cap-mmc-hw-reset;
+       mmc-hs200-1_8v;
+       mmc-ddr-1_8v;
+       sd-uhs-ddr50;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x5
+                       MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0       0x5
+                       MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1       0x5
+                       MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2       0x5
+                       MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3       0x5
+                       MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC       0x5
+                       MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x5
+                       MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0       0x5
+                       MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1       0x5
+                       MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2       0x5
+                       MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3       0x5
+                       MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC       0x5
+                       MX7D_PAD_GPIO1_IO10__ENET1_MDIO         0x7
+                       MX7D_PAD_GPIO1_IO11__ENET1_MDC          0x7
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x74
+                       MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX    0x7c
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1 {
+               fsl,pins = <
+                       MX7D_PAD_SD1_CD_B__GPIO5_IO0            0x59
+                       MX7D_PAD_SD1_CMD__SD1_CMD               0x59
+                       MX7D_PAD_SD1_CLK__SD1_CLK               0x19
+                       MX7D_PAD_SD1_DATA0__SD1_DATA0           0x59
+                       MX7D_PAD_SD1_DATA1__SD1_DATA1           0x59
+                       MX7D_PAD_SD1_DATA2__SD1_DATA2           0x59
+                       MX7D_PAD_SD1_DATA3__SD1_DATA3           0x59
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3 {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5d
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x1d
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5d
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5d
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5d
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5d
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5d
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5d
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5d
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5d
+                       MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1d
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3_100mhz {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5e
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x1e
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5e
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5e
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5e
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5e
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5e
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5e
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5e
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5e
+                       MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1e
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3_200mhz {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5f
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x0f
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5f
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5f
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5f
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5f
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5f
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5f
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5f
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5f
+                       MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1f
+               >;
+       };
+};
+
+&iomuxc_lpsr {
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B 0x74
+               >;
+       };
+};
index 5c6fe426efbebfc93f89bb30b86690627c1ba16e..adedc011648ffa0658856d1c1c020835ac3c949f 100644 (file)
@@ -70,6 +70,14 @@ config TARGET_PICO_IMX7D
        select SUPPORT_SPL
        imply CMD_DM
 
+config TARGET_SMEGW01
+       bool "smegw01"
+       select BOARD_LATE_INIT
+       select DM
+       select DM_THERMAL
+       select MX7D
+       imply CMD_DM
+
 config TARGET_WARP7
        bool "warp7"
        select BOARD_LATE_INIT
@@ -94,6 +102,7 @@ source "board/compulab/cl-som-imx7/Kconfig"
 source "board/ronetix/imx7-cm/Kconfig"
 source "board/freescale/mx7dsabresd/Kconfig"
 source "board/novtech/meerkat96/Kconfig"
+source "board/storopack/smegw01/Kconfig"
 source "board/technexion/pico-imx7d/Kconfig"
 source "board/toradex/colibri_imx7/Kconfig"
 source "board/warp7/Kconfig"
diff --git a/board/storopack/smegw01/Kconfig b/board/storopack/smegw01/Kconfig
new file mode 100644 (file)
index 0000000..4503b65
--- /dev/null
@@ -0,0 +1,12 @@
+if TARGET_SMEGW01
+
+config SYS_BOARD
+       default "smegw01"
+
+config SYS_VENDOR
+       default "storopack"
+
+config SYS_CONFIG_NAME
+       default "smegw01"
+
+endif
diff --git a/board/storopack/smegw01/MAINTAINERS b/board/storopack/smegw01/MAINTAINERS
new file mode 100644 (file)
index 0000000..6acb8b9
--- /dev/null
@@ -0,0 +1,7 @@
+SMEGW01 BOARD
+M:     Fabio Estevam <festevam@denx.de>
+S:     Maintained
+F:     board/storopack/
+F:     arch/arm/dts/imx7d-smegw01.dts
+F:     configs/smegw01_defconfig
+F:     include/configs/smegw01.h
diff --git a/board/storopack/smegw01/Makefile b/board/storopack/smegw01/Makefile
new file mode 100644 (file)
index 0000000..f02e7bb
--- /dev/null
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2016 NXP Semiconductors
+
+obj-y  := smegw01.o
diff --git a/board/storopack/smegw01/imximage.cfg b/board/storopack/smegw01/imximage.cfg
new file mode 100644 (file)
index 0000000..c7fa069
--- /dev/null
@@ -0,0 +1,100 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2017 PHYTEC America, LLC
+ *
+ * Refer doc/imx/mkimage/imximage.txt for more details about how-to configure
+ * and create imximage boot image
+ *
+ * The syntax is taken as close as possible with the kwbimage
+ */
+
+#define __ASSEMBLY__
+#include <config.h>
+
+IMAGE_VERSION  2
+#ifdef CONFIG_IMX_HAB
+CSF CONFIG_CSF_SIZE
+#endif
+
+BOOT_FROM      sd
+
+/*
+ * Device Configuration Data (DCD)
+ *
+ * Each entry must have the format:
+ * Addr-type           Address        Value
+ *
+ * where:
+ *     Addr-type register length (1,2 or 4 bytes)
+ *     Address   absolute address of the register
+ *     value     value to be stored in the register
+ */
+
+/*
+ * Device Configuration Data (DCD)
+ *
+ * Each entry must have the format:
+ * Addr-type           Address        Value
+ *
+ * where:
+ *     Addr-type register length (1,2 or 4 bytes)
+ *     Address   absolute address of the register
+ *     value     value to be stored in the register
+ */
+
+/* DDR initialization came from Phytec */
+DATA 4 0x30340004 0x4F400005
+DATA 4 0x30360388 0x40000000
+DATA 4 0x30360384 0x40000000
+DATA 4 0x30391000 0x00000002
+DATA 4 0x307a0000 0x01040001
+DATA 4 0x307a01a0 0x80400003
+DATA 4 0x307a01a4 0x00100020
+DATA 4 0x307a01a8 0x80100004
+DATA 4 0x307a0064 0x0040002b
+DATA 4 0x307a0490 0x00000001
+DATA 4 0x307a00d0 0x00020083
+DATA 4 0x307a00d4 0x00690000
+DATA 4 0x307a00dc 0x09300004
+DATA 4 0x307a00e0 0x04080000
+DATA 4 0x307a00e4 0x00100004
+DATA 4 0x307a00f4 0x0000033f
+DATA 4 0x307a0100 0x090b1109
+DATA 4 0x307a0104 0x0007020d
+DATA 4 0x307a0108 0x03040407
+DATA 4 0x307a010c 0x00002006
+DATA 4 0x307a0110 0x04020205
+DATA 4 0x307a0114 0x03030202
+DATA 4 0x307a0120 0x00000802
+DATA 4 0x307a0180 0x00800020
+DATA 4 0x307a0184 0x02000100
+DATA 4 0x307a0190 0x02098204
+DATA 4 0x307a0194 0x00030303
+DATA 4 0x307a0200 0x00001f15
+DATA 4 0x307a0204 0x00080808
+DATA 4 0x307a0210 0x00000f0f
+DATA 4 0x307a0214 0x07070707
+DATA 4 0x307a0218 0x0f0f0707
+DATA 4 0x307a0240 0x06000604
+DATA 4 0x307a0244 0x00000001
+DATA 4 0x30391000 0x00000000
+DATA 4 0x30790000 0x17420f40
+DATA 4 0x30790004 0x10210100
+DATA 4 0x30790010 0x00060807
+DATA 4 0x307900b0 0x1010007e
+DATA 4 0x3079009c 0x00000d6e
+DATA 4 0x30790020 0x0a0a0a0a
+DATA 4 0x30790030 0x06060606
+DATA 4 0x30790050 0x01000010
+DATA 4 0x30790050 0x00000010
+DATA 4 0x307900c0 0x0e407304
+DATA 4 0x307900c0 0x0e447304
+DATA 4 0x307900c0 0x0e447306
+CHECK_BITS_SET 4 0x307900c4 0x1
+DATA 4 0x307900c0 0x0e447304
+DATA 4 0x307900c0 0x0e407304
+DATA 4 0x30384130 0x00000000
+DATA 4 0x30340020 0x00000178
+DATA 4 0x30384130 0x00000002
+DATA 4 0x30790018 0x0000000f
+CHECK_BITS_SET 4 0x307a0004 0x1
diff --git a/board/storopack/smegw01/smegw01.c b/board/storopack/smegw01/smegw01.c
new file mode 100644 (file)
index 0000000..e6bff80
--- /dev/null
@@ -0,0 +1,95 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (C) 2021 Fabio Estevam <festevam@denx.de>
+
+#include <init.h>
+#include <net.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/imx-regs.h>
+#include <asm/arch/mx7-pins.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/global_data.h>
+#include <asm/gpio.h>
+#include <asm/mach-imx/hab.h>
+#include <asm/mach-imx/iomux-v3.h>
+#include <asm/io.h>
+#include <common.h>
+#include <env.h>
+#include <asm/arch/crm_regs.h>
+#include <asm/setup.h>
+#include <asm/bootm.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define UART_PAD_CTRL  (PAD_CTL_DSE_3P3V_49OHM | PAD_CTL_PUS_PU100KOHM | \
+                       PAD_CTL_HYS)
+
+int dram_init(void)
+{
+       gd->ram_size = PHYS_SDRAM_SIZE;
+
+       return 0;
+}
+
+static iomux_v3_cfg_t const wdog_pads[] = {
+       MX7D_PAD_GPIO1_IO00__WDOG1_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL),
+};
+
+static iomux_v3_cfg_t const uart1_pads[] = {
+       MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
+       MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
+};
+
+static void setup_iomux_uart(void)
+{
+       imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
+};
+
+static int setup_fec(void)
+{
+       struct iomuxc_gpr_base_regs *const iomuxc_gpr_regs =
+                       (struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
+       int ret;
+
+       /* Use 125M anatop REF_CLK1 for ENET1, clear gpr1[13], gpr1[17]*/
+       clrsetbits_le32(&iomuxc_gpr_regs->gpr[1],
+                       (IOMUXC_GPR_GPR1_GPR_ENET1_TX_CLK_SEL_MASK |
+                       IOMUXC_GPR_GPR1_GPR_ENET1_CLK_DIR_MASK), 0);
+
+       ret = set_clk_enet(ENET_125MHZ);
+       if (ret)
+               return ret;
+
+       return 0;
+}
+
+int board_early_init_f(void)
+{
+       setup_iomux_uart();
+       setup_fec();
+       return 0;
+}
+
+int board_init(void)
+{
+       /* address of boot parameters */
+       gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+       return 0;
+}
+
+int board_late_init(void)
+{
+       struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR;
+
+       imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads));
+
+       set_wdog_reset(wdog);
+
+       /*
+        * Do not assert internal WDOG_RESET_B_DEB(controlled by bit 4),
+        * since we use PMIC_PWRON to reset the board.
+        */
+       clrsetbits_le16(&wdog->wcr, 0, 0x10);
+
+       return 0;
+}
diff --git a/configs/smegw01_defconfig b/configs/smegw01_defconfig
new file mode 100644 (file)
index 0000000..aa10577
--- /dev/null
@@ -0,0 +1,63 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX7=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_SYS_MEMTEST_START=0x80000000
+CONFIG_SYS_MEMTEST_END=0xa0000000
+CONFIG_ENV_SIZE=0x2000
+CONFIG_ENV_OFFSET=0xC0000
+CONFIG_DM_GPIO=y
+CONFIG_TARGET_SMEGW01=y
+CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
+# CONFIG_ARMV7_VIRT is not set
+CONFIG_IMX_RDC=y
+CONFIG_IMX_BOOTAUX=y
+CONFIG_DEFAULT_DEVICE_TREE="imx7d-smegw01"
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/storopack/smegw01/imximage.cfg"
+CONFIG_HUSH_PARSER=y
+# CONFIG_CMD_BOOTD is not set
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_IMI is not set
+# CONFIG_CMD_XIMG is not set
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_DFU=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_CONTROL=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_BOUNCE_BUFFER=y
+CONFIG_DFU_MMC=y
+CONFIG_DM_I2C=y
+CONFIG_SUPPORT_EMMC_BOOT=y
+CONFIG_FSL_USDHC=y
+CONFIG_MTD=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_MICREL=y
+CONFIG_PHY_MICREL_KSZ90X1=y
+CONFIG_DM_ETH=y
+CONFIG_FEC_MXC=y
+CONFIG_RGMII=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX7=y
+CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_PFUZE100=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_PFUZE100=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_SPECIFY_CONSOLE_INDEX=y
+CONFIG_DM_SERIAL=y
+CONFIG_MXC_UART=y
+CONFIG_IMX_THERMAL=y
diff --git a/include/configs/smegw01.h b/include/configs/smegw01.h
new file mode 100644 (file)
index 0000000..50f0013
--- /dev/null
@@ -0,0 +1,63 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2016 NXP Semiconductors
+ * Copyright (C) 2021 Fabio Estevam <festevam@denx.de>
+ *
+ * Configuration settings for the smegw01 board.
+ */
+
+#ifndef __SMEGW01_CONFIG_H
+#define __SMEGW01_CONFIG_H
+
+#include "mx7_common.h"
+#include <imximage.h>
+
+#define PHYS_SDRAM_SIZE                SZ_512M
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN          (35 * SZ_1M)
+
+/* MMC Config*/
+#define CONFIG_SYS_FSL_ESDHC_ADDR      0
+#define CONFIG_SYS_MMC_IMG_LOAD_PART   1
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+       "image=zImage\0" \
+       "console=ttymxc0\0" \
+       "fdtfile=imx7d-smegw01.dtb\0" \
+       "fdt_addr=0x83000000\0" \
+       "bootm_size=0x10000000\0" \
+       "mmcdev=0\0" \
+       "mmcpart=1\0" \
+       "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
+       "mmcargs=setenv bootargs console=${console},${baudrate} " \
+               "root=${mmcroot}\0" \
+       "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
+       "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdtfile}\0" \
+       "mmcboot=echo Booting from mmc ...; " \
+               "run mmcargs; " \
+               "if run loadfdt; then " \
+                       "bootz ${loadaddr} - ${fdt_addr}; " \
+               "fi;\0" \
+
+#define CONFIG_BOOTCOMMAND \
+       "if run loadimage; then " \
+               "run mmcboot; " \
+       "fi; " \
+
+#define CONFIG_SYS_LOAD_ADDR           CONFIG_LOADADDR
+#define CONFIG_SYS_HZ                  1000
+
+/* Physical Memory Map */
+#define PHYS_SDRAM                     MMDC0_ARB_BASE_ADDR
+
+#define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM
+#define CONFIG_SYS_INIT_RAM_ADDR       IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE       IRAM_SIZE
+
+#define CONFIG_SYS_INIT_SP_OFFSET \
+       (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR \
+       (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
+
+#endif