initial buildroot for linux 5.15
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
config BR2_PACKAGE_FIRMWARE_IMX
|
||||
bool "firmware-imx"
|
||||
depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
|
||||
help
|
||||
Firmware blobs for the Freescale i.MX SoCs.
|
||||
|
||||
It contains blobs for SDMA, VPU, HDMI, EDPC, and DDR
|
||||
training.
|
||||
|
||||
This library is provided by Freescale as-is and doesn't have
|
||||
an upstream.
|
||||
|
||||
if BR2_PACKAGE_FIRMWARE_IMX
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_SDMA_FW_NAME
|
||||
string
|
||||
default "imx25" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX25_3STACK
|
||||
default "imx51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
|
||||
default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
|
||||
default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
|
||||
default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
|
||||
default "imx6q" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
|
||||
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
|
||||
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
|
||||
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
|
||||
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
|
||||
default "imx7d" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME
|
||||
string
|
||||
default "imx27" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX27ADS
|
||||
default "imx51" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51
|
||||
default "imx53" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53
|
||||
default "imx6" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
|
||||
default "imx8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8
|
||||
default "imx8" if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW
|
||||
bool
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_EPDC_FW
|
||||
bool
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6S
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
|
||||
bool
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN
|
||||
default y if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP
|
||||
|
||||
if BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
|
||||
|
||||
choice
|
||||
bool "DDR training binaries"
|
||||
default BR2_PACKAGE_FIRMWARE_IMX_LPDDR4
|
||||
help
|
||||
Choose the DDR training binaries to be used depending on the
|
||||
kind of memory that is available on the target board (DDR4,
|
||||
LPDDR4, etc...).
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_LPDDR4
|
||||
bool "lpddr4"
|
||||
help
|
||||
Use LPDDR4 binaries (i.e.: lpddr4_pmu_train_*.bin)
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_DDR4
|
||||
bool "DDR4"
|
||||
help
|
||||
Use DDR4 binaries (i.e.: ddr4_*_201810.bin).
|
||||
|
||||
endchoice # DDR training FW
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_IMEM_LEN
|
||||
hex "(LP)DDR IMEM padding length"
|
||||
default 0x8000
|
||||
help
|
||||
The IMEM firmware will be padded to this length
|
||||
|
||||
config BR2_PACKAGE_FIRMWARE_IMX_DMEM_LEN
|
||||
hex "(LP)DDR DMEM padding length"
|
||||
default 0x4000
|
||||
help
|
||||
The DMEM firmware will be padded to this length
|
||||
|
||||
endif # BR2_PACKAGE_FIRMWARE_IMX_NEEDS_DDR_FW
|
||||
|
||||
endif # BR2_PACKAGE_FIRMWARE_IMX
|
||||
@@ -0,0 +1,4 @@
|
||||
# Locally calculated
|
||||
sha256 6b6747bf36ecc53e385234afdce01f69c5775adf0d6685c885281ca6e4e322ef firmware-imx-8.12.bin
|
||||
sha256 ea58636bf34f589048fcd46e38497c47229fde8498df086ff5fb52f9ef8e15ee COPYING
|
||||
sha256 50099e283cfd307f84f159aeb1a6f462351320273dbcdb80d7f2c9db0494b71c EULA
|
||||
@@ -0,0 +1,148 @@
|
||||
################################################################################
|
||||
#
|
||||
# firmware-imx
|
||||
#
|
||||
################################################################################
|
||||
|
||||
FIRMWARE_IMX_VERSION = 8.12
|
||||
FIRMWARE_IMX_SITE = $(FREESCALE_IMX_SITE)
|
||||
FIRMWARE_IMX_SOURCE = firmware-imx-$(FIRMWARE_IMX_VERSION).bin
|
||||
|
||||
FIRMWARE_IMX_LICENSE = NXP Semiconductor Software License Agreement
|
||||
FIRMWARE_IMX_LICENSE_FILES = EULA COPYING
|
||||
FIRMWARE_IMX_REDISTRIBUTE = NO
|
||||
|
||||
FIRMWARE_IMX_INSTALL_IMAGES = YES
|
||||
|
||||
define FIRMWARE_IMX_EXTRACT_CMDS
|
||||
$(call FREESCALE_IMX_EXTRACT_HELPER,$(FIRMWARE_IMX_DL_DIR)/$(FIRMWARE_IMX_SOURCE))
|
||||
endef
|
||||
|
||||
#
|
||||
# DDR firmware
|
||||
#
|
||||
|
||||
define FIRMWARE_IMX_PREPARE_DDR_FW
|
||||
$(TARGET_OBJCOPY) -I binary -O binary \
|
||||
--pad-to $(BR2_PACKAGE_FIRMWARE_IMX_IMEM_LEN) --gap-fill=0x0 \
|
||||
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(1)).bin \
|
||||
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(1))_pad.bin
|
||||
$(TARGET_OBJCOPY) -I binary -O binary \
|
||||
--pad-to $(BR2_PACKAGE_FIRMWARE_IMX_DMEM_LEN) --gap-fill=0x0 \
|
||||
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(2)).bin \
|
||||
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(2))_pad.bin
|
||||
cat $(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(1))_pad.bin \
|
||||
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(2))_pad.bin > \
|
||||
$(FIRMWARE_IMX_DDRFW_DIR)/$(strip $(3)).bin
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_LPDDR4),y)
|
||||
FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
|
||||
|
||||
define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW
|
||||
# Create padded versions of lpddr4_pmu_* and generate lpddr4_pmu_train_fw.bin.
|
||||
# lpddr4_pmu_train_fw.bin is needed when generating imx8-boot-sd.bin
|
||||
# which is done in post-image script.
|
||||
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
|
||||
lpddr4_pmu_train_1d_imem,lpddr4_pmu_train_1d_dmem,lpddr4_pmu_train_1d_fw)
|
||||
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
|
||||
lpddr4_pmu_train_2d_imem,lpddr4_pmu_train_2d_dmem,lpddr4_pmu_train_2d_fw)
|
||||
cat $(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_1d_fw.bin \
|
||||
$(FIRMWARE_IMX_DDRFW_DIR)/lpddr4_pmu_train_2d_fw.bin > \
|
||||
$(BINARIES_DIR)/lpddr4_pmu_train_fw.bin
|
||||
ln -sf $(BINARIES_DIR)/lpddr4_pmu_train_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_DDR4),y)
|
||||
FIRMWARE_IMX_DDRFW_DIR = $(@D)/firmware/ddr/synopsys
|
||||
|
||||
define FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW
|
||||
# Create padded versions of ddr4_* and generate ddr4_fw.bin.
|
||||
# ddr4_fw.bin is needed when generating imx8-boot-sd.bin
|
||||
# which is done in post-image script.
|
||||
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
|
||||
ddr4_imem_1d_201810,ddr4_dmem_1d_201810,ddr4_1d_201810_fw)
|
||||
$(call FIRMWARE_IMX_PREPARE_DDR_FW, \
|
||||
ddr4_imem_2d_201810,ddr4_dmem_2d_201810,ddr4_2d_201810_fw)
|
||||
cat $(FIRMWARE_IMX_DDRFW_DIR)/ddr4_1d_201810_fw.bin \
|
||||
$(FIRMWARE_IMX_DDRFW_DIR)/ddr4_2d_201810_fw.bin > \
|
||||
$(BINARIES_DIR)/ddr4_201810_fw.bin
|
||||
ln -sf $(BINARIES_DIR)/ddr4_201810_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)/ddr4*.bin $(BINARIES_DIR)/
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# HDMI firmware
|
||||
#
|
||||
|
||||
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_HDMI_FW),y)
|
||||
define FIRMWARE_IMX_INSTALL_IMAGE_HDMI_FW
|
||||
cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin \
|
||||
$(BINARIES_DIR)/signed_hdmi_imx8m.bin
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# EPDC firmware
|
||||
#
|
||||
|
||||
ifeq ($(BR2_PACKAGE_FIRMWARE_IMX_NEEDS_EPDC_FW),y)
|
||||
define FIRMWARE_IMX_INSTALL_TARGET_EPDC_FW
|
||||
mkdir -p $(TARGET_DIR)/lib/firmware/imx
|
||||
cp -r $(@D)/firmware/epdc $(TARGET_DIR)/lib/firmware/imx
|
||||
mv $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted \
|
||||
$(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# SDMA firmware
|
||||
#
|
||||
|
||||
FIRMWARE_IMX_SDMA_FW_NAME = $(call qstrip,$(BR2_PACKAGE_FIRMWARE_IMX_SDMA_FW_NAME))
|
||||
ifneq ($(FIRMWARE_IMX_SDMA_FW_NAME),)
|
||||
define FIRMWARE_IMX_INSTALL_TARGET_SDMA_FW
|
||||
mkdir -p $(TARGET_DIR)/lib/firmware/imx/sdma
|
||||
cp -r $(@D)/firmware/sdma/sdma-$(FIRMWARE_IMX_SDMA_FW_NAME)*.bin \
|
||||
$(TARGET_DIR)/lib/firmware/imx/sdma/
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# VPU firmware
|
||||
#
|
||||
|
||||
FIRMWARE_IMX_VPU_FW_NAME = $(call qstrip,$(BR2_PACKAGE_FIRMWARE_IMX_VPU_FW_NAME))
|
||||
ifneq ($(FIRMWARE_IMX_VPU_FW_NAME),)
|
||||
define FIRMWARE_IMX_INSTALL_TARGET_VPU_FW
|
||||
mkdir -p $(TARGET_DIR)/lib/firmware/vpu
|
||||
for i in $$(find $(@D)/firmware/vpu/vpu_fw_$(FIRMWARE_IMX_VPU_FW_NAME)*.bin); do \
|
||||
cp $$i $(TARGET_DIR)/lib/firmware/vpu/ ; \
|
||||
ln -sf vpu/$$(basename $$i) $(TARGET_DIR)/lib/firmware/$$(basename $$i) ; \
|
||||
done
|
||||
endef
|
||||
endif
|
||||
|
||||
define FIRMWARE_IMX_INSTALL_IMAGES_CMDS
|
||||
$(FIRMWARE_IMX_INSTALL_IMAGE_DDR_FW)
|
||||
$(FIRMWARE_IMX_INSTALL_IMAGE_HDMI_FW)
|
||||
endef
|
||||
|
||||
define FIRMWARE_IMX_INSTALL_TARGET_CMDS
|
||||
$(FIRMWARE_IMX_INSTALL_TARGET_EPDC_FW)
|
||||
$(FIRMWARE_IMX_INSTALL_TARGET_SDMA_FW)
|
||||
$(FIRMWARE_IMX_INSTALL_TARGET_VPU_FW)
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
Reference in New Issue
Block a user