]> code.ossystems Code Review - meta-freescale.git/commitdiff
conf: machine: imx8m[m,p]: add support for fslc bsp
authorAndrey Zhizhikin <andrey.z@gmail.com>
Mon, 7 Dec 2020 21:20:47 +0000 (21:20 +0000)
committerOtavio Salvador <otavio@ossystems.com.br>
Fri, 11 Dec 2020 22:37:54 +0000 (19:37 -0300)
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 <andrey.z@gmail.com>
conf/machine/imx8mmevk.conf
conf/machine/imx8mnevk.conf
conf/machine/imx8mpevk.conf
conf/machine/include/imx-base.inc

index db722c723c2f481781634f74e50c77939ad70c6c..231d7ff72ca40e6e772dddc165df648379e83b07 100644 (file)
@@ -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"
index 80d77ac8efc06fbbc46956a9ade0e7e6566b5856..f0d785cdff171e0fbc8ccb71fa568b201ce0cc41 100644 (file)
@@ -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 \
 "
 
index d1376649c7f675c76401b670c2e6e8ad5430bb14..f76240b683526543dfaea7619e49084784e9b0fb 100644 (file)
@@ -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 \
index 6295ccd0efa3234630df2c4594c5c75424ef18c5..4dae43d0291fde90a3d1946a35af8abd7b133641 100644 (file)
@@ -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"