Some i.MX boards need firmware files in the source tree. Make the boards depending on firmware files selectable only when the firmware is there to avoid failing compilation. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- arch/arm/mach-imx/Kconfig | 74 ++++++++++++++++++++++++++------------- firmware/Kconfig | 21 +++++++++++ 2 files changed, 70 insertions(+), 25 deletions(-) diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index ef0e5fc561..e10e84faa7 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -555,11 +555,35 @@ if 64BIT comment "i.MX8M boards" +if !FIRMWARE_IMX_LPDDR4_PMU_TRAIN +comment "LPDDR4 firmware files missing, some boards are not selectable" +endif + +if !FIRMWARE_IMX_DDR4_PMU_TRAIN +comment "DDR4 firmware files missing, some boards are not selectable" +endif + +if !FIRMWARE_IMX8MM_ATF +comment "i.MX8MM TF-A files missing, i.MX8MM boards are disabled" +endif + +if !FIRMWARE_IMX8MQ_ATF +comment "i.MX8MQ TF-A files missing, i.MX8MQ boards are disabled" +endif + +if !FIRMWARE_IMX8MN_ATF +comment "i.MX8MN TF-A files missing, i.MX8MN boards are disabled" +endif + +if !FIRMWARE_IMX8MP_ATF +comment "i.MX8MP TF-A files missing, i.MX8MP boards are disabled" +endif + config MACH_INNOCOMM_WB15 bool "InnoComm WB15 (i.MX8MM) EVK" select ARCH_IMX8MM - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MM_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MM_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select IMX8M_DRAM @@ -570,8 +594,8 @@ config MACH_INNOCOMM_WB15 config MACH_MNT_REFORM bool "MNT Reform" select ARCH_IMX8MQ - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MQ_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MQ_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select I2C_IMX_EARLY @@ -579,8 +603,8 @@ config MACH_MNT_REFORM config MACH_NXP_IMX8MM_EVK bool "NXP i.MX8MM EVK Board" select ARCH_IMX8MM - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MM_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MM_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select IMX8M_DRAM @@ -590,9 +614,9 @@ config MACH_NXP_IMX8MM_EVK config MACH_NXP_IMX8MN_EVK bool "NXP i.MX8MN EVK Board" select ARCH_IMX8MN - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX_DDR4_PMU_TRAIN - select FIRMWARE_IMX8MN_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX_DDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MN_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select IMX8M_DRAM @@ -601,8 +625,8 @@ config MACH_NXP_IMX8MN_EVK config MACH_NXP_IMX8MP_EVK bool "NXP i.MX8MP EVK Board" select ARCH_IMX8MP - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MP_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MP_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select IMX8M_DRAM @@ -611,24 +635,24 @@ config MACH_NXP_IMX8MP_EVK config MACH_NXP_IMX8MQ_EVK bool "NXP i.MX8MQ EVK Board" select ARCH_IMX8MQ - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MQ_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MQ_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL config MACH_PHYTEC_SOM_IMX8MQ bool "Phytec i.MX8M SOM" select ARCH_IMX8MQ - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MQ_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MQ_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL config MACH_POLYHEX_DEBIX bool "Polyhex DEBIX Model-A/B (i.MX8MP) Board" select ARCH_IMX8MP - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MP_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MP_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select IMX8M_DRAM @@ -637,8 +661,8 @@ config MACH_POLYHEX_DEBIX config MACH_PROTONIC_IMX8M bool "Protonic-Holland i.MX8Mx based boards" select ARCH_IMX8MM - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MM_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MM_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select IMX8M_DRAM @@ -647,8 +671,8 @@ config MACH_PROTONIC_IMX8M config MACH_TQ_MBA8MPXL bool "TQ i.MX8MP Dual/Quad on MBa8MPxL Board" select ARCH_IMX8MP - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MP_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MP_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select IMX8M_DRAM @@ -657,8 +681,8 @@ config MACH_TQ_MBA8MPXL config MACH_VARISCITE_DT8MCUSTOMBOARD_IMX8MP bool "Variscite DT8MCustomBoard with DART-MX8M-PLUS" select ARCH_IMX8MP - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MP_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MP_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select IMX8M_DRAM @@ -667,8 +691,8 @@ config MACH_VARISCITE_DT8MCUSTOMBOARD_IMX8MP config MACH_ZII_IMX8MQ_DEV bool "ZII i.MX8MQ based devices" select ARCH_IMX8MQ - select FIRMWARE_IMX_LPDDR4_PMU_TRAIN - select FIRMWARE_IMX8MQ_ATF + depends on FIRMWARE_IMX_LPDDR4_PMU_TRAIN + depends on FIRMWARE_IMX8MQ_ATF select ARM_SMCCC select MCI_IMX_ESDHC_PBL select MACH_ZII_COMMON diff --git a/firmware/Kconfig b/firmware/Kconfig index a12a8f3044..0f76a836af 100644 --- a/firmware/Kconfig +++ b/firmware/Kconfig @@ -8,33 +8,54 @@ config EXTRA_FIRMWARE_DIR config FIRMWARE_IMX_LPDDR4_PMU_TRAIN bool + default y + depends on $(success,test -e $(srctree)/firmware/lpddr4_pmu_train_1d_dmem.bin) + depends on $(success,test -e $(srctree)/firmware/lpddr4_pmu_train_1d_imem.bin) + depends on $(success,test -e $(srctree)/firmware/lpddr4_pmu_train_2d_dmem.bin) + depends on $(success,test -e $(srctree)/firmware/lpddr4_pmu_train_2d_imem.bin) config FIRMWARE_IMX_DDR4_PMU_TRAIN bool + default y + depends on $(success,test -e $(srctree)/firmware/ddr4_dmem_1d.bin) + depends on $(success,test -e $(srctree)/firmware/ddr4_dmem_2d.bin) + depends on $(success,test -e $(srctree)/firmware/ddr4_imem_1d.bin) + depends on $(success,test -e $(srctree)/firmware/ddr4_imem_2d.bin) config FIRMWARE_IMX8MM_ATF bool + default y + depends on $(success,test -e $(srctree)/firmware/imx8mm-bl31.bin) config FIRMWARE_IMX8MN_ATF bool + default y + depends on $(success,test -e $(srctree)/firmware/imx8mn-bl31.bin) config FIRMWARE_IMX8MP_ATF bool + default y + depends on $(success,test -e $(srctree)/firmware/imx8mp-bl31.bin) config FIRMWARE_IMX8MQ_ATF bool + default y + depends on $(success,test -e $(srctree)/firmware/imx8mq-bl31.bin) config FIRMWARE_IMX8MM_OPTEE bool "install OP-TEE on i.MX8MM boards" depends on FIRMWARE_IMX8MM_ATF && PBL_OPTEE + depends on $(success,test -e $(srctree)/firmware/imx8mm-bl32.bin) config FIRMWARE_IMX8MN_OPTEE bool "install OP-TEE on i.MX8MN boards" depends on FIRMWARE_IMX8MN_ATF && PBL_OPTEE + depends on $(success,test -e $(srctree)/firmware/imx8mn-bl32.bin) config FIRMWARE_IMX8MP_OPTEE bool "install OP-TEE on i.MX8MP boards" depends on FIRMWARE_IMX8MP_ATF && PBL_OPTEE + depends on $(success,test -e $(srctree)/firmware/imx8mp-bl32.bin) config FIRMWARE_CCBV2_OPTEE bool -- 2.39.2