[PATCH v3] imx8mm-cl-iot-gate: Split the defconfigs
Paul Liu
paul.liu at linaro.org
Tue Aug 24 10:59:20 CEST 2021
On Tue, 24 Aug 2021 at 08:11, Fabio Estevam <festevam at denx.de> wrote:
> Currently imx8mm-cl-iot-gate_defconfig fails to produce a working boot
> binary due to the lack of fip.bin:
>
> " BINMAN all
> Image 'main-section' is missing external blobs and is non-functional:
> blob-ext
>
> Some images are invalid"
>
> To make the build process more consistent with the other i.MX8M targets,
> split the defconfig in two:
>
> - imx8mm-cl-iot-gate_defconfig: standard defconfig that only
> requires ATF / DDR firmware.
>
> - imx8mm-cl-iot-gate-optee_defconfig: "more advanced" defconfig that
> requires ATF / Optee / mbedtls / DDR firmware.
>
> Signed-off-by: Fabio Estevam <festevam at denx.de>
> ---
> Changes since v2:
> - Rename the ATF binary to bl2.bin in the optee case (Paul)
>
> arch/arm/dts/Makefile | 2 +
> .../dts/imx8mm-cl-iot-gate-optee-u-boot.dtsi | 255 ++++++++++++++++++
> arch/arm/dts/imx8mm-cl-iot-gate-optee.dts | 6 +
> arch/arm/dts/imx8mm-cl-iot-gate-u-boot.dtsi | 14 +-
> arch/arm/mach-imx/imx8m/Kconfig | 7 +
> board/compulab/imx8mm-cl-iot-gate/Kconfig | 2 +-
> board/compulab/imx8mm-cl-iot-gate/MAINTAINERS | 1 +
> configs/imx8mm-cl-iot-gate-optee_defconfig | 147 ++++++++++
> 8 files changed, 420 insertions(+), 14 deletions(-)
> create mode 100644 arch/arm/dts/imx8mm-cl-iot-gate-optee-u-boot.dtsi
> create mode 100644 arch/arm/dts/imx8mm-cl-iot-gate-optee.dts
> create mode 100644 configs/imx8mm-cl-iot-gate-optee_defconfig
>
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index c42715ead4..88f52cd390 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -1127,6 +1127,8 @@ dtb-$(CONFIG_TARGET_PRESIDIO_ASIC) +=
> ca-presidio-engboard.dtb
>
> dtb-$(CONFIG_TARGET_IMX8MM_CL_IOT_GATE) += imx8mm-cl-iot-gate.dtb
>
> +dtb-$(CONFIG_TARGET_IMX8MM_CL_IOT_GATE_OPTEE) +=
> imx8mm-cl-iot-gate-optee.dtb
> +
> dtb-$(CONFIG_TARGET_EA_LPC3250DEVKITV2) += lpc3250-ea3250.dtb
>
> targets += $(dtb-y)
> diff --git a/arch/arm/dts/imx8mm-cl-iot-gate-optee-u-boot.dtsi
> b/arch/arm/dts/imx8mm-cl-iot-gate-optee-u-boot.dtsi
> new file mode 100644
> index 0000000000..3226a244a9
> --- /dev/null
> +++ b/arch/arm/dts/imx8mm-cl-iot-gate-optee-u-boot.dtsi
> @@ -0,0 +1,255 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2019 NXP
> + */
> +
> +/ {
> + binman: binman {
> + multiple-images;
> + };
> +
> + wdt-reboot {
> + compatible = "wdt-reboot";
> + wdt = <&wdog1>;
> + u-boot,dm-spl;
> + };
> +
> + firmware {
> + optee {
> + compatible = "linaro,optee-tz";
> + method = "smc";
> + };
> + };
> +};
> +
> +&{/soc at 0} {
> + u-boot,dm-pre-reloc;
> + u-boot,dm-spl;
> +};
> +
> +&clk {
> + u-boot,dm-spl;
> + u-boot,dm-pre-reloc;
> + /delete-property/ assigned-clocks;
> + /delete-property/ assigned-clock-parents;
> + /delete-property/ assigned-clock-rates;
> +};
> +
> +&osc_24m {
> + u-boot,dm-spl;
> + u-boot,dm-pre-reloc;
> +};
> +
> +&aips1 {
> + u-boot,dm-spl;
> + u-boot,dm-pre-reloc;
> +};
> +
> +&aips2 {
> + u-boot,dm-spl;
> +};
> +
> +&aips3 {
> + u-boot,dm-spl;
> +};
> +
> +&iomuxc {
> + u-boot,dm-spl;
> +};
> +
> +&pinctrl_uart3 {
> + u-boot,dm-spl;
> +};
> +
> +&pinctrl_usdhc2_gpio {
> + u-boot,dm-spl;
> +};
> +
> +&pinctrl_usdhc2 {
> + u-boot,dm-spl;
> +};
> +
> +&pinctrl_usdhc3 {
> + u-boot,dm-spl;
> +};
> +
> +&gpio1 {
> + u-boot,dm-spl;
> +};
> +
> +&gpio2 {
> + u-boot,dm-spl;
> +};
> +
> +&gpio3 {
> + u-boot,dm-spl;
> +};
> +
> +&gpio4 {
> + u-boot,dm-spl;
> +};
> +
> +&gpio5 {
> + u-boot,dm-spl;
> +};
> +
> +&uart3 {
> + u-boot,dm-spl;
> +};
> +
> +&usdhc1 {
> + u-boot,dm-spl;
> +};
> +
> +&usdhc2 {
> + u-boot,dm-spl;
> +};
> +
> +&usdhc3 {
> + u-boot,dm-spl;
> +};
> +
> +&i2c1 {
> + u-boot,dm-spl;
> +};
> +
> +&i2c2 {
> + u-boot,dm-spl;
> +};
> +
> +&{/soc at 0/bus at 30800000/i2c at 30a30000/pmic at 4b} {
> + u-boot,dm-spl;
> +};
> +
> +&{/soc at 0/bus at 30800000/i2c at 30a30000/pmic at 4b/regulators} {
> + u-boot,dm-spl;
> +};
> +
> +&pinctrl_i2c2 {
> + u-boot,dm-spl;
> +};
> +
> +&pinctrl_pmic {
> + u-boot,dm-spl;
> +};
> +
> +&fec1 {
> + phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
> +};
> +
> +&wdog1 {
> + u-boot,dm-spl;
> +};
> +
> +&binman {
> + u-boot-spl-ddr {
> + filename = "u-boot-spl-ddr.bin";
> + pad-byte = <0xff>;
> + align-size = <4>;
> + align = <4>;
> +
> + u-boot-spl {
> + align-end = <4>;
> + };
> +
> + blob_1: blob-ext at 1 {
> + filename = "lpddr4_pmu_train_1d_imem.bin";
> + size = <0x8000>;
> + };
> +
> + blob_2: blob-ext at 2 {
> + filename = "lpddr4_pmu_train_1d_dmem.bin";
> + size = <0x4000>;
> + };
> +
> + blob_3: blob-ext at 3 {
> + filename = "lpddr4_pmu_train_2d_imem.bin";
> + size = <0x8000>;
> + };
> +
> + blob_4: blob-ext at 4 {
> + filename = "lpddr4_pmu_train_2d_dmem.bin";
> + size = <0x4000>;
> + };
> + };
> +
> + flash {
> + mkimage {
> + args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e
> 0x7e1000";
> +
> + blob {
> + filename = "u-boot-spl-ddr.bin";
> + };
> + };
> + };
> +
> + itb {
> + filename = "u-boot.itb";
> +
> + fit {
> + description = "Configuration to load ATF before
> U-Boot";
> + #address-cells = <1>;
> + fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
> +
> + images {
> + uboot {
> + description = "U-Boot (64-bit)";
> + type = "standalone";
> + arch = "arm64";
> + compression = "none";
> + load = <CONFIG_SYS_TEXT_BASE>;
> +
> + uboot_blob: blob-ext {
> + filename =
> "u-boot-nodtb.bin";
> + };
> + };
> +
> + atf {
> + description = "ARM Trusted
> Firmware";
> + type = "firmware";
> + arch = "arm64";
> + compression = "none";
> + load = <0x920000>;
> + entry = <0x920000>;
> +
> + atf_blob: blob-ext {
> + filename = "bl2.bin";
> + };
> + };
> +
> + fip {
> + description = "Trusted Firmware
> FIP";
> + type = "firmware";
> + arch = "arm64";
> + compression = "none";
> + load = <0x40310000>;
> +
> + fip_blob: blob-ext{
> + filename = "fip.bin";
> + };
> + };
> +
> + fdt {
> + description = "NAME";
> + type = "flat_dt";
> + compression = "none";
> +
> + uboot_fdt_blob: blob-ext {
> + filename = "u-boot.dtb";
> + };
> + };
> + };
> +
> + configurations {
> + default = "conf";
> +
> + conf {
> + description = "NAME";
> + firmware = "uboot";
> + loadables = "atf", "fip";
> + fdt = "fdt";
> + };
> + };
> + };
> + };
> +};
> diff --git a/arch/arm/dts/imx8mm-cl-iot-gate-optee.dts
> b/arch/arm/dts/imx8mm-cl-iot-gate-optee.dts
> new file mode 100644
> index 0000000000..4d0ef46997
> --- /dev/null
> +++ b/arch/arm/dts/imx8mm-cl-iot-gate-optee.dts
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2019 NXP
> + */
> +
> +#include "imx8mm-cl-iot-gate.dts"
> diff --git a/arch/arm/dts/imx8mm-cl-iot-gate-u-boot.dtsi
> b/arch/arm/dts/imx8mm-cl-iot-gate-u-boot.dtsi
> index 3226a244a9..00927c1574 100644
> --- a/arch/arm/dts/imx8mm-cl-iot-gate-u-boot.dtsi
> +++ b/arch/arm/dts/imx8mm-cl-iot-gate-u-boot.dtsi
> @@ -217,18 +217,6 @@
> };
> };
>
> - fip {
> - description = "Trusted Firmware
> FIP";
> - type = "firmware";
> - arch = "arm64";
> - compression = "none";
> - load = <0x40310000>;
> -
> - fip_blob: blob-ext{
> - filename = "fip.bin";
> - };
> - };
> -
> fdt {
> description = "NAME";
> type = "flat_dt";
> @@ -246,7 +234,7 @@
> conf {
> description = "NAME";
> firmware = "uboot";
> - loadables = "atf", "fip";
> + loadables = "atf";
> fdt = "fdt";
> };
> };
> diff --git a/arch/arm/mach-imx/imx8m/Kconfig
> b/arch/arm/mach-imx/imx8m/Kconfig
> index ccaf106be5..dfda4cb70e 100644
> --- a/arch/arm/mach-imx/imx8m/Kconfig
> +++ b/arch/arm/mach-imx/imx8m/Kconfig
> @@ -138,6 +138,13 @@ config TARGET_IMX8MM_CL_IOT_GATE
> select IMX8MM
> select SUPPORT_SPL
> select IMX8M_LPDDR4
> +
> +config TARGET_IMX8MM_CL_IOT_GATE_OPTEE
> + bool "CompuLab iot-gate-imx8 with optee support"
> + select BINMAN
> + select IMX8MM
> + select SUPPORT_SPL
> + select IMX8M_LPDDR4
> endchoice
>
> source "board/beacon/imx8mm/Kconfig"
> diff --git a/board/compulab/imx8mm-cl-iot-gate/Kconfig
> b/board/compulab/imx8mm-cl-iot-gate/Kconfig
> index 7f5c794bf5..f32102f24b 100644
> --- a/board/compulab/imx8mm-cl-iot-gate/Kconfig
> +++ b/board/compulab/imx8mm-cl-iot-gate/Kconfig
> @@ -1,4 +1,4 @@
> -if TARGET_IMX8MM_CL_IOT_GATE
> +if TARGET_IMX8MM_CL_IOT_GATE || TARGET_IMX8MM_CL_IOT_GATE_OPTEE
>
> config SYS_BOARD
> default "imx8mm-cl-iot-gate"
> diff --git a/board/compulab/imx8mm-cl-iot-gate/MAINTAINERS
> b/board/compulab/imx8mm-cl-iot-gate/MAINTAINERS
> index 9c6b17095c..9db1fb6950 100644
> --- a/board/compulab/imx8mm-cl-iot-gate/MAINTAINERS
> +++ b/board/compulab/imx8mm-cl-iot-gate/MAINTAINERS
> @@ -4,3 +4,4 @@ S: Maintained
> F: board/compulab/imx8mm-cl-iot-gate/
> F: include/configs/imx8mm-cl-iot-gate.h
> F: configs/imx8mm-cl-iot-gate_defconfig
> +F: configs/imx8mm-cl-iot-gate-optee_defconfig
> diff --git a/configs/imx8mm-cl-iot-gate-optee_defconfig
> b/configs/imx8mm-cl-iot-gate-optee_defconfig
> new file mode 100644
> index 0000000000..d918779960
> --- /dev/null
> +++ b/configs/imx8mm-cl-iot-gate-optee_defconfig
> @@ -0,0 +1,147 @@
> +CONFIG_ARM=y
> +CONFIG_SPL_SYS_ICACHE_OFF=y
> +CONFIG_SPL_SYS_DCACHE_OFF=y
> +CONFIG_ARCH_IMX8M=y
> +CONFIG_SYS_TEXT_BASE=0x40200000
> +CONFIG_SPL_GPIO=y
> +CONFIG_SPL_LIBCOMMON_SUPPORT=y
> +CONFIG_SPL_LIBGENERIC_SUPPORT=y
> +CONFIG_SYS_MALLOC_F_LEN=0x10000
> +CONFIG_ENV_SIZE=0x4000
> +CONFIG_ENV_OFFSET=0x4400
> +CONFIG_SYS_I2C_MXC_I2C1=y
> +CONFIG_SYS_I2C_MXC_I2C2=y
> +CONFIG_SYS_I2C_MXC_I2C3=y
> +CONFIG_DM_GPIO=y
> +CONFIG_DEFAULT_DEVICE_TREE="imx8mm-cl-iot-gate-optee"
> +CONFIG_SPL_TEXT_BASE=0x7E1000
> +CONFIG_TARGET_IMX8MM_CL_IOT_GATE_OPTEE=y
> +CONFIG_SPL_MMC_SUPPORT=y
> +CONFIG_SPL_SERIAL_SUPPORT=y
> +CONFIG_SPL_DRIVERS_MISC=y
> +CONFIG_SPL=y
> +CONFIG_DISTRO_DEFAULTS=y
> +CONFIG_FIT=y
> +CONFIG_FIT_EXTERNAL_OFFSET=0x3000
> +CONFIG_FIT_SIGNATURE=y
> +CONFIG_SPL_LOAD_FIT=y
> +# CONFIG_USE_SPL_FIT_GENERATOR is not set
> +CONFIG_OF_SYSTEM_SETUP=y
>
> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/compulab/imx8mm-cl-iot-gate/imximage-8mm-lpddr4.cfg"
> +CONFIG_BOARD_LATE_INIT=y
> +CONFIG_SPL_BOARD_INIT=y
> +CONFIG_SPL_SEPARATE_BSS=y
> +CONFIG_SPL_I2C=y
> +CONFIG_SPL_POWER=y
> +CONFIG_SPL_WATCHDOG=y
> +CONFIG_SYS_PROMPT="u-boot=> "
> +CONFIG_CMD_BOOTEFI_SELFTEST=y
> +CONFIG_CMD_NVEDIT_EFI=y
> +CONFIG_CMD_EEPROM=y
> +CONFIG_CMD_SHA1SUM=y
> +CONFIG_CMD_BIND=y
> +CONFIG_CMD_CLK=y
> +CONFIG_CMD_DFU=y
> +CONFIG_CMD_FUSE=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_GPT=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_USB_MASS_STORAGE=y
> +CONFIG_CMD_SNTP=y
> +CONFIG_CMD_CACHE=y
> +CONFIG_CMD_EFIDEBUG=y
> +CONFIG_CMD_RTC=y
> +CONFIG_CMD_TIME=y
> +CONFIG_CMD_GETTIME=y
> +CONFIG_CMD_TIMER=y
> +CONFIG_CMD_REGULATOR=y
> +CONFIG_CMD_TPM=y
> +CONFIG_CMD_EXT4_WRITE=y
> +CONFIG_OF_CONTROL=y
> +CONFIG_SPL_OF_CONTROL=y
> +CONFIG_ENV_OVERWRITE=y
> +CONFIG_ENV_IS_IN_MMC=y
> +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_SYS_MMC_ENV_DEV=2
> +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
> +CONFIG_NET_RANDOM_ETHADDR=y
> +CONFIG_SPL_DM=y
> +CONFIG_SPL_CLK_COMPOSITE_CCF=y
> +CONFIG_CLK_COMPOSITE_CCF=y
> +CONFIG_SPL_CLK_IMX8MM=y
> +CONFIG_CLK_IMX8MM=y
> +CONFIG_DFU_TFTP=y
> +CONFIG_DFU_MMC=y
> +CONFIG_DFU_RAM=y
> +CONFIG_DFU_SF=y
> +CONFIG_UDP_FUNCTION_FASTBOOT=y
> +CONFIG_FASTBOOT_BUF_ADDR=0x44000000
> +CONFIG_FASTBOOT_BUF_SIZE=0x5000000
> +CONFIG_FASTBOOT_FLASH=y
> +CONFIG_FASTBOOT_FLASH_MMC_DEV=2
> +CONFIG_MXC_GPIO=y
> +CONFIG_DM_I2C=y
> +CONFIG_SYS_I2C_MXC=y
> +CONFIG_DM_KEYBOARD=y
> +CONFIG_SUPPORT_EMMC_RPMB=y
> +CONFIG_SUPPORT_EMMC_BOOT=y
> +CONFIG_FSL_ESDHC_IMX=y
> +CONFIG_DM_SPI_FLASH=y
> +CONFIG_PHYLIB=y
> +CONFIG_PHY_ATHEROS=y
> +CONFIG_DM_ETH=y
> +CONFIG_PHY_GIGE=y
> +CONFIG_FEC_MXC=y
> +CONFIG_MII=y
> +CONFIG_PCI_ENDPOINT=y
> +CONFIG_PINCTRL=y
> +CONFIG_SPL_PINCTRL=y
> +CONFIG_PINCTRL_IMX8M=y
> +CONFIG_POWER_DOMAIN=y
> +CONFIG_IMX8M_POWER_DOMAIN=y
> +CONFIG_DM_PMIC=y
> +CONFIG_DM_PMIC_BD71837=y
> +CONFIG_SPL_DM_PMIC_BD71837=y
> +CONFIG_DM_REGULATOR=y
> +CONFIG_DM_REGULATOR_BD71837=y
> +CONFIG_DM_REGULATOR_FIXED=y
> +CONFIG_DM_REGULATOR_GPIO=y
> +CONFIG_DM_RTC=y
> +CONFIG_RTC_ABX80X=y
> +CONFIG_MXC_UART=y
> +CONFIG_SPI=y
> +CONFIG_DM_SPI=y
> +CONFIG_SYSRESET=y
> +CONFIG_SPL_SYSRESET=y
> +CONFIG_SYSRESET_PSCI=y
> +CONFIG_SYSRESET_WATCHDOG=y
> +CONFIG_TEE=y
> +CONFIG_OPTEE=y
> +CONFIG_DM_THERMAL=y
> +CONFIG_TPM2_TIS_SPI=y
> +CONFIG_TPM2_FTPM_TEE=y
> +CONFIG_USB=y
> +CONFIG_USB_EHCI_HCD=y
> +CONFIG_USB_EHCI_GENERIC=y
> +CONFIG_USB_HOST_ETHER=y
> +CONFIG_USB_ETHER_ASIX88179=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_SDP_LOADADDR=0x40400000
> +CONFIG_USB_GADGET_DOWNLOAD=y
> +CONFIG_IMX_WATCHDOG=y
> +CONFIG_SPL_TINY_MEMSET=y
> +CONFIG_TPM=y
> +CONFIG_LZO=y
> +CONFIG_BZIP2=y
> +CONFIG_OF_LIBFDT_OVERLAY=y
> +CONFIG_EFI_SET_TIME=y
> +CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
> +CONFIG_EFI_CAPSULE_ON_DISK=y
> +CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y
> +CONFIG_EFI_SECURE_BOOT=y
> --
> 2.25.1
>
>
Looks good to me. And I've tested this patch.
Tested-by: Ying-Chun Liu (PaulLiu) <paul.liu at linaro.org>
More information about the U-Boot
mailing list