package/freescale-imx: add i.MX91 and i.MX93 SoC support
This commit adds i.MX91 and i.MX93 support to Buildroot. https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-9-processors:IMX9-PROCESSORS There is no i.MX95 software provided by NXP at the moment that's why i.MX95 is left behind. Adapt package firmware-imx for the LPPDR4 firmware binaries. The i.MX91 and i.MX93 only support LPDDR4 and LPDDR4x, but using different binaries than i.MX8. For simplicity, use a completely separate code path for i.MX91 and i.MX93, using the symbol BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9. There is only one type of firmware supported, so there's no need for a choice or for selecting the version (at least for now). Reviewed-by: Gary Bisson <bisson.gary@gmail.com> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com> [Arnout: - Remove BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX91A1 option. - Re-wrap help text. - Introduce BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9 instead of reusing BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW. - Create completely separate instance of FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW for BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9. - Drop the training binaries choice for IMX9. - Drop the firmware version option for IMX9. - Keep options for IMEM and DMEM padding. ] Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
This commit is contained in:
parent
8740387457
commit
c1cdd48e13
package/freescale-imx
@ -61,6 +61,30 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
|
||||
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8DXL
|
||||
bool "imx8dxl"
|
||||
|
||||
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX91
|
||||
bool "imx91"
|
||||
|
||||
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX93
|
||||
bool "imx93"
|
||||
|
||||
endchoice
|
||||
|
||||
choice
|
||||
prompt "i.MX Silicon Revision"
|
||||
default BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX93A1
|
||||
depends on BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX93
|
||||
help
|
||||
Some packages related to the selected i.MX platform need to
|
||||
know the silicon revision of the platform they will run on.
|
||||
|
||||
Note - mismatches may result in a failure to boot!
|
||||
|
||||
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX93A0
|
||||
bool "imx93a0"
|
||||
|
||||
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX93A1
|
||||
bool "imx93a1"
|
||||
|
||||
endchoice
|
||||
|
||||
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
|
||||
@ -80,6 +104,8 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
|
||||
default "IMX8MM" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
|
||||
default "IMX8MN" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
|
||||
default "IMX8MP" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
|
||||
default "IMX91" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX91
|
||||
default "IMX93" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX93
|
||||
|
||||
config BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
|
||||
bool
|
||||
|
@ -56,6 +56,11 @@ config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9
|
||||
bool
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX91
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX93
|
||||
|
||||
if BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
|
||||
|
||||
choice
|
||||
@ -93,6 +98,10 @@ config BR2_PACKAGE_FIRMWARE_IMX_DDR_VERSION
|
||||
Use a specific version of the imx ddr binaries. Leaving this
|
||||
field empty will select the default version.
|
||||
|
||||
endif # BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
|
||||
|
||||
if BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW || BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_IMEM_LEN
|
||||
hex "(LP)DDR IMEM padding length"
|
||||
default 0x8000
|
||||
@ -105,6 +114,6 @@ config BR2_PACKAGE_FIRMWARE_IMX_DMEM_LEN
|
||||
help
|
||||
The DMEM firmware will be padded to this length
|
||||
|
||||
endif # BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
|
||||
endif # BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW || BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9
|
||||
|
||||
endif # BR2_PACKAGE_FIRMWARE_IMX
|
||||
|
@ -45,6 +45,33 @@ ifneq ($(FIRMWARE_IMX_DDR_VERSION),)
|
||||
FIRMWARE_IMX_DDR_VERSION_SUFFIX = _$(FIRMWARE_IMX_DDR_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW_IMX9),y)
|
||||
FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
|
||||
|
||||
define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW
|
||||
# Create padded versions of lpddr4_{d,i}mem_{1,2}d_* and generate lpddr4_fw.bin.
|
||||
# lpddr4_fw.bin is needed when generating imx9-boot-sd.bin
|
||||
# which is done in post-image script.
|
||||
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
|
||||
lpddr4_imem_1d_v202201,
|
||||
lpddr4_dmem_1d_v202201,
|
||||
lpddr4_1d_fw)
|
||||
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
|
||||
lpddr4_imem_2d_v202201,
|
||||
lpddr4_dmem_2d_v202201,
|
||||
lpddr4_2d_fw)
|
||||
cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_1d_fw.bin \
|
||||
$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_2d_fw.bin > \
|
||||
$(BINARIES_DIR)/lpddr4_fw.bin
|
||||
ln -sf $(BINARIES_DIR)/lpddr4_fw.bin $(BINARIES_DIR)/ddr_fw.bin
|
||||
|
||||
# U-Boot supports creation of the combined flash.bin image. To make
|
||||
# sure that U-Boot can access all available files copy them to
|
||||
# the binary dir.
|
||||
cp $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4*.bin $(BINARIES_DIR)/
|
||||
endef
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),y)
|
||||
FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user