initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
@@ -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))