From c96b2aa2e6ec0b1ab90ef26b249762944c5dd065 Mon Sep 17 00:00:00 2001 From: Tom Hochstein Date: Tue, 15 Dec 2020 15:36:32 -0600 Subject: [PATCH] imx8mm-*-evk: Split 8M Mini EVK for LPDDR4 and DDR4 variants The 8M Mini Evaluation Kit has two variants, one for LPDDR4 and one for DDR4, with two corresponding sets of image components. The current machine configuration places both sets into a single image and boots for LPDDR4. The user must manually update the image to make it work for the DDR4 EVK variant. Simplify the DDR4 case by providing a dedicated machine configuration. Signed-off-by: Tom Hochstein --- conf/machine/imx8mm-ddr4-evk.conf | 24 +++++++++ conf/machine/imx8mm-lpddr4-evk.conf | 34 ++++++++++++ conf/machine/imx8mmevk.conf | 83 ----------------------------- conf/machine/include/imx8mm-evk.inc | 46 ++++++++++++++++ 4 files changed, 104 insertions(+), 83 deletions(-) create mode 100644 conf/machine/imx8mm-ddr4-evk.conf create mode 100644 conf/machine/imx8mm-lpddr4-evk.conf delete mode 100644 conf/machine/imx8mmevk.conf create mode 100644 conf/machine/include/imx8mm-evk.inc diff --git a/conf/machine/imx8mm-ddr4-evk.conf b/conf/machine/imx8mm-ddr4-evk.conf new file mode 100644 index 00000000..4e9d3923 --- /dev/null +++ b/conf/machine/imx8mm-ddr4-evk.conf @@ -0,0 +1,24 @@ +#@TYPE: Machine +#@NAME: NXP i.MX 8M Mini EVK with DDR4 +#@SOC: i.MX8MM +#@DESCRIPTION: Machine configuration for NXP i.MX 8M Mini Evaluation Kit with DDR4 +#@MAINTAINER: Jun Zhu + +require include/imx8mm-evk.inc + +KERNEL_DEVICETREE_BASENAME = "${MACHINE}" +KERNEL_DEVICETREE_append_use-nxp-bsp = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}-revb-rm67191.dtb \ +" + +UBOOT_CONFIG_BASENAME = "imx8mm_ddr4_evk" +UBOOT_CONFIG[nand] = "${UBOOT_CONFIG_BASENAME}_nand_defconfig,ubifs" + +DDR_FIRMWARE_NAME = " \ + ddr4_imem_1d.bin \ + ddr4_dmem_1d.bin \ + ddr4_imem_2d.bin \ + ddr4_dmem_2d.bin \ +" + +IMXBOOT_TARGETS_BASENAME = "flash_ddr4_evk" diff --git a/conf/machine/imx8mm-lpddr4-evk.conf b/conf/machine/imx8mm-lpddr4-evk.conf new file mode 100644 index 00000000..3f712893 --- /dev/null +++ b/conf/machine/imx8mm-lpddr4-evk.conf @@ -0,0 +1,34 @@ +#@TYPE: Machine +#@NAME: NXP i.MX 8M Mini EVK with LPDDR4 +#@SOC: i.MX8MM +#@DESCRIPTION: Machine configuration for NXP i.MX 8M Mini Evaluation Kit with LPDDR4 +#@MAINTAINER: Jun Zhu + +require include/imx8mm-evk.inc + +# The device tree name is implicit for LPDDR4, so can't use MACHINE here +KERNEL_DEVICETREE_BASENAME = "imx8mm-evk" +KERNEL_DEVICETREE_append_use-nxp-bsp = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-revE.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-swpdm.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-ak4497.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-ak5558.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-audio-tdm.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-inmate.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-root.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-usd-wifi.dtb \ +" + + +UBOOT_CONFIG_BASENAME = "imx8mm_evk" +UBOOT_CONFIG[fspi] = "${UBOOT_CONFIG_BASENAME}_fspi_defconfig" + +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 \ +" + +IMXBOOT_TARGETS_BASENAME = "flash_evk" diff --git a/conf/machine/imx8mmevk.conf b/conf/machine/imx8mmevk.conf deleted file mode 100644 index 82a9b3db..00000000 --- a/conf/machine/imx8mmevk.conf +++ /dev/null @@ -1,83 +0,0 @@ -#@TYPE: Machine -#@NAME: NXP i.MX8MM LPDDR4 Evaluation Kit and i.MX8MM DDR4 Evaluation Kit -#@SOC: i.MX8MM -#@DESCRIPTION: Machine configuration for NXP i.MX8MMini LPDDR4 EVK and i.MX8MMini DDR4 EVK -#@MAINTAINER: Jun Zhu - -MACHINEOVERRIDES =. "mx8:mx8m:mx8mm:" - -require conf/machine/include/imx-base.inc -require conf/machine/include/tune-cortexa53.inc - -MACHINE_FEATURES += "pci wifi bluetooth optee bcm43455 bcm4356" - -# NXP BSP can consume BCM4359 and 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_append_use-nxp-bsp = " bcm4359 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_append_use-nxp-bsp = " \ - freescale/imx8mm-ddr4-evk.dtb \ - freescale/imx8mm-ddr4-evk-pcie-ep.dtb \ - freescale/imx8mm-ddr4-evk-revb.dtb \ - freescale/imx8mm-ddr4-evk-revb-rm67191.dtb \ - freescale/imx8mm-ddr4-evk-rm67191.dtb \ - freescale/imx8mm-evk-8mic-revE.dtb \ - freescale/imx8mm-evk-8mic-swpdm.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-pcie-ep.dtb \ - freescale/imx8mm-evk-revb.dtb \ - freescale/imx8mm-evk-rm67191.dtb \ - freescale/imx8mm-evk-root.dtb \ - freescale/imx8mm-evk-rpmsg.dtb \ - freescale/imx8mm-evk-usd-wifi.dtb \ -" - - -UBOOT_CONFIG ??= "sd" -UBOOT_CONFIG[sd] = "imx8mm_evk_config,sdcard" -UBOOT_CONFIG[fspi] = "imx8mm_evk_fspi_defconfig" -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 \ -" - -# Set u-boot DTB -UBOOT_DTB_NAME = "imx8mm-evk.dtb" - -# Set ATF platform name -ATF_PLATFORM = "imx8mm" - -# Set imx-mkimage boot target -IMXBOOT_TARGETS = "${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_evk_flexspi', 'flash_evk', d)}" -IMX_BOOT_SOC_TARGET = "iMX8MM" - -# Set Serial console -SERIAL_CONSOLES = "115200;ttymxc1" - -LOADADDR = "" -UBOOT_SUFFIX = "bin" -UBOOT_MAKE_TARGET = "" -IMX_BOOT_SEEK = "33" - -OPTEE_BIN_EXT = "8mm" - -# Add additional firmware -MACHINE_FIRMWARE_append = " linux-firmware-ath10k" diff --git a/conf/machine/include/imx8mm-evk.inc b/conf/machine/include/imx8mm-evk.inc new file mode 100644 index 00000000..72255567 --- /dev/null +++ b/conf/machine/include/imx8mm-evk.inc @@ -0,0 +1,46 @@ +MACHINEOVERRIDES =. "mx8:mx8m:mx8mm:" + +require conf/machine/include/imx-base.inc +require conf/machine/include/tune-cortexa53.inc + +MACHINE_FEATURES += "pci wifi bluetooth optee bcm43455 bcm4356" + +# NXP BSP can consume BCM4359 and 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_append_use-nxp-bsp = " bcm4359 qca9377" + +KERNEL_DEVICETREE = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ +" +KERNEL_DEVICETREE_append_use-nxp-bsp = " \ + freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-revb.dtb \ + freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191.dtb \ +" +UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb" + +UBOOT_CONFIG ??= "sd" +UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig,sdcard" +UBOOT_CONFIG[mfgtool] = "${UBOOT_CONFIG_BASENAME}_defconfig" + +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" + +LOADADDR = "" +UBOOT_SUFFIX = "bin" +UBOOT_MAKE_TARGET = "" +IMX_BOOT_SEEK = "33" + +OPTEE_BIN_EXT = "8mm" + +# Add additional firmware +MACHINE_FIRMWARE_append = " linux-firmware-ath10k" -- 2.40.1