From b93dcbeb9cf7709f3593690cb25f87558347c239 Mon Sep 17 00:00:00 2001 From: Andrey Zhizhikin Date: Mon, 7 Dec 2020 21:20:47 +0000 Subject: [PATCH] conf: machine: imx8m[m,p]: add support for fslc bsp Add support for FSL Community BSP to imx8mmevk, imx8mpevk and imx8mnevk machines and ease restriction for those machines to be built with NXP-only BSP. FSL Community BSP allows those machines to pick up upstream components in order to construct the image. Bootloader provider is now selected to provide either u-boot-imx or u-boot-fslc for mx8mm machines based on the BSP flavor selected. WIC container is defined to accommodate ATF and option OP-TEE from NXP, as it is required for mx8mm family to boot. Signed-off-by: Andrey Zhizhikin --- conf/machine/imx8mmevk.conf | 53 ++++++++++++++++++++----------- conf/machine/imx8mnevk.conf | 14 +++++--- conf/machine/imx8mpevk.conf | 12 ++++--- conf/machine/include/imx-base.inc | 14 +++++--- 4 files changed, 61 insertions(+), 32 deletions(-) diff --git a/conf/machine/imx8mmevk.conf b/conf/machine/imx8mmevk.conf index db722c72..231d7ff7 100644 --- a/conf/machine/imx8mmevk.conf +++ b/conf/machine/imx8mmevk.conf @@ -9,26 +9,36 @@ MACHINEOVERRIDES =. "mx8:mx8m:mx8mm:" require conf/machine/include/imx-base.inc require conf/machine/include/tune-cortexa53.inc -IMX_DEFAULT_BSP = "nxp" - -MACHINE_FEATURES += " pci wifi bluetooth optee qca9377" - -KERNEL_DEVICETREE = " \ - freescale/imx8mm-ddr4-evk.dtb \ - freescale/imx8mm-ddr4-evk-revb.dtb \ - freescale/imx8mm-ddr4-evk-revb-rm67191.dtb \ - freescale/imx8mm-ddr4-evk-rm67191.dtb \ - freescale/imx8mm-evk-ak4497.dtb \ - freescale/imx8mm-evk-ak5558.dtb \ - freescale/imx8mm-evk-audio-tdm.dtb \ - freescale/imx8mm-evk.dtb \ - freescale/imx8mm-evk-inmate.dtb \ - freescale/imx8mm-evk-revb.dtb \ - freescale/imx8mm-evk-rm67191.dtb \ - freescale/imx8mm-evk-root.dtb \ - freescale/imx8mm-evk-rpmsg.dtb \ +MACHINE_FEATURES += "pci wifi bluetooth optee" + +# NXP BSP can consume QCA9377 driver and firmware +# Since the firmware is not available publicly, and rather distributed +# under "Proprietary" license - we opt-out from using it in all BSPs +# and pin it to NXP BSP only +MACHINE_FEATURES_use-nxp-bsp_append = " qca9377" + +# Mainline kernel contains only one DTB file for +# imx8mmevk machine +KERNEL_DEVICETREE = "freescale/imx8mm-evk.dtb" + +# NXP kernel has additional DTB files for various board configuration and +# derivates. Include them here for NXP BSP only +KERNEL_DEVICETREE_use-nxp-bsp_append = " \ + freescale/imx8mm-ddr4-evk.dtb \ + freescale/imx8mm-ddr4-evk-revb.dtb \ + freescale/imx8mm-ddr4-evk-revb-rm67191.dtb \ + freescale/imx8mm-ddr4-evk-rm67191.dtb \ + freescale/imx8mm-evk-ak4497.dtb \ + freescale/imx8mm-evk-ak5558.dtb \ + freescale/imx8mm-evk-audio-tdm.dtb \ + freescale/imx8mm-evk-inmate.dtb \ + freescale/imx8mm-evk-revb.dtb \ + freescale/imx8mm-evk-rm67191.dtb \ + freescale/imx8mm-evk-root.dtb \ + freescale/imx8mm-evk-rpmsg.dtb \ " + UBOOT_CONFIG ??= "sd" UBOOT_CONFIG[sd] = "imx8mm_evk_config,sdcard" UBOOT_CONFIG[fspi] = "imx8mm_evk_fspi_defconfig" @@ -36,7 +46,12 @@ UBOOT_CONFIG[mfgtool] = "imx8mm_evk_config" SPL_BINARY = "spl/u-boot-spl.bin" # Set DDR FIRMWARE -DDR_FIRMWARE_NAME = "lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_dmem.bin" +DDR_FIRMWARE_NAME = " \ + lpddr4_pmu_train_1d_imem.bin \ + lpddr4_pmu_train_1d_dmem.bin \ + lpddr4_pmu_train_2d_imem.bin \ + lpddr4_pmu_train_2d_dmem.bin \ +" # Set u-boot DTB UBOOT_DTB_NAME = "imx8mm-evk.dtb" diff --git a/conf/machine/imx8mnevk.conf b/conf/machine/imx8mnevk.conf index 80d77ac8..f0d785cd 100644 --- a/conf/machine/imx8mnevk.conf +++ b/conf/machine/imx8mnevk.conf @@ -9,18 +9,24 @@ MACHINEOVERRIDES =. "mx8:mx8m:mx8mn:" require conf/machine/include/imx-base.inc require conf/machine/include/tune-cortexa53.inc -IMX_DEFAULT_BSP = "nxp" +MACHINE_FEATURES += "wifi bluetooth optee" -MACHINE_FEATURES += "wifi bluetooth optee bcm43455" +# NXP BSP can consume propietary Broadcomm driver +MACHINE_FEATURES_use-nxp-bsp_append = " bcm43455" +# Mainline kernel contains only two DTB file for +# imx8mnevk machine KERNEL_DEVICETREE = " \ - freescale/imx8mn-ddr4-evk-ak5558.dtb \ freescale/imx8mn-ddr4-evk.dtb \ + freescale/imx8mn-evk.dtb \ +" + +KERNEL_DEVICETREE_use-nxp-bsp_append = " \ + freescale/imx8mn-ddr4-evk-ak5558.dtb \ freescale/imx8mn-ddr4-evk-inmate.dtb \ freescale/imx8mn-ddr4-evk-rm67191.dtb \ freescale/imx8mn-ddr4-evk-root.dtb \ freescale/imx8mn-ddr4-evk-rpmsg.dtb \ - freescale/imx8mn-evk.dtb \ freescale/imx8mn-evk-rm67191.dtb \ " diff --git a/conf/machine/imx8mpevk.conf b/conf/machine/imx8mpevk.conf index d1376649..f76240b6 100644 --- a/conf/machine/imx8mpevk.conf +++ b/conf/machine/imx8mpevk.conf @@ -9,14 +9,18 @@ MACHINEOVERRIDES =. "mx8:mx8m:mx8mp:" require conf/machine/include/imx-base.inc require conf/machine/include/tune-cortexa53.inc -IMX_DEFAULT_BSP = "nxp" +MACHINE_FEATURES += "pci wifi bluetooth optee" +MACHINE_FEATURES_use-nxp-bsp_append = " mrvl8997" -MACHINE_FEATURES += " pci wifi bluetooth optee mrvl8997" +# Mainline kernel contains only one DTB file for +# imx8mpevk machine +KERNEL_DEVICETREE = "freescale/imx8mp-evk.dtb" -KERNEL_DEVICETREE = " \ +# NXP kernel has additional DTB files for various board configuration and +# derivates. Include them here for NXP BSP only +KERNEL_DEVICETREE_use-nxp-bsp_append = " \ freescale/imx8mp-ab2.dtb \ freescale/imx8mp-evk-basler.dtb \ - freescale/imx8mp-evk.dtb \ freescale/imx8mp-evk-dsp.dtb \ freescale/imx8mp-evk-flexcan2.dtb \ freescale/imx8mp-evk-inmate.dtb \ diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc index 6295ccd0..4dae43d0 100644 --- a/conf/machine/include/imx-base.inc +++ b/conf/machine/include/imx-base.inc @@ -5,10 +5,6 @@ include conf/machine/include/fsl-default-versions.inc require conf/machine/include/utilities.inc -# Set specific make target and binary suffix -IMX_DEFAULT_BOOTLOADER = "u-boot-fslc" -IMX_DEFAULT_BOOTLOADER_mx8 = "u-boot-imx" - # Machines or distros can define which BSP it should use by default. We are # intending to default for mainline BSP by default and specific machines or # DISTROs might change it if need. @@ -22,6 +18,11 @@ IMX_DEFAULT_BSP_mx5 ?= "mainline" MACHINEOVERRIDES =. "use-${IMX_DEFAULT_BSP}-bsp:" +# Set specific make target and binary suffix +IMX_DEFAULT_BOOTLOADER = "u-boot-fslc" +IMX_DEFAULT_BOOTLOADER_mx8 = "u-boot-imx" +IMX_DEFAULT_BOOTLOADER_use-mainline-bsp = "u-boot-fslc" + PREFERRED_PROVIDER_u-boot ??= "${IMX_DEFAULT_BOOTLOADER}" PREFERRED_PROVIDER_u-boot-tools-native ??= "${IMX_DEFAULT_BOOTLOADER}-tools-native" PREFERRED_PROVIDER_nativesdk-u-boot-tools ??= "nativesdk-${IMX_DEFAULT_BOOTLOADER}-tools" @@ -364,9 +365,12 @@ WKS_FILE_DEPENDS ?= " \ ${@bb.utils.contains('MACHINE_FEATURES', 'optee', '${OPTEE_WKS_FILE_DEPENDS}', '', d)} \ " -WKS_FILE_DEPENDS_append_mx8 = " imx-boot " +WKS_FILE_DEPENDS_append_mx8 = " imx-boot" +WKS_FILE_DEPENDS_append_use-mainline-bsp = " imx-boot" SOC_DEFAULT_WKS_FILE ?= "imx-uboot-bootpart.wks.in" +SOC_DEFAULT_WKS_FILE_mx8m ?= "imx-imx-boot-bootpart.wks.in" + SOC_DEFAULT_WKS_FILE_mx8 ?= "imx-imx-boot-bootpart.wks.in" SOC_DEFAULT_WKS_FILE_mxs ?= "imx-uboot-mxs-bootpart.wks.in" -- 2.40.1