diff options
Diffstat (limited to 'conf/machine/include')
-rw-r--r-- | conf/machine/include/e500mc.inc | 2 | ||||
-rw-r--r-- | conf/machine/include/e500v2.inc | 2 | ||||
-rw-r--r-- | conf/machine/include/e5500-64b.inc | 4 | ||||
-rw-r--r-- | conf/machine/include/e5500.inc | 2 | ||||
-rw-r--r-- | conf/machine/include/e6500-64b.inc | 4 | ||||
-rw-r--r-- | conf/machine/include/e6500.inc | 4 | ||||
-rw-r--r-- | conf/machine/include/imx-base.inc | 677 | ||||
-rw-r--r-- | conf/machine/include/imx8dxl-ddr3l-evk.inc | 9 | ||||
-rw-r--r-- | conf/machine/include/imx8dxl-evk.inc | 60 | ||||
-rw-r--r-- | conf/machine/include/imx8dxl-lpddr4-evk.inc | 17 | ||||
-rw-r--r-- | conf/machine/include/imx8mm-evk.inc | 75 | ||||
-rw-r--r-- | conf/machine/include/imx8mn-evk.inc | 84 | ||||
-rw-r--r-- | conf/machine/include/imx8mp-evk.inc | 74 | ||||
-rw-r--r-- | conf/machine/include/imx8ulp-evk.inc | 44 | ||||
-rw-r--r-- | conf/machine/include/imx8x-mek.inc | 71 | ||||
-rw-r--r-- | conf/machine/include/imx93-evk.inc | 39 | ||||
-rw-r--r-- | conf/machine/include/qoriq-arm.inc | 2 | ||||
-rw-r--r-- | conf/machine/include/qoriq-base.inc | 57 | ||||
-rw-r--r-- | conf/machine/include/utilities.inc | 11 |
19 files changed, 1038 insertions, 200 deletions
diff --git a/conf/machine/include/e500mc.inc b/conf/machine/include/e500mc.inc index a33485be..aa60d95e 100644 --- a/conf/machine/include/e500mc.inc +++ b/conf/machine/include/e500mc.inc @@ -1,6 +1,6 @@ TARGET_FPU = "hard" -require conf/machine/include/tune-ppce500mc.inc +require conf/machine/include/powerpc/tune-ppce500mc.inc require conf/machine/include/qoriq-ppc.inc MACHINEOVERRIDES =. "e500mc:" diff --git a/conf/machine/include/e500v2.inc b/conf/machine/include/e500v2.inc index 420f0343..a9af67cd 100644 --- a/conf/machine/include/e500v2.inc +++ b/conf/machine/include/e500v2.inc @@ -1,4 +1,4 @@ -require conf/machine/include/tune-ppce500v2.inc +require conf/machine/include/powerpc/tune-ppce500v2.inc MACHINEOVERRIDES =. "e500v2:" require conf/machine/include/qoriq-ppc.inc diff --git a/conf/machine/include/e5500-64b.inc b/conf/machine/include/e5500-64b.inc index 72b958cd..42acb2f2 100644 --- a/conf/machine/include/e5500-64b.inc +++ b/conf/machine/include/e5500-64b.inc @@ -1,11 +1,11 @@ TARGET_FPU = "hard" DEFAULTTUNE ?= "ppc64e5500" -require conf/machine/include/tune-ppce5500.inc +require conf/machine/include/powerpc/tune-ppce5500.inc require conf/machine/include/qoriq-ppc.inc MACHINEOVERRIDES =. "e5500-64b:" require conf/multilib.conf MULTILIBS ?= "multilib:lib32" -DEFAULTTUNE_virtclass-multilib-lib32 ?= "ppce5500" +DEFAULTTUNE:virtclass-multilib-lib32 ?= "ppce5500" diff --git a/conf/machine/include/e5500.inc b/conf/machine/include/e5500.inc index 364ffac4..c6709c16 100644 --- a/conf/machine/include/e5500.inc +++ b/conf/machine/include/e5500.inc @@ -1,6 +1,6 @@ TARGET_FPU = "hard" -require conf/machine/include/tune-ppce5500.inc +require conf/machine/include/powerpc/tune-ppce5500.inc require conf/machine/include/qoriq-ppc.inc MACHINEOVERRIDES =. "e5500:" diff --git a/conf/machine/include/e6500-64b.inc b/conf/machine/include/e6500-64b.inc index e0e04dbc..3611d51a 100644 --- a/conf/machine/include/e6500-64b.inc +++ b/conf/machine/include/e6500-64b.inc @@ -1,11 +1,11 @@ TARGET_FPU = "hard" DEFAULTTUNE ?= "ppc64e6500" -require conf/machine/include/tune-ppce6500.inc +require conf/machine/include/powerpc/tune-ppce6500.inc require conf/machine/include/qoriq-ppc.inc MACHINEOVERRIDES =. "e6500-64b:" require conf/multilib.conf MULTILIBS ?= "multilib:lib32" -DEFAULTTUNE_virtclass-multilib-lib32 ?= "ppce6500" +DEFAULTTUNE:virtclass-multilib-lib32 ?= "ppce6500" diff --git a/conf/machine/include/e6500.inc b/conf/machine/include/e6500.inc index 8d773b6e..565b75ee 100644 --- a/conf/machine/include/e6500.inc +++ b/conf/machine/include/e6500.inc @@ -1,6 +1,6 @@ TARGET_FPU = "hard" -require conf/machine/include/tune-ppce6500.inc +require conf/machine/include/powerpc/tune-ppce6500.inc require conf/machine/include/qoriq-ppc.inc MACHINEOVERRIDES =. "e6500:" @@ -9,4 +9,4 @@ BUILD_64BIT_KERNEL = "1" require conf/multilib.conf MULTILIBS ?= "multilib:lib64" -DEFAULTTUNE_virtclass-multilib-lib64 ?= "ppc64e6500" +DEFAULTTUNE:virtclass-multilib-lib64 ?= "ppc64e6500" diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc index a3532f85..d1f8aca3 100644 --- a/conf/machine/include/imx-base.inc +++ b/conf/machine/include/imx-base.inc @@ -5,44 +5,141 @@ 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. +# +# Two values are considered valid: mainline, nxp +IMX_DEFAULT_BSP ?= "mainline" + +# Those are SoC families we'd like to force the use of mainline BSP. +IMX_DEFAULT_BSP:mxs ?= "mainline" +IMX_DEFAULT_BSP:mx5 ?= "mainline" + +MACHINEOVERRIDES =. "use-${IMX_DEFAULT_BSP}-bsp:" + +# UBOOT_BINARY is used inside the wks files to dynamically find the required +# U-Boot file. +UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}" + +# Using the 'IMX_DEFAULT_BOOTLOADER' the machine can support multiple bootloader +# versions. This is done for NXP reference board where we support 'u-boot-fslc' +# and 'u-boot-imx'. +# +# So, for example in imx6qdlsabresd, we support both flavor and for this we +# define: +# +# ,----[ imx6qdlsabresd.conf ] +# | ### u-boot-fslc settings ### +# | +# | SPL_BINARY:pn-u-boot-fslc = "SPL" +# | UBOOT_MACHINE:pn-u-boot-fslc ?= "mx6sabresd_defconfig" +# | UBOOT_SUFFIX:pn-u-boot-fslc = "img" +# | +# | ### u-boot-imx settings ### +# | +# | # The u-boot-imx does not provide unified functionality for DL/Q/QP SoC +# | # variants. Change the defconfig to the targeted SoC variant. +# | UBOOT_MACHINE:pn-u-boot-imx ?= "mx6qsabresd_defconfig" +# | UBOOT_SUFFIX:pn-u-boot-imx = "imx" +# `---- +# +# As result, the 'UBOOT_SUFFIX' is dynamically set based on the preferred U-Boot +# flavor to use. +# +# For machines where one of the flavors is required, we can force it. An example +# is the imx53qsb, which we define: +# +# ,----[ imx53qsb.conf ] +# | # This machine is not supported by u-boot-imx as it is not tested by NXP on this +# | # board. So we force it to use u-boot-fslc which is based on mainline here. +# | IMX_DEFAULT_BOOTLOADER = "u-boot-fslc" +# | +# | UBOOT_MAKE_TARGET = "u-boot.imx" +# | UBOOT_SUFFIX = "imx" +# | +# | UBOOT_MACHINE = "mx53loco_config" +# `---- +# +# Please note that UBOOT_SUFFIX must be set in the machine config even +# if the value is the same for the U-Boot flavors. If the value is not +# set, then the assignment here is the one used, the value resolves to +# empty, and the build fails: +# | cp: cannot stat '/.../tmp/work/imx8qm_mek-fsl-linux/u-boot-imx/2022.04-r0/build/imx8qm_mek_defconfig/u-boot.': No such file or directory +#| WARNING: /.../tmp/work/imx8qm_mek-fsl-linux/u-boot-imx/2022.04-r0/temp/run.do_compile.21223:186 exit 1 from 'cp /.../tmp/work/imx8qm_mek-fsl-linux/u-boot-imx/2022.04-r0/build/${config}/${binary} /.../tmp/work/imx8qm_mek-fsl-linux/u-boot-imx/2022.04-r0/build/${config}/u-boot-${type}.${UBOOT_SUFFIX:pn-u-boot-imx}' +# +IMX_DEFAULT_BOOTLOADER ??= "u-boot-fslc" +UBOOT_SUFFIX ?= "${UBOOT_SUFFIX:pn-${IMX_DEFAULT_BOOTLOADER}}" + +# We need to export the original variable to allow it to be used when generating +# wic based images. +SPL_BINARY ??= "${@get_spl_binary(d)}" PREFERRED_PROVIDER_u-boot ??= "${IMX_DEFAULT_BOOTLOADER}" +PREFERRED_PROVIDER_u-boot-mfgtool ??= "${IMX_DEFAULT_BOOTLOADER}" PREFERRED_PROVIDER_virtual/bootloader ??= "${IMX_DEFAULT_BOOTLOADER}" PREFERRED_PROVIDER_u-boot-mxsboot-native ??= "u-boot-fslc-mxsboot-native" -UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}" -UBOOT_MAKE_TARGET ?= "u-boot.${UBOOT_SUFFIX}" -UBOOT_MAKE_TARGET_mxs ?= "u-boot.sb" -UBOOT_MAKE_TARGET_mx8 ?= "" - -UBOOT_SUFFIX ?= "imx" -UBOOT_SUFFIX_mxs ?= "sb" -UBOOT_SUFFIX_mx8 ?= "bin" - -UBOOT_ENTRYPOINT_mxs = "0x40008000" -UBOOT_ENTRYPOINT_mx51 = "0x90008000" -UBOOT_ENTRYPOINT_mx53 = "0x70008000" -UBOOT_ENTRYPOINT_mx6 = "0x10008000" -UBOOT_ENTRYPOINT_mx6sl = "0x80008000" -UBOOT_ENTRYPOINT_mx6sll = "0x80008000" -UBOOT_ENTRYPOINT_mx6sx = "0x80008000" -UBOOT_ENTRYPOINT_mx6ul = "0x10008000" -UBOOT_ENTRYPOINT_mx6ull = "0x10008000" -UBOOT_ENTRYPOINT_mx7 = "0x80008000" -UBOOT_ENTRYPOINT_mx7ulp = "0x60008000" -UBOOT_ENTRYPOINT_mx8mq = "0x40480000" -UBOOT_ENTRYPOINT_vf = "0x80008000" - -PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg" -XSERVER_DRIVER = "xf86-video-fbdev" -XSERVER_DRIVER_imxgpu2d = "xf86-video-imx-vivante" -XSERVER_DRIVER_vf = "xf86-video-modesetting" -XSERVER_DRIVER_append_mx8 = " xf86-video-modesetting" -XSERVER_DRIVER_use-mainline-bsp = "xf86-video-armada" +UBOOT_ENTRYPOINT:mxs-generic-bsp ?= "0x40008000" +UBOOT_ENTRYPOINT:mx51-generic-bsp ?= "0x90008000" +UBOOT_ENTRYPOINT:mx53-generic-bsp ?= "0x70008000" +UBOOT_ENTRYPOINT:mx6-generic-bsp ?= "0x10008000" +UBOOT_ENTRYPOINT:mx6sl-generic-bsp ?= "0x80008000" +UBOOT_ENTRYPOINT:mx6sll-generic-bsp ?= "0x80008000" +UBOOT_ENTRYPOINT:mx6sx-generic-bsp ?= "0x80008000" +UBOOT_ENTRYPOINT:mx6ul-generic-bsp ?= "0x80008000" +UBOOT_ENTRYPOINT:mx6ull-generic-bsp ?= "0x80008000" +UBOOT_ENTRYPOINT:mx6ulz-generic-bsp ?= "0x80008000" +UBOOT_ENTRYPOINT:mx7-generic-bsp ?= "0x80008000" +UBOOT_ENTRYPOINT:mx7ulp-generic-bsp ?= "0x60008000" +UBOOT_ENTRYPOINT:mx8m-generic-bsp ?= "0x40480000" +UBOOT_ENTRYPOINT:vf-generic-bsp ?= "0x80008000" + +# Some SoC can utilize the boot container provided by U-Boot, +# below variable sets that those SoC do use this rather than +# assembling it in the imx-boot recipe. +UBOOT_PROVIDES_BOOT_CONTAINER = "0" + +# The boot container should be used only if we're not using u-boot-imx as +# IMX_DEFAULT_BOOTLOADER. +UBOOT_PROVIDES_BOOT_CONTAINER:mx8m-generic-bsp = "${@oe.utils.ifelse(d.getVar('IMX_DEFAULT_BOOTLOADER') == 'u-boot-imx', '0', '1')}" + +# Trusted Firmware for Cortex-A (TF-A) can have different providers, either +# from upstream or from NXP downstream fork. Below variable defines which TF-A +# shall be taken into the build, and will be integrated into runtime image. +# +# Upstream TF-A recipe resides in the meta-arm layer and in maintained by OE +# community. Therefore, in order to add upstream TF-A - additional layer has +# to be included in the bblayers.con file. Compatible machines are added to +# this layer via dynamic-layers mechanism. +# +# NOTE: Current upstream TF-A version (v2.7) does not support HAB feature of +# i.MX8M family. If the upstream TF-A version is chosen, then HAB will not be +# available for all SoCs that are opting-in. This might change with future TF-A +# release, so this statement shall be kept here until support is added. +# +# Default TF-A provider to NXP downstream fork +IMX_DEFAULT_ATF_PROVIDER ??= "imx-atf" + +# Allow setting the UART used during the boot by ATF. + +# FIXME: We should return INVALID here but currently only i.MX8M has support to override the UART +# base address in source code. +SOC_ATF_BOOT_UART_BASE = "" + +SOC_ATF_BOOT_UART_BASE:mx8m-generic-bsp = "0x30890000" +ATF_BOOT_UART_BASE ?= "${SOC_ATF_BOOT_UART_BASE}" + +PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg" +XSERVER_DRIVER = "xf86-video-fbdev" +XSERVER_DRIVER:vf-generic-bsp = "xf86-video-modesetting" +XSERVER_DRIVER:append:mx8-generic-bsp = " xf86-video-modesetting" +XSERVER_DRIVER:imx-mainline-bsp = " \ + xf86-video-fbdev \ + xf86-video-modesetting \ + xserver-xorg-extension-glx \ +" XSERVER = "xserver-xorg \ xf86-input-evdev \ ${XSERVER_DRIVER}" @@ -55,33 +152,120 @@ MACHINE_EXTRA_RRECOMMENDS = "kernel-modules" # ARM_INSTRUCTION_SET = "thumb" # # handled by software -# DEFAULTTUNE_mx6 ?= "cortexa9t-neon" +# DEFAULTTUNE:mx6-generic-bsp ?= "cortexa9t-neon" # handled by hardware -DEFAULTTUNE_mx6 ?= "cortexa9thf-neon" -DEFAULTTUNE_mx6ul ?= "cortexa7thf-neon" -DEFAULTTUNE_mx6ull ?= "cortexa7thf-neon" -DEFAULTTUNE_mx7 ?= "cortexa7thf-neon" -DEFAULTTUNE_vf ?= "cortexa5thf-neon" -DEFAULTTUNE_mx8mm ?= "cortexa53-crypto" +DEFAULTTUNE:mx6-generic-bsp ?= "cortexa9thf-neon" +DEFAULTTUNE:mx6ul-generic-bsp ?= "cortexa7thf-neon" +DEFAULTTUNE:mx6ull-generic-bsp ?= "cortexa7thf-neon" +DEFAULTTUNE:mx6ulz-generic-bsp ?= "cortexa7thf-neon" +DEFAULTTUNE:mx7-generic-bsp ?= "cortexa7thf-neon" +DEFAULTTUNE:vf-generic-bsp ?= "cortexa5thf-neon" + +DEFAULTTUNE:mx8m-generic-bsp ?= "cortexa53-crypto" +DEFAULTTUNE:mx8qm-generic-bsp ?= "cortexa72-cortexa53-crypto" +DEFAULTTUNE:mx8x-generic-bsp ?= "cortexa35-crypto" +DEFAULTTUNE:mx8ulp-generic-bsp ?= "cortexa35-crypto" +DEFAULTTUNE:mx93-generic-bsp ?= "cortexa55" INHERIT += "machine-overrides-extender" -MACHINEOVERRIDES_EXTENDER_mx25 = "use-mainline-bsp" -MACHINEOVERRIDES_EXTENDER_mx6q = "imxfbdev:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d" -MACHINEOVERRIDES_EXTENDER_mx6dl = "imxfbdev:imxpxp:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d:imxepdc" -MACHINEOVERRIDES_EXTENDER_mx6sx = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d" -MACHINEOVERRIDES_EXTENDER_mx6sl = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxepdc" -MACHINEOVERRIDES_EXTENDER_mx6sll = "imxfbdev:imxpxp:imxepdc" -MACHINEOVERRIDES_EXTENDER_mx6ul = "imxfbdev:imxpxp" -MACHINEOVERRIDES_EXTENDER_mx6ull = "imxfbdev:imxpxp:imxepdc" -MACHINEOVERRIDES_EXTENDER_mx7d = "imxfbdev:imxpxp:imxepdc" -MACHINEOVERRIDES_EXTENDER_mx7ulp = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d" -MACHINEOVERRIDES_EXTENDER_mx8qm = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d" -MACHINEOVERRIDES_EXTENDER_mx8mm = "imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d" -MACHINEOVERRIDES_EXTENDER_mx8mq = "imxdrm:imxvpu:imxgpu:imxgpu3d" -MACHINEOVERRIDES_EXTENDER_mx8qxp = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d" - -MACHINEOVERRIDES_EXTENDER_FILTER_OUT_use-mainline-bsp = " \ +IMX_SOC_REV ??= "A0" +IMX_SOC_REV:mx8qm-generic-bsp ??= "B0" +IMX_SOC_REV:mx8qxp-generic-bsp ??= \ + "${@bb.utils.contains('MACHINE_FEATURES', 'soc-revb0', 'B0', \ + 'C0', d)}" +IMX_SOC_REV:mx8dx-generic-bsp ??= "C0" +# WARNING: Don't set a default for 8DXL since an image built with A1 can brick a B0 board +#IMX_SOC_REV:mx8dxl-generic-bsp ??= "" +IMX_SOC_REV:mx8ulp-generic-bsp ??= \ + "${@bb.utils.contains('MACHINE_FEATURES', 'soc-reva0', 'A0', \ + 'A2', d)}" +IMX_SOC_REV:mx93-generic-bsp ??= "A1" + +IMX_SOC_REV_LOWER = "${@d.getVar('IMX_SOC_REV').lower()}" +IMX_SOC_REV_UPPER = "${@d.getVar('IMX_SOC_REV').upper()}" + +####### +### NXP BSP specific overrides +####### + +MACHINEOVERRIDES_EXTENDER:mx6q:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d:mx6-generic-bsp:mx6-nxp-bsp:mx6q-generic-bsp:mx6q-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx6dl:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6dl-generic-bsp:mx6dl-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:mx6sx:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d:mx6-generic-bsp:mx6-nxp-bsp:mx6sx-generic-bsp:mx6sx-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:mx6sl:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxgpu:imxgpu2d:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6sl-generic-bsp:mx6sl-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx6sll:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6sl-generic-bsp:mx6sl-nxp-bsp:mx6sll-generic-bsp:mx6sll-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:mx6ul:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:mx6-generic-bsp:mx6-nxp-bsp:mx6ul-generic-bsp:mx6ul-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx6ull:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6ul-generic-bsp:mx6ul-nxp-bsp:mx6ull-generic-bsp:mx6ull-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx6ulz:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxepdc:mx6-generic-bsp:mx6-nxp-bsp:mx6ul-generic-bsp:mx6ul-nxp-bsp:mx6ull-generic-bsp:mx6ull-nxp-bsp:mx6ulz-generic-bsp:mx6ulz-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:mx7d:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxepdc:mx7-generic-bsp:mx7-nxp-bsp:mx7d-generic-bsp:mx7d-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx7ulp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d:mx7-generic-bsp:mx7-nxp-bsp:mx7ulp-generic-bsp:mx7ulp-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:vf:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:vf-generic-bsp:vf-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:mx8qm:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8qm-generic-bsp:mx8qm-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:mx8mm:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mm-generic-bsp:mx8mm-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx8mn:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxgpu:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mn-generic-bsp:mx8mn-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx8mnul:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mnul-generic-bsp:mx8mnul-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx8mp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mp-generic-bsp:mx8mp-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx8mq:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mq-generic-bsp:mx8mq-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:mx8qxp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8qxp-generic-bsp:mx8qxp-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx8dx:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8dx-generic-bsp:mx8dx-nxp-bsp" +MACHINEOVERRIDES_EXTENDER:mx8dxl:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8dxl-generic-bsp:mx8dxl-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:mx8ulp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxgpu:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8ulp-generic-bsp:mx8ulp-nxp-bsp" + +MACHINEOVERRIDES_EXTENDER:mx93:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxpxp:mx9-generic-bsp:mx9-nxp-bsp:mx93-generic-bsp:mx93-nxp-bsp" + +####### +### Mainline BSP specific overrides +####### + +MACHINEOVERRIDES_EXTENDER:mx23:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mxs-generic-bsp:mxs-mainline-bsp:mx23-generic-bsp:mx23-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx28:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mxs-generic-bsp:mxs-mainline-bsp:mx28-generic-bsp:mx28-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx51:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx5-generic-bsp:mx5-mainline-bsp:mx51-generic-bsp:mx51-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx53:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx5-generic-bsp:mx5-mainline-bsp:mx53-generic-bsp:mx53-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx6q:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6q-generic-bsp:mx6q-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx6dl:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6dl-generic-bsp:mx6dl-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx6sx:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6sx-generic-bsp:mx6sx-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx6sl:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6sl-generic-bsp:mx6sl-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx6sll:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6sll-generic-bsp:mx6sll-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx6ul:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6ul-generic-bsp:mx6ul-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx6ull:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6ul-generic-bsp:mx6ul-mainline-bsp:mx6ull-generic-bsp:mx6ull-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx6ulz:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx6-generic-bsp:mx6-mainline-bsp:mx6ul-generic-bsp:mx6ul-mainline-bsp:mx6ull-generic-bsp:mx6ull-mainline-bsp:mx6ulz-generic-bsp:mx6ulz-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx7d:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx7-generic-bsp:mx7-mainline-bsp:mx7d-generic-bsp:mx7d-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx7ulp:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx7-generic-bsp:mx7-mainline-bsp:mx7ulp-generic-bsp:mx7ulp-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:vf:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:vf-generic-bsp:vf-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx8qm:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8qm-generic-bsp:mx8qm-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx8mm:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mm-generic-bsp:mx8mm-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx8mn:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mn-generic-bsp:mx8mn-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx8mnul:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mnul-generic-bsp:mx8mnul-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx8mp:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mp-generic-bsp:mx8mp-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx8mq:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8m-generic-bsp:mx8m-mainline-bsp:mx8mq-generic-bsp:mx8mq-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx8qxp:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8x-generic-bsp:mx8x-mainline-bsp:mx8qxp-generic-bsp:mx8qxp-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx8dx:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8x-generic-bsp:mx8x-mainline-bsp:mx8dx-generic-bsp:mx8dx-mainline-bsp" +MACHINEOVERRIDES_EXTENDER:mx8dxl:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8x-generic-bsp:mx8x-mainline-bsp:mx8dxl-generic-bsp:mx8dxl-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx8ulp:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx8-generic-bsp:mx8-mainline-bsp:mx8ulp-generic-bsp:mx8ulp-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER:mx93:use-mainline-bsp = "imx-generic-bsp:imx-mainline-bsp:mx9-generic-bsp:mx9-mainline-bsp:mx93-generic-bsp:mx93-mainline-bsp" + +MACHINEOVERRIDES_EXTENDER_FILTER_OUT = " \ mx6 \ mx6q \ mx6dl \ @@ -90,72 +274,100 @@ MACHINEOVERRIDES_EXTENDER_FILTER_OUT_use-mainline-bsp = " \ mx6sll \ mx6ul \ mx6ull \ + mx6ulz \ \ mx7 \ mx7d \ mx7ulp \ \ + vf \ + \ mx8 \ + mx8m \ mx8qm \ mx8mm \ + mx8mn \ + mx8mnul \ + mx8mp \ mx8mq \ mx8qxp \ + mx8dx \ + mx8dxl \ + mx8ulp \ + mx93 \ " +MACHINEOVERRIDES_FILTERED_OUT_QA_ERROR = "%s overrides cannot be used and need conversion to use the new BSP-specific overrides. Check 'meta-freescale/scripts/convert-bsp-specific-overrides'." + # Sub-architecture support MACHINE_SOCARCH_SUFFIX ?= "" -MACHINE_SOCARCH_SUFFIX_mx23 = "-mxs" -MACHINE_SOCARCH_SUFFIX_mx28 = "-mxs" -MACHINE_SOCARCH_SUFFIX_mx51 = "-mx5" -MACHINE_SOCARCH_SUFFIX_mx53 = "-mx5" -MACHINE_SOCARCH_SUFFIX_mx6q = "-mx6qdl" -MACHINE_SOCARCH_SUFFIX_mx6dl = "-mx6qdl" -MACHINE_SOCARCH_SUFFIX_mx6sx = "-mx6sx" -MACHINE_SOCARCH_SUFFIX_mx6sl = "-mx6sl" -MACHINE_SOCARCH_SUFFIX_mx6sll= "-mx6sll" -MACHINE_SOCARCH_SUFFIX_mx7d = "-mx7d" -MACHINE_SOCARCH_SUFFIX_mx7ulp = "-mx7ulp" -MACHINE_SOCARCH_SUFFIX_vf60 = "-vf60" -MACHINE_SOCARCH_SUFFIX_vf50 = "-vf50" -MACHINE_SOCARCH_SUFFIX_mx6ul = "-mx6ul" -MACHINE_SOCARCH_SUFFIX_mx6ull = "-mx6ul" -MACHINE_SOCARCH_SUFFIX_mx8qm = "-mx8" -MACHINE_SOCARCH_SUFFIX_mx8mm = "-mx8mm" -MACHINE_SOCARCH_SUFFIX_mx8mq = "-mx8m" -MACHINE_SOCARCH_SUFFIX_mx8qxp = "-mx8" -MACHINE_SOCARCH_SUFFIX_use-mainline-bsp = "-imx" +MACHINE_SOCARCH_SUFFIX:mx6q-nxp-bsp = "-mx6qdl" +MACHINE_SOCARCH_SUFFIX:mx6dl-nxp-bsp = "-mx6qdl" +MACHINE_SOCARCH_SUFFIX:mx6sx-nxp-bsp = "-mx6sx" +MACHINE_SOCARCH_SUFFIX:mx6sl-nxp-bsp = "-mx6sl" +MACHINE_SOCARCH_SUFFIX:mx6sll-nxp-bsp= "-mx6sll" +MACHINE_SOCARCH_SUFFIX:mx7d-nxp-bsp = "-mx7d" +MACHINE_SOCARCH_SUFFIX:mx7ulp-nxp-bsp = "-mx7ulp" +MACHINE_SOCARCH_SUFFIX:vf-nxp-bsp = "-vf" +MACHINE_SOCARCH_SUFFIX:mx6ul-nxp-bsp = "-mx6ul" +MACHINE_SOCARCH_SUFFIX:mx6ull-nxp-bsp = "-mx6ul" +MACHINE_SOCARCH_SUFFIX:mx6ulz-nxp-bsp = "-mx6ul" +MACHINE_SOCARCH_SUFFIX:mx8qm-nxp-bsp = "-mx8" +MACHINE_SOCARCH_SUFFIX:mx8mm-nxp-bsp = "-mx8mm" +MACHINE_SOCARCH_SUFFIX:mx8mn-nxp-bsp = "-mx8mn" +MACHINE_SOCARCH_SUFFIX:mx8mnul-nxp-bsp = "-mx8mnl" +MACHINE_SOCARCH_SUFFIX:mx8mp-nxp-bsp = "-mx8mp" +MACHINE_SOCARCH_SUFFIX:mx8mq-nxp-bsp = "-mx8m" +MACHINE_SOCARCH_SUFFIX:mx8qxp-nxp-bsp = "-mx8" +MACHINE_SOCARCH_SUFFIX:mx8dx-nxp-bsp = "-mx8" +MACHINE_SOCARCH_SUFFIX:mx8dxl-nxp-bsp = "-mx8xl" +MACHINE_SOCARCH_SUFFIX:mx8ulp-nxp-bsp = "-mx8ulp" +MACHINE_SOCARCH_SUFFIX:mx93-nxp-bsp = "-mx93" + +# For Mainline we use a single SoC suffix as we don't have different build options +MACHINE_SOCARCH_SUFFIX:imx-mainline-bsp = "-imx" MACHINE_ARCH_FILTER = "virtual/kernel" -MACHINE_SOCARCH_FILTER_append_imx = " \ +MACHINE_SOCARCH_FILTER:append:imx-nxp-bsp = " \ alsa-lib \ gstreamer1.0 \ weston \ " -MACHINE_SOCARCH_FILTER_append_imxvpu = " \ +MACHINE_SOCARCH_FILTER:append:imxvpu = " \ imx-codec \ - imx-parser \ imx-vpuwrap \ libimxvpuapi \ virtual/imxvpu \ " -MACHINE_SOCARCH_FILTER_append_imxgpu = " \ +MACHINE_SOCARCH_FILTER:append:imxvulkan = " \ + vulkan-headers \ + vulkan-loader \ + vulkan-tools \ + vulkan-validation-layers \ +" +MACHINE_SOCARCH_FILTER:append:imxgpu = " \ virtual/egl \ - virtual/mesa \ virtual/libopenvg \ + virtual/mesa \ + virtual/opencl-icd \ libdrm \ cairo \ libgal-imx \ + opencl-icd-loader \ + opencl-clhpp \ + opencl-headers \ + opencv \ pango \ " -MACHINE_SOCARCH_FILTER_append_imxgpu2d = " \ +MACHINE_SOCARCH_FILTER:append:imxgpu2d = " \ virtual/libg2d \ " -MACHINE_SOCARCH_FILTER_append_imxgpu3d = " \ +MACHINE_SOCARCH_FILTER:append:imxgpu3d = " \ virtual/libgl \ virtual/libgles1 \ virtual/libgles2 \ " -MACHINE_SOCARCH_FILTER_append_use-mainline-bsp = " \ +MACHINE_SOCARCH_FILTER:append:imx-mainline-bsp = " \ virtual/egl \ virtual/libopenvg \ virtual/libg2d \ @@ -167,21 +379,13 @@ MACHINE_SOCARCH_FILTER_append_use-mainline-bsp = " \ pango \ qtbase \ " -MACHINE_SOCARCH_FILTER_append_mx6q = " \ - virtual/opencl-icd \ - opencl-headers \ -" -MACHINE_SOCARCH_FILTER_append_mx8 = " \ - virtual/opencl-icd \ - opencl-headers \ -" -MACHINE_SOCARCH_FILTER_append_mx8qm = " \ +MACHINE_SOCARCH_FILTER:append:mx8qm-nxp-bsp = " \ virtual/libopenvx \ " INHERIT += "fsl-dynamic-packagearch" -SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS_append = " \ +SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS:append = " \ imx-gpu-viv->kernel-module-imx-gpu-viv \ libimxvpuapi->virtual/imxvpu \ imx-vpuwrap->virtual/imxvpu \ @@ -189,51 +393,139 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS_append = " \ imx-test->virtual/imxvpu \ " +# Firmware used for boot. +IMX_EXTRA_FIRMWARE ?= "" +IMX_EXTRA_FIRMWARE:mx8-generic-bsp = "imx-boot-firmware-files imx-sc-firmware imx-seco" +IMX_EXTRA_FIRMWARE:mx8m-generic-bsp = "imx-boot-firmware-files" +IMX_EXTRA_FIRMWARE:mx8x-generic-bsp = "imx-sc-firmware imx-seco" +IMX_EXTRA_FIRMWARE:mx8ulp-generic-bsp = "firmware-upower firmware-ele-imx" +IMX_EXTRA_FIRMWARE:mx93-generic-bsp = "imx-boot-firmware-files firmware-ele-imx" + # Firmware MACHINE_FIRMWARE ?= "" -MACHINE_FIRMWARE_append_mx25 = " firmware-imx-sdma-imx25" -MACHINE_FIRMWARE_append_mx7d = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc" -MACHINE_FIRMWARE_append_mx6 = " linux-firmware-imx-sdma-imx6q" -MACHINE_FIRMWARE_append_mx6q = " firmware-imx-vpu-imx6q" -MACHINE_FIRMWARE_append_mx6dl = " firmware-imx-vpu-imx6d firmware-imx-epdc" -MACHINE_FIRMWARE_append_mx6sl = " firmware-imx-epdc" -MACHINE_FIRMWARE_append_mx6sll = " firmware-imx-epdc" -MACHINE_FIRMWARE_append_mx6ull = " firmware-imx-epdc" -MACHINE_FIRMWARE_append_mx53 = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53" -MACHINE_FIRMWARE_append_mx51 = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51" -MACHINE_FIRMWARE_append_mx8qxp = " firmware-imx-vpu-imx8qxp" -MACHINE_FIRMWARE_append_use-mainline-bsp = " linux-firmware-imx-sdma-imx6q linux-firmware-imx-sdma-imx7d firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" - -# FIXME: Needs addition of firmware-imx of official BSPs -#MACHINE_FIRMWARE_append_mx27 = " firmware-imx-vpu-imx27" +MACHINE_FIRMWARE:append:mx51-generic-bsp = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51" +MACHINE_FIRMWARE:append:mx53-generic-bsp = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53" +MACHINE_FIRMWARE:append:mx6-generic-bsp = " linux-firmware-imx-sdma-imx6q" +MACHINE_FIRMWARE:append:mx6q-generic-bsp = " firmware-imx-vpu-imx6q" +MACHINE_FIRMWARE:append:mx6dl-generic-bsp = " firmware-imx-vpu-imx6d firmware-imx-epdc" +MACHINE_FIRMWARE:append:mx6sl-generic-bsp = " firmware-imx-epdc" +MACHINE_FIRMWARE:append:mx6sll-generic-bsp = " firmware-imx-epdc" +MACHINE_FIRMWARE:append:mx6ull-generic-bsp = " firmware-imx-epdc" +MACHINE_FIRMWARE:append:mx7d-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc" +MACHINE_FIRMWARE:append:mx8qm-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion" +MACHINE_FIRMWARE:append:mx8mm-generic-bsp = " linux-firmware-imx-sdma-imx7d" +MACHINE_FIRMWARE:append:mx8mn-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn" +MACHINE_FIRMWARE:append:mx8mnul-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn" +MACHINE_FIRMWARE:append:mx8mp-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn firmware-imx-xcvr-imx8mp firmware-sof-imx" +MACHINE_FIRMWARE:append:mx8mq-generic-bsp = " linux-firmware-imx-sdma-imx7d" +MACHINE_FIRMWARE:append:mx8qxp-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion" +MACHINE_FIRMWARE:append:mx8dx-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion" +MACHINE_FIRMWARE:append:imx-mainline-bsp = " linux-firmware-imx-sdma-imx6q linux-firmware-imx-sdma-imx7d firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}" # Extra audio support -MACHINE_EXTRA_RRECOMMENDS_append_mx6 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'imx-alsa-plugins', '', d)}" -MACHINE_EXTRA_RRECOMMENDS_append_mx7 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'imx-alsa-plugins', '', d)}" -MACHINE_EXTRA_RRECOMMENDS_append_mx8 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'imx-alsa-plugins', '', d)}" +IMX_ALSA_EXTRA = "" +IMX_ALSA_EXTRA:imx-nxp-bsp = "imx-alsa-plugins" +MACHINE_EXTRA_RRECOMMENDS:append:mx6-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append:mx7-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append:mx8-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append:mx9-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}" + +# Extra Cypress Wi-Fi and BTW firmware (Murata) +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4339', 'linux-firmware-bcm4339', '', d)}" +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43430', 'linux-firmware-bcm43430', '', d)}" +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43455', 'linux-firmware-bcm43455', '', d)}" +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4356', 'linux-firmware-bcm4356-pcie', '', d)}" +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4359', 'firmware-nxp-wifi-bcm4359-pcie', '', d)}" + +# Extra NXP Wi-Fi and Bluetooth driver firmware and driver +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8801-sdio', 'firmware-nxp-wifi-nxp8801-sdio', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8801-sdio', 'kernel-module-nxp-wlan', '', d)}" + +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8987-sdio', 'firmware-nxp-wifi-nxp8987-sdio', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8987-sdio', 'kernel-module-nxp-wlan', '', d)}" +PREFERRED_RPROVIDER_linux-firmware-nxp8987-sdio = "firmware-nxp-wifi" + +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8997-pcie', 'firmware-nxp-wifi-nxp8997-pcie', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8997-pcie', 'kernel-module-nxp-wlan', '', d)}" +PREFERRED_RPROVIDER_linux-firmware-nxp8997-common = "firmware-nxp-wifi" +PREFERRED_RPROVIDER_linux-firmware-nxp8997-pcie = "firmware-nxp-wifi" + +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8997-sdio', 'firmware-nxp-wifi-nxp8997-sdio', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp8997-sdio', 'kernel-module-nxp-wlan', '', d)}" +PREFERRED_RPROVIDER_linux-firmware-nxp8997-sdio = "firmware-nxp-wifi" + +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp9098-pcie', 'firmware-nxp-wifi-nxp9098-pcie', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp9098-pcie', 'kernel-module-nxp-wlan', '', d)}" +PREFERRED_RPROVIDER_linux-firmware-nxp9098-common = "firmware-nxp-wifi" +PREFERRED_RPROVIDER_linux-firmware-nxp9098-pcie = "firmware-nxp-wifi" + +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp9098-sdio', 'firmware-nxp-wifi-nxp9098-sdio', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxp9098-sdio', 'kernel-module-nxp-wlan', '', d)}" +PREFERRED_RPROVIDER_linux-firmware-nxp9098-sdio = "firmware-nxp-wifi" + +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxpiw416-sdio', 'firmware-nxp-wifi-nxpiw416-sdio', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxpiw416-sdio', 'kernel-module-nxp-wlan', '', d)}" +PREFERRED_RPROVIDER_linux-firmware-nxpiw416-sdio = "firmware-nxp-wifi" + +MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxpiw612-sdio', 'firmware-nxp-wifi-nxpiw612-sdio', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'nxpiw612-sdio', 'kernel-module-nxp-wlan', '', d)}" +PREFERRED_RPROVIDER_linux-firmware-nxpiw612-sdio = "firmware-nxp-wifi" # Extra QCA Wi-Fi & BTE driver and firmware -MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca6174', 'packagegroup-fsl-qca6174', '', d)}" -MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca9377', 'packagegroup-fsl-qca9377', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca6174', 'packagegroup-fsl-qca6174', '', d)}" +MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca9377', 'packagegroup-fsl-qca9377', '', d)}" # Extra udev rules MACHINE_EXTRA_RRECOMMENDS += "udev-rules-imx" +# Jailhouse +PREFERRED_PROVIDER_jailhouse:imx-nxp-bsp ?= "jailhouse-imx" +MACHINE_EXTRA_RRECOMMENDS += " \ + ${@bb.utils.filter('COMBINED_FEATURES', 'jailhouse', d)} \ +" + +# ELE extra Firmware +SECOEXT_FIRMWARE_NAME ?= "UNDEFINED" +SECOEXT_FIRMWARE_NAME:mx8ulp-generic-bsp ?= "mx8ulp${IMX_SOC_REV_LOWER}ext-ahab-container.img" + # GStreamer 1.0 plugins -MACHINE_GSTREAMER_1_0_PLUGIN ?= "" -MACHINE_GSTREAMER_1_0_PLUGIN_mx6dl ?= "gstreamer1.0-plugins-imx-meta" -MACHINE_GSTREAMER_1_0_PLUGIN_mx6q ?= "gstreamer1.0-plugins-imx-meta" -MACHINE_GSTREAMER_1_0_PLUGIN_mx6sl ?= "gstreamer1.0-plugins-imx-meta" -MACHINE_GSTREAMER_1_0_PLUGIN_mx6sx ?= "gstreamer1.0-plugins-imx-meta" -MACHINE_GSTREAMER_1_0_PLUGIN_mx6ul ?= "gstreamer1.0-plugins-imx-meta" -MACHINE_GSTREAMER_1_0_PLUGIN_mx6ull ?= "gstreamer1.0-plugins-imx-meta" -MACHINE_GSTREAMER_1_0_PLUGIN_mx7d ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN ?= "" +MACHINE_GSTREAMER_1_0_PLUGIN:mx6dl-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN:mx6q-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN:mx6sl-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN:mx6sx-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN:mx6ul-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN:mx6ull-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN:mx7d-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN:mx8mm-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN:mx8mn-nxp-bsp ?= "imx-gst1.0-plugin" +MACHINE_GSTREAMER_1_0_PLUGIN:mx8mp-nxp-bsp ?= "imx-gst1.0-plugin" +MACHINE_GSTREAMER_1_0_PLUGIN:mx8mq-nxp-bsp ?= "gstreamer1.0-plugins-imx-meta" +MACHINE_GSTREAMER_1_0_PLUGIN:mx8qm-nxp-bsp ?= "imx-gst1.0-plugin" +MACHINE_GSTREAMER_1_0_PLUGIN:mx8qxp-nxp-bsp ?= "imx-gst1.0-plugin" +MACHINE_GSTREAMER_1_0_PLUGIN:mx8dx-nxp-bsp ?= "imx-gst1.0-plugin" +MACHINE_GSTREAMER_1_0_PLUGIN:mx8ulp-nxp-bsp ?= "imx-gst1.0-plugin" +MACHINE_GSTREAMER_1_0_PLUGIN:mx93-nxp-bsp ?= "imx-gst1.0-plugin" + +# GStreamer forked recipes +PREFERRED_VERSION_gstreamer1.0:mx8-nxp-bsp ??= "1.22.5.imx" +PREFERRED_VERSION_gstreamer1.0-plugins-bad:mx8-nxp-bsp ??= "1.22.5.imx" +PREFERRED_VERSION_gstreamer1.0-plugins-base:mx8-nxp-bsp ??= "1.22.5.imx" +PREFERRED_VERSION_gstreamer1.0-plugins-good:mx8-nxp-bsp ??= "1.22.5.imx" +PREFERRED_VERSION_gstreamer1.0:mx9-nxp-bsp ??= "1.22.5.imx" +PREFERRED_VERSION_gstreamer1.0-plugins-bad:mx9-nxp-bsp ??= "1.22.5.imx" +PREFERRED_VERSION_gstreamer1.0-plugins-base:mx9-nxp-bsp ??= "1.22.5.imx" +PREFERRED_VERSION_gstreamer1.0-plugins-good:mx9-nxp-bsp ??= "1.22.5.imx" + +# GStreamer downgrade ffmpeg +PREFERRED_VERSION_ffmpeg:mx8-nxp-bsp ??= "4.4.1" +PREFERRED_VERSION_ffmpeg:mx9-nxp-bsp ??= "4.4.1" # Determines if the SoC has support for Vivante kernel driver SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "0" -SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_imxgpu = "1" +SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT:imxgpu = "1" # Handle Vivante kernel driver setting: # 0 - machine does not have Vivante GPU driver support @@ -246,54 +538,74 @@ PREFERRED_PROVIDER_virtual/libgl ?= "mesa" PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" -PREFERRED_PROVIDER_virtual/egl_imxgpu ?= "imx-gpu-viv" -PREFERRED_PROVIDER_virtual/libgl_imxgpu3d ?= "imx-gpu-viv" -PREFERRED_PROVIDER_virtual/libgles1_imxgpu3d ?= "imx-gpu-viv" -PREFERRED_PROVIDER_virtual/libgles2_imxgpu3d ?= "imx-gpu-viv" +PREFERRED_PROVIDER_virtual/egl:imxgpu ?= "imx-gpu-viv" +PREFERRED_PROVIDER_virtual/libgl:imxgpu ?= "mesa-gl" +PREFERRED_PROVIDER_virtual/mesa:imxgpu ?= "mesa-gl" +PREFERRED_PROVIDER_virtual/libgles1:imxgpu3d ?= "imx-gpu-viv" +PREFERRED_PROVIDER_virtual/libgles2:imxgpu3d ?= "imx-gpu-viv" +PREFERRED_PROVIDER_virtual/libgles3:imxgpu3d ?= "imx-gpu-viv" PREFERRED_PROVIDER_virtual/libg2d ?= "imx-gpu-g2d" -PREFERRED_PROVIDER_virtual/libg2d_imxdpu ?= "imx-dpu-g2d" - -PREFERRED_VERSION_weston_mx6 ?= "5.0.0.imx" -PREFERRED_VERSION_weston_mx7 ?= "5.0.0.imx" -PREFERRED_VERSION_weston_mx8 ?= "5.0.0.imx" - -PREFERRED_VERSION_wayland-protocols_mx6 ?= "1.17.imx" -PREFERRED_VERSION_wayland-protocols_mx7 ?= "1.17.imx" -PREFERRED_VERSION_wayland-protocols_mx8 ?= "1.17.imx" +PREFERRED_PROVIDER_virtual/libg2d:imxdpu ?= "imx-dpu-g2d" +PREFERRED_PROVIDER_virtual/libg2d:mx93-nxp-bsp ?= "imx-pxp-g2d" +PREFERRED_PROVIDER_opencl-clhpp:imxgpu ?= "imx-gpu-viv" +PREFERRED_PROVIDER_opencl-headers:imxgpu ?= "imx-gpu-viv" +PREFERRED_PROVIDER_opencl-icd-loader:imxgpu ?= "imx-gpu-viv" +PREFERRED_PROVIDER_virtual/opencl-icd:imxgpu ?= "imx-gpu-viv" + +PREFERRED_VERSION_weston:imx-nxp-bsp ??= "12.0.3.imx" +# i.MX 6 & 7 stay on weston 10.0 for fbdev +PREFERRED_VERSION_weston:mx6-nxp-bsp ??= "10.0.5.imx" +PREFERRED_VERSION_weston:mx7-nxp-bsp ??= "10.0.5.imx" +PREFERRED_VERSION_weston:imx-mainline-bsp = "" + +PREFERRED_VERSION_wayland-protocols:mx6-nxp-bsp ??= "1.32.imx" +PREFERRED_VERSION_wayland-protocols:mx7-nxp-bsp ??= "1.32.imx" +PREFERRED_VERSION_wayland-protocols:mx8-nxp-bsp ??= "1.32.imx" +PREFERRED_VERSION_wayland-protocols:mx9-nxp-bsp ??= "1.32.imx" + +PREFERRED_VERSION_xwayland:imx-nxp-bsp ??= "23.1.1.imx" # Use i.MX libdrm Version -PREFERRED_VERSION_libdrm_mx6 ?= "2.4.91.imx" -PREFERRED_VERSION_libdrm_mx7 ?= "2.4.91.imx" -PREFERRED_VERSION_libdrm_mx8 ?= "2.4.91.imx" +PREFERRED_VERSION_libdrm:mx6-nxp-bsp ??= "2.4.116.imx" +PREFERRED_VERSION_libdrm:mx7-nxp-bsp ??= "2.4.116.imx" +PREFERRED_VERSION_libdrm:mx8-nxp-bsp ??= "2.4.116.imx" +PREFERRED_VERSION_libdrm:mx9-nxp-bsp ??= "2.4.116.imx" + +PREFERRED_VERSION_spirv-headers:imxvulkan ??= "1.3.261.1.imx" +PREFERRED_VERSION_spirv-tools:imxvulkan ??= "1.3.261.1.imx" +PREFERRED_VERSION_vulkan-headers:imxvulkan ??= "1.3.261.1.imx" +PREFERRED_VERSION_vulkan-loader:imxvulkan ??= "1.3.261.1.imx" +PREFERRED_VERSION_vulkan-tools:imxvulkan ??= "1.3.261.1.imx" +PREFERRED_VERSION_vulkan-validation-layers:imxvulkan ??= "1.3.261.1.imx" # Use i.MX optee Version -PREFERRED_VERSION_optee-os_mx8 ?= "3.2.0.imx" -PREFERRED_VERSION_optee-client_mx8 ?= "3.2.0.imx" -PREFERRED_VERSION_optee-test_mx8 ?= "3.2.0.imx" +PREFERRED_VERSION_optee-os:mx8-nxp-bsp ??= "4.0.0.imx" +PREFERRED_VERSION_optee-os:mx9-nxp-bsp ??= "4.0.0.imx" +PREFERRED_VERSION_optee-client:mx8-nxp-bsp ??= "4.0.0.imx" +PREFERRED_VERSION_optee-client:mx9-nxp-bsp ??= "4.0.0.imx" +PREFERRED_VERSION_optee-test:mx8-nxp-bsp ??= "4.0.0.imx" +PREFERRED_VERSION_optee-test:mx9-nxp-bsp ??= "4.0.0.imx" + +# Use i.MX opencv Version +PREFERRED_VERSION_opencv:mx8-nxp-bsp ??= "4.6.0.imx" +PREFERRED_VERSION_opencv:mx9-nxp-bsp ??= "4.6.0.imx" # Handle default kernel -IMX_DEFAULT_KERNEL = "linux-imx" -IMX_DEFAULT_KERNEL_mxs = "linux-fslc" -IMX_DEFAULT_KERNEL_mx5 = "linux-fslc" -IMX_DEFAULT_KERNEL_mx6 = "linux-fslc-imx" -IMX_DEFAULT_KERNEL_mx7 = "linux-fslc-imx" -IMX_DEFAULT_KERNEL_mx8 = "linux-imx" -IMX_DEFAULT_KERNEL_mx7ulp = "linux-imx" -IMX_DEFAULT_KERNEL_mx6sll = "linux-imx" -IMX_DEFAULT_KERNEL_mx6ul = "linux-fslc-imx" -IMX_DEFAULT_KERNEL_mx6ull = "linux-fslc-imx" -IMX_DEFAULT_KERNEL_use-mainline-bsp = "linux-fslc" +IMX_DEFAULT_KERNEL:imx-mainline-bsp = "linux-fslc" +IMX_DEFAULT_KERNEL:imx-nxp-bsp = "linux-fslc-imx" PREFERRED_PROVIDER_virtual/kernel ??= "${IMX_DEFAULT_KERNEL}" SOC_DEFAULT_IMAGE_FSTYPES = "wic.bmap wic.gz" -SOC_DEFAULT_IMAGE_FSTYPES_mxs = "uboot-mxsboot-sdcard wic.gz" +SOC_DEFAULT_IMAGE_FSTYPES:mxs-generic-bsp = "uboot-mxsboot-sdcard wic.bmap wic.gz" # Do not update fstab file when using wic images WIC_CREATE_EXTRA_ARGS ?= "--no-fstab-update" -OPTEE_BOOT_IMAGE = "uTee" -OPTEE_BOOT_IMAGE_aarch64 = "" +OPTEE_BIN_EXT ??= "" +OPTEE_BOOT_IMAGE = "tee.bin uTee-${OPTEE_BIN_EXT}" +OPTEE_BOOT_IMAGE:mx8-generic-bsp = "tee.bin" +OPTEE_BOOT_IMAGE:mx9-generic-bsp = "tee.bin" IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}" @@ -305,45 +617,54 @@ IMAGE_BOOT_FILES ?= " \ ### wic default support OPTEE_WKS_FILE_DEPENDS = "optee-os" -OPTEE_WKS_FILE_DEPENDS_aarch64 = "" +OPTEE_WKS_FILE_DEPENDS:aarch64 = "" WKS_FILE_DEPENDS ?= " \ virtual/bootloader \ \ e2fsprogs-native \ - bmap-tools-native \ + bmaptool-native \ ${@bb.utils.contains('MACHINE_FEATURES', 'optee', '${OPTEE_WKS_FILE_DEPENDS}', '', d)} \ " -WKS_FILE_DEPENDS_mx8 += "imx-boot" +# We need to restrict the append so we don't add this for other i.MX SoC's. +# Derivatives that are not yet adopted the usage of boot container provided +# by U-Boot build are still targeted to use 'imx-boot' package provided by +# NXP. +# +# Moving those derivatives to mainline BSP would require to set +# UBOOT_PROVIDES_BOOT_CONTAINER to "1" and test if the U-Boot built 'flash.bin' +# binary is a working replacement. +# +# NOTE: the results binary name of the boot container is set to 'imx-boot' +# for both NXP and Mainline BSP. +WKS_FILE_DEPENDS:append:imx-generic-bsp:mx8-generic-bsp = " \ + ${@oe.utils.ifelse(d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '0', 'imx-boot', '')} \ +" +WKS_FILE_DEPENDS:append:imx-generic-bsp:mx9-generic-bsp = " \ + ${@oe.utils.ifelse(d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '0', 'imx-boot', '')} \ +" SOC_DEFAULT_WKS_FILE ?= "imx-uboot-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" +SOC_DEFAULT_WKS_FILE:mx8-generic-bsp ?= "imx-imx-boot-bootpart.wks.in" +SOC_DEFAULT_WKS_FILE:mxs-generic-bsp ?= "imx-uboot-mxs-bootpart.wks.in" +SOC_DEFAULT_WKS_FILE:mx9-generic-bsp ?= "imx-imx-boot-bootpart.wks.in" WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}" -# Certain machines override the default fsl u-boot with the -# fslc u-boot. To restore the fsl u-boot, add use-fsl-bsp like this: -# MACHINEOVERRIDES_prepend_imx6ulevk = "use-fsl-bsp:" -UBOOT_MAKE_TARGET_use-fsl-bsp_mx6 = "u-boot.imx" -UBOOT_SUFFIX_use-fsl-bsp_mx6 = "imx" -SPL_BINARY_use-fsl-bsp_mx6 = "" -WKS_FILE_use-fsl-bsp_mx6 = "imx-uboot-bootpart.wks.in" -UBOOT_MAKE_TARGET_use-fsl-bsp_mx7 = "u-boot.imx" -UBOOT_SUFFIX_use-fsl-bsp_mx7 = "imx" -SPL_BINARY_use-fsl-bsp_mx7 = "" -WKS_FILE_use-fsl-bsp_mx7 = "imx-uboot-bootpart.wks.in" - SERIAL_CONSOLES = "115200;ttymxc0" -SERIAL_CONSOLES_mxs = "115200;ttyAMA0" +SERIAL_CONSOLES:mxs-generic-bsp = "115200;ttyAMA0" KERNEL_IMAGETYPE = "zImage" -KERNEL_IMAGETYPE_aarch64 = "Image" +KERNEL_IMAGETYPE:mx8-generic-bsp = "Image" +KERNEL_IMAGETYPE:mx9-generic-bsp = "Image" + +MACHINE_FEATURES = "usbgadget usbhost vfat alsa touchscreen screen" -MACHINE_FEATURES = "usbgadget usbhost vfat alsa touchscreen" +HOSTTOOLS_NONFATAL:append:mx8-nxp-bsp = " sha384sum" -# Add the ability to specify _imx machines -MACHINEOVERRIDES =. "imx:" +# Add task to generate the mfgtool bundle for the image. +IMAGE_CLASSES:append:imx-generic-bsp = " image_populate_mfgtool" -HOSTTOOLS_NONFATAL_append_mx8 = " sha384sum" +# Allow meta-imx to add NIP devices information until upstreamed. +include conf/machine/include/imx-base-extend.inc diff --git a/conf/machine/include/imx8dxl-ddr3l-evk.inc b/conf/machine/include/imx8dxl-ddr3l-evk.inc new file mode 100644 index 00000000..9c21aa35 --- /dev/null +++ b/conf/machine/include/imx8dxl-ddr3l-evk.inc @@ -0,0 +1,9 @@ +require conf/machine/include/imx8dxl-evk.inc + +KERNEL_DEVICETREE_BASENAME = "imx8dxl-ddr3l-evk" + +UBOOT_CONFIG_BASENAME = "imx8dxl_ddr3l_evk" + +UBOOT_CONFIG[nand] = "${UBOOT_CONFIG_BASENAME}_nand_defconfig" + +BOARD_TYPE = "ddr3-evk" diff --git a/conf/machine/include/imx8dxl-evk.inc b/conf/machine/include/imx8dxl-evk.inc new file mode 100644 index 00000000..0f9aa1f0 --- /dev/null +++ b/conf/machine/include/imx8dxl-evk.inc @@ -0,0 +1,60 @@ +MACHINEOVERRIDES =. "mx8dxl:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/armv8a/tune-cortexa35.inc + +IMX_DEFAULT_BSP = "nxp" + +MACHINE_FEATURES += "pci bcm43455 bcm4356 nxp8997-pcie nxp9098-pcie" +MACHINE_FEATURES:append:use-nxp-bsp = " bcm4359" + +# Don't include kernels in standard images +RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = "" + +LOADADDR = "" + +# Disable the serial console due to auto-serial-console +SERIAL_CONSOLES = "115200;ttyLP0" + +# we do not want to have getty running on tty1 as we run +# auto-serial-console there +USE_VT = "0" + +KERNEL_DEVICETREE = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ +" +KERNEL_DEVICETREE:append:use-nxp-bsp = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \ +" + +ATF_PLATFORM = "imx8dxl" +IMX_BOOT_SOC_TARGET = "iMX8DXL" + +# This machine is not supported by u-boot-fslc, so we force it to use +# u-boot-imx here. +IMX_DEFAULT_BOOTLOADER = "u-boot-imx" + +UBOOT_MAKE_TARGET = "all" +SPL_BINARY = "spl/u-boot-spl.bin" +UBOOT_SUFFIX = "bin" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard" +UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_fspi_defconfig" + +IMX_BOOT_SEEK = "32" + +IMXBOOT_TARGETS_SD = \ + "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl', \ + 'flash', d)}" +IMXBOOT_TARGETS_FSPI = \ + "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl_flexspi', \ + 'flash_flexspi', d)}" +IMXBOOT_TARGETS_NAND = \ + "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl_nand', \ + 'flash_nand flash_nand_fw', d)}" +IMXBOOT_TARGETS = \ + "${@bb.utils.contains('UBOOT_CONFIG', 'sd', '${IMXBOOT_TARGETS_SD}', \ + bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_FSPI}', \ + bb.utils.contains('UBOOT_CONFIG', 'nand', '${IMXBOOT_TARGETS_NAND}', \ + 'INVALID', d), d), d)}" diff --git a/conf/machine/include/imx8dxl-lpddr4-evk.inc b/conf/machine/include/imx8dxl-lpddr4-evk.inc new file mode 100644 index 00000000..b3b906ec --- /dev/null +++ b/conf/machine/include/imx8dxl-lpddr4-evk.inc @@ -0,0 +1,17 @@ +require conf/machine/include/imx8dxl-evk.inc + +KERNEL_DEVICETREE_BASENAME = "imx8dxl-evk" + +KERNEL_DEVICETREE:append:use-nxp-bsp = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}-enet0.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-enet0-tja1100.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-lcdif.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-lpspi-slave.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \ +" + +UBOOT_CONFIG_BASENAME = "imx8dxl_evk" + +UBOOT_CONFIG[lcd] = "${UBOOT_CONFIG_BASENAME}_lcd_defconfig" + +BOARD_TYPE = "evk" diff --git a/conf/machine/include/imx8mm-evk.inc b/conf/machine/include/imx8mm-evk.inc new file mode 100644 index 00000000..442f4477 --- /dev/null +++ b/conf/machine/include/imx8mm-evk.inc @@ -0,0 +1,75 @@ +MACHINEOVERRIDES =. "mx8mm:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/armv8a/tune-cortexa53.inc + +# Mainline BSP defaults to "generic" cortexa53 configuration, +# adjust it here to include crypto extension which enables +# inline NEON and FPU code generation +DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto" + +MACHINE_FEATURES += "pci wifi bluetooth bcm43455 bcm4356 nxp8987-sdio" + +# NXP BSP can consume proprietary jailhouse and BCM4359 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 +# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have +# a full support for it yet. +MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse bcm4359" + +KERNEL_DEVICETREE = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ +" +KERNEL_DEVICETREE:append:use-nxp-bsp = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191-cmd-ram.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199-cmd-ram.dtb \ +" +UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb" + +UBOOT_SUFFIX = "bin" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard" + +SPL_BINARY = "spl/u-boot-spl.bin" + +ATF_PLATFORM = "imx8mm" + +IMXBOOT_TARGETS = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_BASENAME}_flexspi', '${IMXBOOT_TARGETS_BASENAME}', d)}" + +IMX_BOOT_SOC_TARGET = "iMX8MM" + +SERIAL_CONSOLES = "115200;ttymxc1" + +# Add support for Syslinux to mainline BSP. +# U-Boot has the Distro Boot mode enabled by default, which +# require that either Syslinux to be enabled, or a boot script +# to be used to define the boot process. +# We opt-in for Syslinux, since it is designated as a preferred +# distro boot mode according to the U-Boot documentation. +UBOOT_EXTLINUX:use-mainline-bsp = "1" +UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default" +UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Mini EVK" + +UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Mini EVK" +UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb" +UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}" +UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp = "root=/dev/mmcblk1p2" + +# Add extlinux.conf to the lis of files, which are deployed onto the +# boot partition +IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf" + +LOADADDR = "" +UBOOT_MAKE_TARGET = "all" +IMX_BOOT_SEEK = "33" + +OPTEE_BIN_EXT = "8mm" +TEE_LOAD_ADDR = "0xbe000000" + +# Add additional firmware +MACHINE_FIRMWARE:append = " linux-firmware-ath10k" diff --git a/conf/machine/include/imx8mn-evk.inc b/conf/machine/include/imx8mn-evk.inc new file mode 100644 index 00000000..11657bcc --- /dev/null +++ b/conf/machine/include/imx8mn-evk.inc @@ -0,0 +1,84 @@ +MACHINEOVERRIDES =. "mx8mn:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/armv8a/tune-cortexa53.inc + +# Mainline BSP defaults to "generic" cortexa53 configuration, +# adjust it here to include crypto extension which enables +# inline NEON and FPU code generation +DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto" + +MACHINE_FEATURES += "wifi bluetooth bcm43455 bcm4356 nxp8987-sdio" + +# NXP BSP can consume proprietary jailhouse and Broadcom drivers +# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have +# a full support for it yet. +MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse bcm4359" + +KERNEL_DEVICETREE = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ +" +KERNEL_DEVICETREE:append:use-nxp-bsp = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}-ak5558.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-lk.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191-cmd-ram.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rm67199-cmd-ram.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \ +" +UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb" + +IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx" +IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc" + +UBOOT_SUFFIX = "bin" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard" +UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_defconfig" +UBOOT_CONFIG[ld] = "${UBOOT_CONFIG_BASENAME}_ld_defconfig" + +SPL_BINARY = "spl/u-boot-spl.bin" + +ATF_PLATFORM = "imx8mn" + +IMXBOOT_TARGETS = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_BASENAME}_flexspi', '${IMXBOOT_TARGETS_BASENAME}', d)}" + +IMX_BOOT_SOC_TARGET = "iMX8MN" + +SERIAL_CONSOLES = "115200;ttymxc1" + +# Add support for Syslinux to mainline BSP. +# U-Boot has the Distro Boot mode enabled by default, which +# require that either Syslinux to be enabled, or a boot script +# to be used to define the boot process. +# We opt-in for Syslinux, since it is designated as a preferred +# distro boot mode according to the U-Boot documentation. +UBOOT_EXTLINUX:use-mainline-bsp = "1" +UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default" +UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Nano EVK" + +UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Nano EVK" +UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb" +UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}" +UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp = "root=/dev/mmcblk1p2" + +# Add extlinux.conf to the lis of files, which are deployed onto the +# boot partition +IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf" + +BOOT_SPACE = "65536" +LOADADDR = "" +UBOOT_MAKE_TARGET = "all" + +# Image boot offset as defined in section 6.1.6.1 "Primary image offset and IVT offset" of +# i.MX 8M Nano Applications Processor Reference Manual, Rev. 0, 12/2019 +# Doc ID: IMX8MNRM +IMX_BOOT_SEEK = "32" + +OPTEE_BIN_EXT = "8mn" +TEE_LOAD_ADDR = "0x56000000" + +# Add additional firmware +MACHINE_FIRMWARE:append = " linux-firmware-ath10k" diff --git a/conf/machine/include/imx8mp-evk.inc b/conf/machine/include/imx8mp-evk.inc new file mode 100644 index 00000000..24e5588f --- /dev/null +++ b/conf/machine/include/imx8mp-evk.inc @@ -0,0 +1,74 @@ +MACHINEOVERRIDES =. "mx8mp:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/armv8a/tune-cortexa53.inc + +# Mainline BSP defaults to "generic" cortexa53 configuration, +# adjust it here to include crypto extension which enables +# inline NEON and FPU code generation +DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto" + +MACHINE_FEATURES += "pci wifi bluetooth nxp8997-pcie nxp8997-sdio nxp9098-pcie nxp9098-sdio" + +# NXP BSP can consume proprietary jailhouse and Marvell drivers +# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have +# a full support for it yet. +MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse mrvl8997" + +# Mainline kernel contains only one DTB file for +# imx8mpevk machine +KERNEL_DEVICETREE = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ +" + +UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb" + +IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx" +IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc" + +UBOOT_SUFFIX = "bin" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard" +UBOOT_CONFIG[ecc] = "${UBOOT_CONFIG_BASENAME}_inline_ecc_defconfig" + +SPL_BINARY = "spl/u-boot-spl.bin" + +ATF_PLATFORM = "imx8mp" + +IMXBOOT_TARGETS = \ + "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_BASENAME}_flexspi', \ + '${IMXBOOT_TARGETS_BASENAME}', d)}" + +IMX_BOOT_SOC_TARGET = "iMX8MP" + +SERIAL_CONSOLES = "115200;ttymxc1" + +# Add support for Syslinux to mainline BSP. +# U-Boot has the Distro Boot mode enabled by default, which +# require that either Syslinux to be enabled, or a boot script +# to be used to define the boot process. +# We opt-in for Syslinux, since it is designated as a preferred +# distro boot mode according to the U-Boot documentation. +UBOOT_EXTLINUX:use-mainline-bsp = "1" +UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default" +UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Plus EVK" + +UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Plus EVK" +UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb" +UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}" +UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp = "root=/dev/mmcblk1p2" + +# Add extlinux.conf to the lis of files, which are deployed onto the +# boot partition +IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf" + +LOADADDR = "" +UBOOT_MAKE_TARGET = "all" +IMX_BOOT_SEEK = "32" + +OPTEE_BIN_EXT = "8mp" +TEE_LOAD_ADDR = "0x56000000" + +# Add additional firmware +MACHINE_FIRMWARE:append = " linux-firmware-ath10k" diff --git a/conf/machine/include/imx8ulp-evk.inc b/conf/machine/include/imx8ulp-evk.inc new file mode 100644 index 00000000..23269530 --- /dev/null +++ b/conf/machine/include/imx8ulp-evk.inc @@ -0,0 +1,44 @@ +MACHINEOVERRIDES =. "mx8:mx8ulp:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/armv8a/tune-cortexa35.inc + +MACHINE_FEATURES += "pci wifi bluetooth optee jailhouse" + +KERNEL_DEVICETREE = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ +" + +IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx" +IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc" + +LOADADDR = "" +UBOOT_SUFFIX = "bin" +UBOOT_MAKE_TARGET = "" + +SPL_BINARY = "spl/u-boot-spl.bin" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard" +UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_defconfig" +UBOOT_CONFIG[nd] = "${UBOOT_CONFIG_BASENAME}_nd_defconfig" + +# Set ATF platform name +ATF_PLATFORM = "imx8ulp" + +IMXBOOT_TARGETS_SD = "flash_singleboot flash_dualboot" +IMXBOOT_TARGETS_FSPI = "flash_dualboot_flexspi" +IMXBOOT_TARGETS_ND = "" + +IMXBOOT_TARGETS = "${@bb.utils.contains('UBOOT_CONFIG', 'sd', '${IMXBOOT_TARGETS_SD}', \ + bb.utils.contains('UBOOT_CONFIG', 'fspi', '${IMXBOOT_TARGETS_FSPI}', \ + '${IMXBOOT_TARGETS_ND}', d), d)}" + +IMX_BOOT_SOC_TARGET = "iMX8ULP" +IMX_BOOT_SEEK = "32" + +# We have to disable SERIAL_CONSOLE due to auto-serial-console +SERIAL_CONSOLES = "115200;ttyLP1" + +# Add additional firmware +MACHINE_FIRMWARE:append = " firmware-imx-epdc" diff --git a/conf/machine/include/imx8x-mek.inc b/conf/machine/include/imx8x-mek.inc new file mode 100644 index 00000000..9eaa77c5 --- /dev/null +++ b/conf/machine/include/imx8x-mek.inc @@ -0,0 +1,71 @@ +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/armv8a/tune-cortexa35.inc + +IMX_DEFAULT_BSP = "nxp" + +MACHINE_FEATURES += "pci optee bcm43455 bcm4356 nxp8997-pcie nxp9098-pcie" +MACHINE_FEATURES:append:use-nxp-bsp = " bcm4359" + +# Don't include kernels in standard images +RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = "" + +LOADADDR = "" + +# We have to disable SERIAL_CONSOLE due to auto-serial-console +SERIAL_CONSOLES = "115200;ttyAMA0" + +# we do not want to have getty running on tty1 as we run +# auto-serial-console there +USE_VT = "0" + +KERNEL_DEVICETREE = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ +" +KERNEL_DEVICETREE:append:use-nxp-bsp = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67191.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67191-rpmsg.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-enet2-tja1100.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-dual-channel.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-dual-channel-rpmsg.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds1-dual-channel.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds1-dual-channel-rpmsg.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds0-panel.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds0-panel-rpmsg.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds1-panel.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds1-panel-rpmsg.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-ov5640.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-ov5640-rpmsg.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \ +" + +UBOOT_MAKE_TARGET = \ + "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '', \ + 'u-boot.bin', d)}" +SPL_BINARY = \ + "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'spl/u-boot-spl.bin', \ + '', d)}" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard" +UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_fspi_defconfig" + +IMX_BOOT_SEEK = "32" + +# This machine is not supported by u-boot-fslc, so we force it to use +# u-boot-imx here. +IMX_DEFAULT_BOOTLOADER = "u-boot-imx" +UBOOT_SUFFIX = "bin" + +IMXBOOT_TARGETS_SD = \ + "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl', \ + 'flash', d)}" +IMXBOOT_TARGETS_FSPI = \ + "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'flash_spl_flexspi', \ + 'flash_flexspi', d)}" +IMXBOOT_TARGETS = \ + "${@bb.utils.contains('UBOOT_CONFIG', 'sd', '${IMXBOOT_TARGETS_SD}', \ + '${IMXBOOT_TARGETS_FSPI}', d)}" +BOARD_TYPE = "mek" + +# Add additional firmware +MACHINE_FIRMWARE:append = " linux-firmware-ath10k" diff --git a/conf/machine/include/imx93-evk.inc b/conf/machine/include/imx93-evk.inc new file mode 100644 index 00000000..3a922282 --- /dev/null +++ b/conf/machine/include/imx93-evk.inc @@ -0,0 +1,39 @@ +MACHINEOVERRIDES =. "mx93:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc + +MACHINE_FEATURES += "pci wifi bluetooth" +MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse nxpiw612-sdio" + +KERNEL_DEVICETREE = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ +" +UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb" + +IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx" +IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc" + +LOADADDR = "" +UBOOT_SUFFIX = "bin" +UBOOT_MAKE_TARGET = "" + +SPL_BINARY = "spl/u-boot-spl.bin" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard" +UBOOT_CONFIG[ecc] = "${UBOOT_CONFIG_BASENAME}_inline_ecc_defconfig" +UBOOT_CONFIG[ld] = "${UBOOT_CONFIG_BASENAME}_ld_defconfig" + +# Set ATF platform name +ATF_PLATFORM = "imx93" + +IMXBOOT_TARGETS = "flash_singleboot" + +IMX_BOOT_SOC_TARGET = "iMX9" +IMX_BOOT_SEEK = "32" + +# We have to disable SERIAL_CONSOLE due to auto-serial-console +SERIAL_CONSOLES = "115200;ttyLP0" + +IMX_DEFAULT_BSP = "nxp" diff --git a/conf/machine/include/qoriq-arm.inc b/conf/machine/include/qoriq-arm.inc index eb03af43..89e9c4c0 100644 --- a/conf/machine/include/qoriq-arm.inc +++ b/conf/machine/include/qoriq-arm.inc @@ -1,5 +1,7 @@ # Provides the common settings for QorIQ ARM +# default assignment to override defaults from kernel.bbclass +# should be assigned by machine if other type needed KERNEL_IMAGETYPE ?= "uImage" SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyEHV0 115200;ttyLP0 115200;ttyAMA0" diff --git a/conf/machine/include/qoriq-base.inc b/conf/machine/include/qoriq-base.inc index 6166cb2a..4340c942 100644 --- a/conf/machine/include/qoriq-base.inc +++ b/conf/machine/include/qoriq-base.inc @@ -1,30 +1,61 @@ # common providers of QorIQ targets -PREFERRED_PROVIDER_cryptodev-linux = "cryptodev-qoriq-linux" -PREFERRED_PROVIDER_cryptodev-module = "cryptodev-qoriq-module" -PREFERRED_PROVIDER_cryptodev-tests = "cryptodev-qoriq-tests" -PREFERRED_PROVIDER_openssl = "openssl-qoriq" -PREFERRED_PROVIDER_u-boot ?= "u-boot-qoriq" -PREFERRED_PROVIDER_u-boot-fw-utils ?= "${PREFERRED_PROVIDER_u-boot}-fw-utils" -PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-qoriq" -PREFERRED_PROVIDER_virtual/kernel ?= "linux-qoriq" +PREFERRED_PROVIDER_u-boot ??= "u-boot-qoriq" +PREFERRED_PROVIDER_virtual/bootloader ??= "${PREFERRED_PROVIDER_u-boot}" +PREFERRED_PROVIDER_virtual/kernel ??= "linux-qoriq" +PREFERRED_PROVIDER_u-boot-tools-native ??= "u-boot-tools-native" +PREFERRED_PROVIDER_u-boot-mkimage-native ??= "u-boot-tools-native" +PREFERRED_PROVIDER_u-boot-mkimage ??= "u-boot-tools" +PREFERRED_PROVIDER_nativesdk-u-boot-mkimage ??= "nativesdk-u-boot-tools" PREFERRED_VERSION_testfloat = "2a" -PREFERRED_PROVIDER_ptpd = "ptpd-qoriq" -SOC_DEFAULT_IMAGE_FSTYPES = "tar.gz ext2.gz.u-boot ext2.gz" +SOC_DEFAULT_IMAGE_FSTYPES = "tar.gz" +SOC_DEFAULT_IMAGE_FSTYPES:append:ls1043a = " wic.bz2" +SOC_DEFAULT_IMAGE_FSTYPES:append:ls1046a = " wic.bz2" IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}" +# Composite Image Layout (in KBytes) +IMAGE_OFFSET_PBL ?= "4" +IMAGE_OFFSET_FIP ?= "1024" +IMAGE_OFFSET_FMAN_UCODE ?= "9216" + +# Composite Image Filenames +IMAGE_FILE_PBL_SD ?= "atf/bl2_sd.pbl" +IMAGE_FILE_FIP_UBOOT ?= "atf/fip_uboot.bin" + +# Do not update fstab file when using wic images +WIC_CREATE_EXTRA_ARGS ?= "--no-fstab-update" + +IMAGE_BOOT_FILES ?= " \ + ${KERNEL_IMAGETYPE} \ + *.dtb \ +" + +SOC_DEFAULT_WKS_FILE ?= "" +SOC_DEFAULT_WKS_FILE:ls1043a ?= "ls104x-uboot-bootpart.wks.in" +SOC_DEFAULT_WKS_FILE:ls1046a ?= "ls104x-uboot-bootpart.wks.in" + +WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}" + MACHINE_FEATURES ?= "pci ext2 ext3 serial" MACHINE_EXTRA_RRECOMMENDS += "udev-extraconf udev-rules-qoriq kernel-modules" -EXTRA_IMAGEDEPENDS += "u-boot cst-native" +EXTRA_IMAGEDEPENDS += "u-boot qoriq-cst-native" MACHINEOVERRIDES =. "qoriq:" +# Machines or distros can define which BSP it should use by default. We are +# intending to default for nxp BSP by default and specific machines or +# DISTROs might change it if need. +# +# Two values are considered valid: mainline, nxp +QORIQ_DEFAULT_BSP ?= "nxp" + +MACHINEOVERRIDES =. "use-${QORIQ_DEFAULT_BSP}-bsp:" + # Sub-architecture support MACHINE_SOCARCH_SUFFIX ?= "" -MACHINE_SOCARCH_SUFFIX_qoriq = "-qoriq" +MACHINE_SOCARCH_SUFFIX:qoriq = "-qoriq" MACHINE_ARCH_FILTER = "virtual/kernel" -MACHINE_SOCARCH_FILTER_append_qoriq = " cryptodev-qoriq-linux cryptodev-qoriq-module cryptodev-qoriq-test openssl-qoriq" INHERIT += "fsl-dynamic-packagearch" diff --git a/conf/machine/include/utilities.inc b/conf/machine/include/utilities.inc index 164d77f4..34ce7abc 100644 --- a/conf/machine/include/utilities.inc +++ b/conf/machine/include/utilities.inc @@ -6,6 +6,11 @@ def make_dtb_boot_files(d): # Use only the basename for dtb files: alldtbs = d.getVar('KERNEL_DEVICETREE') + + # DTBs may be built out of kernel with devicetree.bbclass + if not alldtbs: + return '' + def transform(dtb): if not (dtb.endswith('dtb') or dtb.endswith('dtbo')): # eg: whatever/bcm2708-rpi-b.dtb has: @@ -15,3 +20,9 @@ def make_dtb_boot_files(d): return os.path.basename(dtb) return ' '.join([transform(dtb) for dtb in alldtbs.split() if dtb]) + +def get_spl_binary(d): + imx_default_bootloader = d.get('IMX_DEFAULT_BOOTLOADER') + spl_binary = d.getVar("SPL_BINARY:pn-%s" % imx_default_bootloader) + + return spl_binary or "" |