[U-Boot] [PATCH v2 6/6] mx7ulp: Add support for Embedded Artists COM board
Peng Fan
peng.fan at nxp.com
Tue Nov 5 05:57:55 UTC 2019
> Subject: [PATCH v2 6/6] mx7ulp: Add support for Embedded Artists COM
> board
Hi Fabio,
Seems you not add dts files. CI build fail
arm: + mx7ulp_com
+make[3]: *** No rule to make target 'arch/arm/dts/imx7ulp-com.dtb', needed by 'dtbs'. Stop.
+make[2]: *** [arch-dtbs] Error 2
+make[1]: *** [dts/dt.dtb] Error 2
+make: *** [sub-make] Error 2
Thanks,
Peng.
>
> The Embedded Artists COM board is based on NXP i.MX7ULP.
>
> It has a BD70528 PMIC from Rohm with discrete DCDC powering option and
> improved current observability (compared to the existing NXP i.MX7ULP EVK).
>
> Add the initial support for the board.
>
> Signed-off-by: Fabio Estevam <festevam at gmail.com>
> ---
> Changes since v1:
> - Lower the DDR frequency inside DCD as it is safer (Ye Li)
> - Drop CONFIG_IMX7ULP_LOWER_DDR_FREQUENCY=y
>
> arch/arm/dts/Makefile | 3 +-
> arch/arm/mach-imx/mx7ulp/Kconfig | 6 ++
> board/ea/mx7ulp_com/Kconfig | 12 +++
> board/ea/mx7ulp_com/MAINTAINERS | 6 ++
> board/ea/mx7ulp_com/Makefile | 6 ++
> board/ea/mx7ulp_com/imximage.cfg | 137
> +++++++++++++++++++++++++++++++
> board/ea/mx7ulp_com/mx7ulp_com.c | 48 +++++++++++
> configs/mx7ulp_com_defconfig | 58 +++++++++++++
> include/configs/mx7ulp_com.h | 107 ++++++++++++++++++++++++
> 9 files changed, 382 insertions(+), 1 deletion(-) create mode 100644
> board/ea/mx7ulp_com/Kconfig create mode 100644
> board/ea/mx7ulp_com/MAINTAINERS create mode 100644
> board/ea/mx7ulp_com/Makefile create mode 100644
> board/ea/mx7ulp_com/imximage.cfg create mode 100644
> board/ea/mx7ulp_com/mx7ulp_com.c create mode 100644
> configs/mx7ulp_com_defconfig create mode 100644
> include/configs/mx7ulp_com.h
>
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index
> 6a7dbb6309..c5c29dbcd0 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -645,7 +645,8 @@ dtb-$(CONFIG_MX7) += imx7d-sdb.dtb \
> imx7d-pico-hobbit.dtb
>
>
> -dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-evk.dtb
> +dtb-$(CONFIG_ARCH_MX7ULP) += imx7ulp-com.dtb \
> + imx7ulp-evk.dtb
>
> dtb-$(CONFIG_ARCH_IMX8) += \
> fsl-imx8qm-apalis.dtb \
> diff --git a/arch/arm/mach-imx/mx7ulp/Kconfig
> b/arch/arm/mach-imx/mx7ulp/Kconfig
> index 138c58363f..6680f856c5 100644
> --- a/arch/arm/mach-imx/mx7ulp/Kconfig
> +++ b/arch/arm/mach-imx/mx7ulp/Kconfig
> @@ -15,6 +15,11 @@ choice
> prompt "MX7ULP board select"
> optional
>
> +config TARGET_MX7ULP_COM
> + bool "Support MX7ULP COM board"
> + select MX7ULP
> + select SYS_ARCH_TIMER
> +
> config TARGET_MX7ULP_EVK
> bool "Support mx7ulp EVK board"
> select MX7ULP
> @@ -22,6 +27,7 @@ config TARGET_MX7ULP_EVK
>
> endchoice
>
> +source "board/ea/mx7ulp_com/Kconfig"
> source "board/freescale/mx7ulp_evk/Kconfig"
>
> endif
> diff --git a/board/ea/mx7ulp_com/Kconfig b/board/ea/mx7ulp_com/Kconfig
> new file mode 100644 index 0000000000..90883aced4
> --- /dev/null
> +++ b/board/ea/mx7ulp_com/Kconfig
> @@ -0,0 +1,12 @@
> +if TARGET_MX7ULP_COM
> +
> +config SYS_BOARD
> + default "mx7ulp_com"
> +
> +config SYS_VENDOR
> + default "ea"
> +
> +config SYS_CONFIG_NAME
> + default "mx7ulp_com"
> +
> +endif
> diff --git a/board/ea/mx7ulp_com/MAINTAINERS
> b/board/ea/mx7ulp_com/MAINTAINERS new file mode 100644 index
> 0000000000..3f69511b1a
> --- /dev/null
> +++ b/board/ea/mx7ulp_com/MAINTAINERS
> @@ -0,0 +1,6 @@
> +MX7ULPCOM BOARD
> +M: Fabio Estevam <festevam at gmail.com>
> +S: Maintained
> +F: board/ea/mx7ulp_com/
> +F: include/configs/mx7ulp_com.h
> +F: configs/mx7ulp_com_defconfig
> diff --git a/board/ea/mx7ulp_com/Makefile
> b/board/ea/mx7ulp_com/Makefile new file mode 100644 index
> 0000000000..b3b230b172
> --- /dev/null
> +++ b/board/ea/mx7ulp_com/Makefile
> @@ -0,0 +1,6 @@
> +# (C) Copyright 2016 Freescale Semiconductor, Inc.
> +#
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +
> +obj-y := mx7ulp_com.o
> diff --git a/board/ea/mx7ulp_com/imximage.cfg
> b/board/ea/mx7ulp_com/imximage.cfg
> new file mode 100644
> index 0000000000..e405d758b5
> --- /dev/null
> +++ b/board/ea/mx7ulp_com/imximage.cfg
> @@ -0,0 +1,137 @@
> +/*
> + * Copyright (C) 2016 Freescale Semiconductor, Inc.
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + *
> + * Refer docs/README.imxmage 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 */
> +
> +IMAGE_VERSION 2
> +
> +/*
> + * Boot Device : one of
> + * spi/sd/nand/onenand, qspi/nor
> + */
> +
> +BOOT_FROM sd
> +
> +#ifdef CONFIG_USE_IMXIMG_PLUGIN
> +/*PLUGIN plugin-binary-file IRAM_FREE_START_ADDR*/
> +PLUGIN board/freescale/mx7ulp_evk/plugin.bin 0x2F020000
> +#else
> +
> +#ifdef CONFIG_SECURE_BOOT
> +CSF CONFIG_CSF_SIZE
> +#endif
> +/*
> + * 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
> + */
> +DATA 4 0x403f00dc 0x00000000
> +DATA 4 0x403e0040 0x01000020
> +DATA 4 0x403e0500 0x01000000
> +DATA 4 0x403e050c 0x80808080
> +DATA 4 0x403e0508 0x00160002
> +DATA 4 0x403E0510 0x00000001
> +DATA 4 0x403E0514 0x00000014
> +DATA 4 0x403e0500 0x00000001
> +CHECK_BITS_SET 4 0x403e0500 0x01000000
> +/*
> + * Default PFD0 divide is 27, which generates:
> + * PFD0 Freq = A7 APLL(528MHz) * 18 / 27 = 352MHz
> + *
> + * i.MX7ULP COM board can not run DDR at 352MHz, so
> + * use a divider of 30 (0x1E), which gives:
> + *
> + * PFD0 Freq = A7 APLL(528MHz) * 18 / 30 = 316.8MHz */
> +DATA 4 0x403e050c 0x8080801E
> +CHECK_BITS_SET 4 0x403e050c 0x00000040
> +DATA 4 0x403E0030 0x00000001
> +DATA 4 0x403e0040 0x11000020
> +DATA 4 0x403f00dc 0x42000000
> +
> +DATA 4 0x40B300AC 0x40000000
> +
> +DATA 4 0x40AD0128 0x00040000
> +DATA 4 0x40AD00F8 0x00000000
> +DATA 4 0x40AD00D8 0x00000180
> +DATA 4 0x40AD0104 0x00000180
> +DATA 4 0x40AD0108 0x00000180
> +DATA 4 0x40AD0124 0x00010000
> +DATA 4 0x40AD0080 0x0000018C
> +DATA 4 0x40AD0084 0x0000018C
> +DATA 4 0x40AD0088 0x0000018C
> +DATA 4 0x40AD008C 0x0000018C
> +
> +DATA 4 0x40AD0120 0x00010000
> +DATA 4 0x40AD010C 0x00000180
> +DATA 4 0x40AD0110 0x00000180
> +DATA 4 0x40AD0114 0x00000180
> +DATA 4 0x40AD0118 0x00000180
> +DATA 4 0x40AD0090 0x00000180
> +DATA 4 0x40AD0094 0x00000180
> +DATA 4 0x40AD0098 0x00000180
> +DATA 4 0x40AD009C 0x00000180
> +
> +DATA 4 0x40AD00E0 0x00040000
> +DATA 4 0x40AD00E4 0x00040000
> +
> +DATA 4 0x40AB001C 0x00008000
> +DATA 4 0x40AB085C 0x0D3900A0
> +DATA 4 0x40AB0800 0xA1390003
> +DATA 4 0x40AB0890 0x00400000
> +DATA 4 0x40AB081C 0x33333333
> +DATA 4 0x40AB0820 0x33333333
> +DATA 4 0x40AB0824 0x33333333
> +DATA 4 0x40AB0828 0x33333333
> +DATA 4 0x40AB08C0 0x24922492
> +DATA 4 0x40AB0848 0x3A3E3838
> +DATA 4 0x40AB0850 0x28282C2A
> +DATA 4 0x40AB083C 0x20000000
> +DATA 4 0x40AB0840 0x00000000
> +DATA 4 0x40AB08B8 0x00000800
> +DATA 4 0x40AB000C 0x292C40F5
> +DATA 4 0x40AB0004 0x00020064
> +DATA 4 0x40AB0010 0xB6AD0A83
> +DATA 4 0x40AB0014 0x00C70093
> +DATA 4 0x40AB0018 0x00211708
> +DATA 4 0x40AB002C 0x0F9F26D2
> +DATA 4 0x40AB0030 0x009F0E10
> +DATA 4 0x40AB0038 0x00130556
> +DATA 4 0x40AB0008 0x12272000
> +DATA 4 0x40AB0040 0x0000003F
> +DATA 4 0x40AB0000 0xC3110000
> +DATA 4 0x40AB001C 0x00008010
> +DATA 4 0x40AB001C 0x00008018
> +DATA 4 0x40AB001C 0x003F8030
> +DATA 4 0x40AB001C 0xFF0A8030
> +DATA 4 0x40AB001C 0x82018030
> +DATA 4 0x40AB001C 0x06028030
> +DATA 4 0x40AB001C 0x01038030
> +DATA 4 0x40AB001C 0x003F8038
> +DATA 4 0x40AB001C 0xFF0A8038
> +DATA 4 0x40AB001C 0x82018038
> +DATA 4 0x40AB001C 0x06028038
> +DATA 4 0x40AB001C 0x01038038
> +DATA 4 0x40AB083C 0xA0000000
> +DATA 4 0x40AB083C 0xA0000000
> +DATA 4 0x40AB0020 0x00001800
> +DATA 4 0x40AB0800 0xA1310003
> +DATA 4 0x40AB001C 0x00000000
> +#endif
> diff --git a/board/ea/mx7ulp_com/mx7ulp_com.c
> b/board/ea/mx7ulp_com/mx7ulp_com.c
> new file mode 100644
> index 0000000000..6fc1631bf7
> --- /dev/null
> +++ b/board/ea/mx7ulp_com/mx7ulp_com.c
> @@ -0,0 +1,48 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2016 Freescale Semiconductor, Inc.
> + */
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/arch/sys_proto.h>
> +#include <asm/arch/mx7ulp-pins.h>
> +#include <asm/arch/iomux.h>
> +#include <asm/gpio.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +#define UART_PAD_CTRL (PAD_CTL_PUS_UP)
> +
> +int dram_init(void)
> +{
> + gd->ram_size = imx_ddr_size();
> +
> + return 0;
> +}
> +
> +static iomux_cfg_t const lpuart4_pads[] = {
> + MX7ULP_PAD_PTC3__LPUART4_RX |
> MUX_PAD_CTRL(UART_PAD_CTRL),
> + MX7ULP_PAD_PTC2__LPUART4_TX |
> MUX_PAD_CTRL(UART_PAD_CTRL), };
> +
> +static void setup_iomux_uart(void)
> +{
> + mx7ulp_iomux_setup_multiple_pads(lpuart4_pads,
> + ARRAY_SIZE(lpuart4_pads));
> +}
> +
> +int board_early_init_f(void)
> +{
> + setup_iomux_uart();
> +
> + return 0;
> +}
> +
> +int board_init(void)
> +{
> + /* address of boot parameters */
> + gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
> +
> + return 0;
> +}
> diff --git a/configs/mx7ulp_com_defconfig b/configs/mx7ulp_com_defconfig
> new file mode 100644 index 0000000000..44cae16fc8
> --- /dev/null
> +++ b/configs/mx7ulp_com_defconfig
> @@ -0,0 +1,58 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_MX7ULP=y
> +CONFIG_SYS_TEXT_BASE=0x67800000
> +CONFIG_LDO_ENABLED_MODE=y
> +CONFIG_TARGET_MX7ULP_COM=y
> +CONFIG_NR_DRAM_BANKS=1
> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/ea/mx7ulp_com/imxi
> mage.cfg"
> +CONFIG_DEFAULT_FDT_FILE="imx7ulp-com"
> +CONFIG_BOUNCE_BUFFER=y
> +CONFIG_BOARD_EARLY_INIT_F=y
> +CONFIG_HUSH_PARSER=y
> +CONFIG_CMD_BOOTZ=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_READ=y
> +CONFIG_CMD_SF=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_USB_MASS_STORAGE=y
> +CONFIG_CMD_FAT=y
> +CONFIG_OF_CONTROL=y
> +CONFIG_DEFAULT_DEVICE_TREE="imx7ulp-com"
> +CONFIG_ENV_IS_IN_MMC=y
> +# CONFIG_NET is not set
> +CONFIG_DM=y
> +CONFIG_DM_GPIO=y
> +CONFIG_IMX_RGPIO2P=y
> +# CONFIG_MXC_GPIO is not set
> +CONFIG_DM_I2C=y
> +CONFIG_SYS_I2C_IMX_LPI2C=y
> +CONFIG_DM_MMC=y
> +CONFIG_FSL_USDHC=y
> +CONFIG_DM_SPI_FLASH=y
> +CONFIG_SPI_FLASH=y
> +CONFIG_SF_DEFAULT_MODE=0
> +CONFIG_SF_DEFAULT_SPEED=40000000
> +CONFIG_SPI_FLASH_ATMEL=y
> +CONFIG_PINCTRL=y
> +CONFIG_PINCTRL_IMX7ULP=y
> +CONFIG_DM_REGULATOR=y
> +CONFIG_DM_REGULATOR_FIXED=y
> +CONFIG_DM_REGULATOR_GPIO=y
> +CONFIG_DM_SERIAL=y
> +CONFIG_FSL_LPUART=y
> +CONFIG_SPI=y
> +CONFIG_DM_SPI=y
> +CONFIG_FSL_QSPI=y
> +CONFIG_USB=y
> +CONFIG_DM_USB=y
> +CONFIG_USB_EHCI_HCD=y
> +CONFIG_USB_STORAGE=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_GADGET_MANUFACTURER="FSL"
> +CONFIG_USB_GADGET_VENDOR_NUM=0x0525
> +CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
> +CONFIG_CI_UDC=y
> +CONFIG_USB_GADGET_DOWNLOAD=y
> +CONFIG_ULP_WATCHDOG=y
> diff --git a/include/configs/mx7ulp_com.h b/include/configs/mx7ulp_com.h
> new file mode 100644 index 0000000000..ba32afde38
> --- /dev/null
> +++ b/include/configs/mx7ulp_com.h
> @@ -0,0 +1,107 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (C) 2016 Freescale Semiconductor, Inc.
> + *
> + * Configuration settings for the Embedded Artists i.MX7ULP COM board.
> + */
> +
> +#ifndef __MX7ULP_COM_CONFIG_H
> +#define __MX7ULP_COM_CONFIG_H
> +
> +#include <linux/sizes.h>
> +#include <asm/arch/imx-regs.h>
> +
> +#define CONFIG_BOARD_POSTCLK_INIT
> +#define CONFIG_SYS_BOOTM_LEN 0x1000000
> +
> +#define SRC_BASE_ADDR CMC1_RBASE
> +#define IRAM_BASE_ADDR OCRAM_0_BASE
> +#define IOMUXC_BASE_ADDR IOMUXC1_RBASE
> +
> +/* Environment starts at 768k = 768 * 1024 = 786432 */
> +#define CONFIG_ENV_OFFSET 786432
> +/*
> + * Detect overlap between U-Boot image and environment area in
> +build-time
> + *
> + * CONFIG_BOARD_SIZE_LIMIT = CONFIG_ENV_OFFSET - u-boot-dtb.imx
> offset
> + * CONFIG_BOARD_SIZE_LIMIT = 768k - 1k = 767k = 785408
> + *
> + * Currently CONFIG_BOARD_SIZE_LIMIT does not handle expressions, so
> + * write the direct value here
> + */
> +#define CONFIG_BOARD_SIZE_LIMIT 785408
> +#define CONFIG_SYS_MMC_ENV_DEV 0
> +#define CONFIG_MMCROOT "/dev/mmcblk0p2"
> +#define CONFIG_SYS_MMC_IMG_LOAD_PART 1
> +
> +#define CONFIG_ENV_SIZE SZ_8K
> +
> +/* Using ULP WDOG for reset */
> +#define WDOG_BASE_ADDR WDG1_RBASE
> +
> +#define CONFIG_SYS_HZ_CLOCK 1000000 /* Fixed at 1MHz from TSTMR
> */
> +
> +#define CONFIG_INITRD_TAG
> +#define CONFIG_CMDLINE_TAG
> +#define CONFIG_SETUP_MEMORY_TAGS
> +
> +/* Size of malloc() pool */
> +#define CONFIG_SYS_MALLOC_LEN (8 * SZ_1M)
> +
> +/* UART */
> +#define LPUART_BASE LPUART4_RBASE
> +
> +/* allow to overwrite serial and ethaddr */ #define
> +CONFIG_ENV_OVERWRITE
> +
> +/* Physical Memory Map */
> +
> +#define PHYS_SDRAM 0x60000000
> +#define CONFIG_SYS_MEMTEST_START PHYS_SDRAM
> +#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
> +
> +#define CONFIG_LOADADDR 0x60800000
> +
> +#define CONFIG_SYS_MEMTEST_END
> (CONFIG_SYS_MEMTEST_START + SZ_512M)
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> + "image=zImage\0" \
> + "console=ttyLP0\0" \
> + "fdt_high=0xffffffff\0" \
> + "initrd_high=0xffffffff\0" \
> + "fdt_file=imx7ulp-com.dtb\0" \
> + "fdt_addr=0x63000000\0" \
> + "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
> + "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
> + "mmcroot=" CONFIG_MMCROOT " 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} ${fdt_file}\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_INIT_RAM_ADDR IRAM_BASE_ADDR
> +#define CONFIG_SYS_INIT_RAM_SIZE SZ_256K
> +
> +#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)
> +
> +#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
> +#define CONFIG_CMD_CACHE
> +#endif
> +
> +#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI |
> PORT_PTS_PTW)
> +#endif /* __CONFIG_H */
> --
> 2.17.1
More information about the U-Boot
mailing list