Complete Yocto mirror with license table for TQMa6UL (2038-compliance)

- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
Siggi (OpenClaw Agent)
2026-03-01 20:58:18 +00:00
commit 16accb6b24
15086 changed files with 1292356 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
# Prepend path to override files from upstream recipe
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
PACKAGE_ARCH:imx-generic-bsp = "${MACHINE_ARCH}"
PACKAGE_ARCH:qoriq-generic-bsp = "${MACHINE_ARCH}"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,459 @@
defaults.pcm.rate_converter "linear"
pcm.dmix_48000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 48000
}
}
pcm.dmix_44100{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 44100
}
}
pcm.dmix_32000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 32000
}
}
pcm.dmix_24000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 24000
}
}
pcm.dmix_22050{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 22050
}
}
pcm.dmix_16000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 16000
}
}
pcm.dmix_12000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 12000
}
}
pcm.dmix_11025{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 11025
}
}
pcm.dmix_8000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 8000
}
}
pcm.!dsnoop_48000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 48000
}
}
pcm.!dsnoop_44100{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 44100
}
}
pcm.!dsnoop_32000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 32000
}
}
pcm.!dsnoop_24000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 24000
}
}
pcm.!dsnoop_22050{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 22050
}
}
pcm.!dsnoop_16000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 16000
}
}
pcm.!dsnoop_12000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 12000
}
}
pcm.!dsnoop_11025{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 11025
}
}
pcm.!dsnoop_8000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 8000
}
}
pcm.asymed{
type asym
playback.pcm "dmix_48000"
capture.pcm "dsnoop_48000"
}
pcm.dsp0{
type plug
slave.pcm "asymed"
}
pcm.!default{
type plug
route_policy "average"
slave.pcm "asymed"
}
ctl.!default{
type hw
card 0
}
ctl.mixer0{
type hw
card 0
}
pcm_slave.esai{
pcm "hw:0,0"
channels 8
rate 48000
period_time 40000
}
pcm.esaich1to6{
type dshare
ipc_key 5778293
slave esai
bindings.0 0
bindings.1 4
bindings.2 1
bindings.3 5
bindings.4 2
bindings.5 6
}
pcm.esaich78{
type dshare
ipc_key 5778293
slave esai
bindings.0 3
bindings.1 7
}
pcm_slave.sai5 {
pcm "hw:5,0"
channels 8
}
pcm.sai5_ch1to8 {
type dsnoop
ipc_key 5185558
slave sai5
bindings.0 0
bindings.1 4
bindings.2 1
bindings.3 5
bindings.4 2
bindings.5 6
bindings.6 3
bindings.7 7
}
pcm.sai5_ch1to6 {
type dsnoop
ipc_key 5165558
slave sai5
bindings.0 0
bindings.1 4
bindings.2 1
bindings.3 5
bindings.4 2
bindings.5 6
}
pcm.sai5_ch1to4 {
type dsnoop
ipc_key 5145558
slave sai5
bindings.0 0
bindings.1 4
bindings.2 1
bindings.3 5
}
pcm_slave.sai1{
pcm "hw:4,0"
channels 16
}
pcm.sai1to16{
type dshare
slave sai1
ipc_key 5144458
bindings.0 0
bindings.1 8
bindings.2 1
bindings.3 9
bindings.4 2
bindings.5 10
bindings.6 3
bindings.7 11
bindings.8 4
bindings.9 12
bindings.10 5
bindings.11 13
bindings.12 6
bindings.13 14
bindings.14 7
bindings.15 15
}
pcm.sai1to14{
type dshare
slave sai1
ipc_key 5144458
bindings.0 0
bindings.1 8
bindings.2 1
bindings.3 9
bindings.4 2
bindings.5 10
bindings.6 3
bindings.7 11
bindings.8 4
bindings.9 12
bindings.10 5
bindings.11 13
bindings.12 6
bindings.13 14
}
pcm.sai1to12{
type dshare
slave sai1
ipc_key 5144458
bindings.0 0
bindings.1 8
bindings.2 1
bindings.3 9
bindings.4 2
bindings.5 10
bindings.6 3
bindings.7 11
bindings.8 4
bindings.9 12
bindings.10 5
bindings.11 13
}
pcm.sai1to10{
type dshare
slave sai1
ipc_key 5144458
bindings.0 0
bindings.1 8
bindings.2 1
bindings.3 9
bindings.4 2
bindings.5 10
bindings.6 3
bindings.7 11
bindings.8 4
bindings.9 12
}
pcm.sai1to8{
type dshare
slave sai1
ipc_key 5144458
bindings.0 0
bindings.1 8
bindings.2 1
bindings.3 9
bindings.4 2
bindings.5 10
bindings.6 3
bindings.7 11
}
pcm.sai1to6{
type dshare
slave sai1
ipc_key 5144458
bindings.0 0
bindings.1 8
bindings.2 1
bindings.3 9
bindings.4 2
bindings.5 10
}
pcm.sai1to4{
type dshare
slave sai1
ipc_key 5144458
bindings.0 0
bindings.1 8
bindings.2 1
bindings.3 9
}
pcm.cdnhdmi4ch {
type dshare
slave {
pcm "hw:3,0"
channels 4
}
ipc_key 5144458
bindings.0 0
bindings.1 2
bindings.2 1
bindings.3 3
}
pcm.cdnhdmi8ch {
type dshare
slave {
pcm "hw:3,0"
channels 8
}
ipc_key 5144458
bindings.0 0
bindings.1 4
bindings.2 1
bindings.3 5
bindings.4 2
bindings.5 6
bindings.6 3
bindings.7 7
}

View File

@@ -0,0 +1,271 @@
defaults.pcm.rate_converter "linear"
pcm.dmix_48000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 48000
}
}
pcm.dmix_44100{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 44100
}
}
pcm.dmix_32000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 32000
}
}
pcm.dmix_24000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 24000
}
}
pcm.dmix_22050{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 22050
}
}
pcm.dmix_16000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 16000
}
}
pcm.dmix_12000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 12000
}
}
pcm.dmix_11025{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 11025
}
}
pcm.dmix_8000{
type dmix
ipc_key 5678293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 8000
}
}
pcm.!dsnoop_48000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 48000
}
}
pcm.!dsnoop_44100{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 44100
}
}
pcm.!dsnoop_32000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 32000
}
}
pcm.!dsnoop_24000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 24000
}
}
pcm.!dsnoop_22050{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 22050
}
}
pcm.!dsnoop_16000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 16000
}
}
pcm.!dsnoop_12000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 12000
}
}
pcm.!dsnoop_11025{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 11025
}
}
pcm.!dsnoop_8000{
type dsnoop
ipc_key 5778293
ipc_key_add_uid yes
slave{
pcm "hw:0,0"
period_time 40000
format S16_LE
rate 8000
}
}
pcm.asymed{
type asym
playback.pcm "dmix_48000"
capture.pcm "dsnoop_48000"
}
pcm.dsp0{
type plug
slave.pcm "asymed"
}
pcm.!default{
type plug
route_policy "average"
slave.pcm "asymed"
}
ctl.!default{
type hw
card 0
}
ctl.mixer0{
type hw
card 0
}
pcm_slave.esai{
pcm "hw:0,0"
channels 8
rate 48000
period_time 40000
}
pcm.esaich1to6{
type dshare
ipc_key 5778293
slave esai
bindings.0 0
bindings.1 4
bindings.2 1
bindings.3 5
bindings.4 2
bindings.5 6
}
pcm.esaich78{
type dshare
ipc_key 5778293
slave esai
bindings.0 3
bindings.1 7
}

View File

@@ -0,0 +1 @@
imx-generic-bsp

View File

@@ -0,0 +1 @@
imx-mainline-bsp

View File

@@ -0,0 +1 @@
imx-nxp-bsp

View File

@@ -0,0 +1,12 @@
DESCRIPTION = "ARM Trusted Firmware"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://license.rst;md5=1dd070c98a281d18d9eefd938729b031"
ATF_BRANCH ?= "lf_v2.6"
ATF_SRC ?= "git://github.com/nxp-qoriq/atf.git;protocol=https"
SRC_URI = "${ATF_SRC};branch=${ATF_BRANCH}"
SRCREV = "616a4588f333522d50a55bedd2b9a90a51474a75"
S = "${WORKDIR}/git"

View File

@@ -0,0 +1,15 @@
require qoriq-atf-${PV}.inc
DEPENDS += "openssl"
PV:append = "+${SRCPV}"
EXTRA_OEMAKE = "fiptool V=1 PLAT=lx2162aqds HOSTCC='${CC} ${CPPFLAGS} ${CFLAGS} ${LDFLAGS}'"
do_install () {
install -m 0755 -d ${D}/${bindir}
install -m 0755 ${S}/tools/fiptool/fiptool ${D}/${bindir}/
}
BBCLASSEXTEND = "native"

View File

@@ -0,0 +1,35 @@
From 9ceeb0cadffee1b1476718795d0568f6b244bf44 Mon Sep 17 00:00:00 2001
From: Jun Zhu <junzhu@nxp.com>
Date: Mon, 31 Oct 2022 21:24:15 +0800
Subject: [PATCH] tf-a-tests-no-warn-rwx-segments
Binutils 2.39 now warns when a segment has RXW permissions[1]:
aarch64-poky-linux-musl-ld: tftf.elf has a LOAD segment with RWX permissions
There is a ticket filed upstream[2], so until that is resolved just disable the warning
[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
[2] https://developer.trustedfirmware.org/T996
Upstream-Status: Backport [https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/19401]
Signed-off-by: Jun Zhu <junzhu@nxp.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index dccf0121d..0d082344b 100644
--- a/Makefile
+++ b/Makefile
@@ -445,7 +445,7 @@ TF_LDFLAGS += --gc-sections
# ld.lld doesn't recognize the errata flags,
# therefore don't add those in that case
ifeq ($(findstring ld.lld,$(notdir $(LD))),)
-TF_LDFLAGS += $(TF_LDFLAGS_$(ARCH))
+TF_LDFLAGS += $(TF_LDFLAGS_$(ARCH)) --no-warn-rwx-segments
endif
endif
--
2.25.1

View File

@@ -0,0 +1,189 @@
require qoriq-atf-${PV}.inc
inherit deploy
DEPENDS += "u-boot-mkimage-native u-boot openssl openssl-native rcw qoriq-cst-native bc-native"
do_compile[depends] += "u-boot:do_deploy rcw:do_deploy uefi:do_deploy"
PV:append = "+${SRCPV}"
SRC_URI += "git://github.com/ARMmbed/mbedtls;protocol=https;nobranch=1;destsuffix=git/mbedtls;name=mbedtls \
git://github.com/nxp/ddr-phy-binary;protocol=https;nobranch=1;destsuffix=git/ddr-phy-binary;name=ddr \
file://tf-a-tests-no-warn-rwx-segments.patch \
"
SRCREV_mbedtls = "0795874acdf887290b2571b193cafd3c4041a708"
SRCREV_ddr = "fbc036b88acb6c06ffed02c898cbae9856ec75ba"
SRCREV_FORMAT = "atf"
COMPATIBLE_MACHINE = "(qoriq)"
PACKAGE_ARCH = "${MACHINE_ARCH}"
PLATFORM = "${MACHINE}"
PLATFORM:ls1088ardb-pb = "ls1088ardb"
PLATFORM:lx2160ardb-rev2 = "lx2160ardb"
PLATFORM_ADDITIONAL_TARGET ??= ""
PLATFORM_ADDITIONAL_TARGET:ls1012afrwy = "ls1012afrwy_512mb"
RCW_FOLDER ?= "${MACHINE}"
RCW_FOLDER:ls1088ardb-pb = "ls1088ardb"
RCW_FOLDER:lx2160ardb = "lx2160ardb_rev2"
RCW_FOLDER:lx2160ardb-rev2 = "lx2160ardb_rev2"
RCW_SUFFIX ?= ".bin"
RCW_SUFFIX:ls1012a = "${@bb.utils.contains('DISTRO_FEATURES', 'secure', '_sben.bin', '_default.bin', d)}"
RCW_SUFFIX:ls1043a = "${@bb.utils.contains('DISTRO_FEATURES', 'secure', '_sben.bin', '.bin', d)}"
RCW_SUFFIX:ls1046a = "${@bb.utils.contains('DISTRO_FEATURES', 'secure', '_sben.bin', '.bin', d)}"
UBOOT_BINARY ?= "${@bb.utils.contains('DISTRO_FEATURES', 'secure', '${DEPLOY_DIR_IMAGE}/u-boot.bin-tfa-secure-boot', '${DEPLOY_DIR_IMAGE}/u-boot.bin-tfa', d)}"
SECURE_EXTENTION ?= "${@bb.utils.contains('DISTRO_FEATURES', 'secure', '_sec', '', d)}"
BOOTTYPE ?= "nor nand qspi flexspi_nor sd emmc"
chassistype ?= "ls2088_1088"
chassistype:ls1012a = "ls104x_1012"
chassistype:ls1043a = "ls104x_1012"
chassistype:ls1046a = "ls104x_1012"
FIP_DDR ?= ""
FIP_DDR:lx2160a = "${@bb.utils.contains('DISTRO_FEATURES', 'secure', 'fip_ddr', '', d)}"
FIP_DDR:lx2162a = "${@bb.utils.contains('DISTRO_FEATURES', 'secure', 'fip_ddr', '', d)}"
# requires CROSS_COMPILE set by hand as there is no configure script
export CROSS_COMPILE="${TARGET_PREFIX}"
export ARCH="arm64"
# Let the Makefile handle setting up the CFLAGS and LDFLAGS as it is
# a standalone application
CFLAGS[unexport] = "1"
LDFLAGS[unexport] = "1"
AS[unexport] = "1"
LD[unexport] = "1"
EXTRA_OEMAKE += "HOSTCC='${BUILD_CC} ${BUILD_CPPFLAGS} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}'"
EXTRA_OEMAKE += "\
${@bb.utils.contains('COMBINED_FEATURES', 'optee', 'BL32=${RECIPE_SYSROOT}${nonarch_base_libdir}/firmware/tee_${MACHINE}.bin SPD=opteed', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'secure', 'TRUSTED_BOARD_BOOT=1 CST_DIR=${RECIPE_SYSROOT_NATIVE}/usr/bin/cst', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'arm-cot', 'GENERATE_COT=1 MBEDTLS_DIR=${S}/mbedtls', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'fuse', 'fip_fuse FUSE_PROG=1 FUSE_PROV_FILE=fuse_scr.bin', '', d)} \
"
PACKAGECONFIG ??= " \
${@bb.utils.filter('COMBINED_FEATURES', 'optee', d)} \
"
PACKAGECONFIG[optee] = ",,optee-os-qoriq"
python() {
if bb.utils.contains("DISTRO_FEATURES", "arm-cot", True, False, d):
if not bb.utils.contains("DISTRO_FEATURES", "secure", True, False, d):
bb.fatal("arm-cot needs 'secure' being set in DISTRO_FEATURES")
}
do_configure[noexec] = "1"
do_compile() {
if [ ! -f ${RECIPE_SYSROOT_NATIVE}/usr/bin/cst/srk.pri ]; then
${RECIPE_SYSROOT_NATIVE}/usr/bin/cst/gen_keys 1024
else
cp ${RECIPE_SYSROOT_NATIVE}/usr/bin/cst/srk.pri .
cp ${RECIPE_SYSROOT_NATIVE}/usr/bin/cst/srk.pub .
fi
${RECIPE_SYSROOT_NATIVE}/usr/bin/cst/gen_fusescr \
${RECIPE_SYSROOT_NATIVE}/usr/bin/cst/input_files/gen_fusescr/${chassistype}/input_fuse_file
for d in ${BOOTTYPE}; do
case $d in
nor)
rcwimg="${RCWNOR}${RCW_SUFFIX}"
uefiboot="${UEFI_NORBOOT}"
;;
nand)
rcwimg="${RCWNAND}${RCW_SUFFIX}"
;;
qspi)
rcwimg="${RCWQSPI}${RCW_SUFFIX}"
uefiboot="${UEFI_QSPIBOOT}"
if [ -n "${SECURE_EXTENTION}" ] && [ "${MACHINE}" = ls1046ardb ]; then
rcwimg="RR_FFSSPPPH_1133_5559/rcw_1600_qspiboot_sben.bin"
fi
;;
auto)
rcwimg="${RCWAUTO}${RCW_SUFFIX}"
;;
sd)
rcwimg="${RCWSD}${RCW_SUFFIX}"
;;
emmc)
rcwimg="${RCWEMMC}${RCW_SUFFIX}"
;;
flexspi_nor)
rcwimg="${RCWXSPI}${RCW_SUFFIX}"
uefiboot="${UEFI_XSPIBOOT}"
;;
esac
if [ -f ${DEPLOY_DIR_IMAGE}/rcw/${RCW_FOLDER}/$rcwimg ]; then
make V=1 realclean
if [ -f rot_key.pem ];then
mkdir -p build/${PLATFORM}/release/
cp *.pem build/${PLATFORM}/release/
fi
oe_runmake V=1 all fip pbl ${FIP_DDR} PLAT=${PLATFORM} BOOT_MODE=${d} RCW=${DEPLOY_DIR_IMAGE}/rcw/${RCW_FOLDER}/${rcwimg} BL33=${UBOOT_BINARY}
cp build/${PLATFORM}/release/bl2_${d}${SECURE_EXTENTION}.pbl .
cp build/${PLATFORM}/release/fip.bin fip_uboot${SECURE_EXTENTION}.bin
if [ -e build/${PLATFORM}/release/fuse_fip.bin ]; then
cp build/${PLATFORM}/release/fuse_fip.bin .
fi
if [ -e build/${PLATFORM}/release/ddr_fip_sec.bin ] && [ ! -f ddr_fip_sec.bin ]; then
cp build/${PLATFORM}/release/ddr_fip_sec.bin .
fi
if [ -e build/${PLATFORM}/release/rot_key.pem ] && [ ! -f rot_key.pem ]; then
cp build/${PLATFORM}/release/*.pem .
fi
if [ -n "${PLATFORM_ADDITIONAL_TARGET}" ]; then
make V=1 realclean
oe_runmake V=1 all fip pbl PLAT=${PLATFORM_ADDITIONAL_TARGET} BOOT_MODE=${d} RCW=${DEPLOY_DIR_IMAGE}/rcw/${RCW_FOLDER}/${rcwimg} BL33=${UBOOT_BINARY}
cp build/${PLATFORM_ADDITIONAL_TARGET}/release/bl2_${d}${SECURE_EXTENTION}.pbl bl2_${d}${SECURE_EXTENTION}_${PLATFORM_ADDITIONAL_TARGET}.pbl
cp build/${PLATFORM_ADDITIONAL_TARGET}/release/fip.bin fip_uboot${SECURE_EXTENTION}_${PLATFORM_ADDITIONAL_TARGET}.bin
if [ -e build/${PLATFORM_ADDITIONAL_TARGET}/release/fuse_fip.bin ]; then
cp build/${PLATFORM_ADDITIONAL_TARGET}/release/fuse_fip.bin fuse_fip_${PLATFORM_ADDITIONAL_TARGET}.bin
fi
fi
if [ -z "${SECURE_EXTENTION}" -a -f "${DEPLOY_DIR_IMAGE}/uefi/${PLATFORM}/${uefiboot}" ]; then
make V=1 realclean
oe_runmake V=1 all fip pbl PLAT=${PLATFORM} BOOT_MODE=${d} RCW=${DEPLOY_DIR_IMAGE}/rcw/${RCW_FOLDER}/${rcwimg} BL33=${DEPLOY_DIR_IMAGE}/uefi/${PLATFORM}/${uefiboot}
cp build/${PLATFORM}/release/fip.bin fip_uefi.bin
fi
fi
rcwimg=""
uefiboot=""
done
}
do_install() {
install -d ${D}/boot/atf/
cp srk.pri ${D}/boot/atf/
cp srk.pub ${D}/boot/atf/
cp *.pbl ${D}/boot/atf/
if [ ! -e fuse_fip.bin ]; then
rm -f fuse_scr.bin
fi
cp *.bin ${D}/boot/atf/
chown -R root:root ${D}
}
do_deploy() {
install -d ${DEPLOYDIR}/atf/
cp ${D}/boot/atf/* ${DEPLOYDIR}/atf/
}
addtask deploy after do_install
FILES:${PN} += "/boot"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,28 @@
Respect LDFLAGS from environment
This fixes cross build using OE
Upstream-Status: Pending
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Index: git/Makefile
===================================================================
--- git.orig/Makefile
+++ git/Makefile
@@ -3,14 +3,14 @@
INSTALL=install
PREFIX=/usr
-CFLAGS=-Wall
+override CFLAGS+=-Wall
all: boot_format
boot_format.o: boot_format.c boot_format.h
boot_format: boot_format.o
- $(CC) $< -o $@
+ $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
install: boot_format
$(INSTALL) -d $(DESTDIR)$(PREFIX)/bin

View File

@@ -0,0 +1,20 @@
DESCRIPTION = "Boot format utility for booting from eSDHC/eSPI"
LICENSE = "GPL-2.0-only"
PR = "r6"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/nxp-qoriq-yocto-sdk/boot-format;protocol=https;nobranch=1 \
file://flags.patch"
SRCREV = "4eb81a6797ef4e58bf7d9b2d58afb37a21c1f550"
S = "${WORKDIR}/git"
EXTRA_OEMAKE = 'CC="${CC}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"'
do_install(){
oe_runmake DESTDIR=${D} PREFIX=${prefix} install
}
PACKAGES =+ "${PN}-config"
FILES:${PN}-config += "${datadir}/*"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,44 @@
SUMMARY = "DDR firmware repository"
LICENSE = "NXP-Binary-EULA"
LIC_FILES_CHKSUM = "file://NXP-Binary-EULA.txt;md5=89cc852481956e861228286ac7430d74"
inherit deploy
SRC_URI = "git://github.com/nxp/ddr-phy-binary.git;nobranch=1;protocol=https"
SRCREV = "fbc036b88acb6c06ffed02c898cbae9856ec75ba"
S = "${WORKDIR}/git"
REGLEX = "lx2160a"
DEPENDS += "qoriq-atf-tools-native"
do_compile() {
cd ${S}/${REGLEX}
fiptool create --ddr-immem-udimm-1d ddr4_pmu_train_imem.bin \
--ddr-immem-udimm-2d ddr4_2d_pmu_train_imem.bin \
--ddr-dmmem-udimm-1d ddr4_pmu_train_dmem.bin \
--ddr-dmmem-udimm-2d ddr4_2d_pmu_train_dmem.bin \
--ddr-immem-rdimm-1d ddr4_rdimm_pmu_train_imem.bin \
--ddr-immem-rdimm-2d ddr4_rdimm2d_pmu_train_imem.bin \
--ddr-dmmem-rdimm-1d ddr4_rdimm_pmu_train_dmem.bin \
--ddr-dmmem-rdimm-2d ddr4_rdimm2d_pmu_train_dmem.bin \
fip_ddr_all.bin
}
do_install () {
install -d ${D}/boot
install -m 755 ${S}/${REGLEX}/*.bin ${D}/boot
}
do_deploy () {
install -d ${DEPLOYDIR}/ddr-phy
install -m 755 ${S}/${REGLEX}/*.bin ${DEPLOYDIR}/ddr-phy
}
addtask deploy before do_populate_sysroot after do_install
PACKAGES += "${PN}-image"
FILES:${PN}-image += "/boot"
COMPATIBLE_MACHINE = "(lx2160a|lx2162a)"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,28 @@
SUMMARY = "DP firmware"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=d3c315c6eaa43e07d8c130dc3a04a011"
inherit deploy fsl-eula-unpack
SRC_URI = "${FSL_MIRROR}/firmware-imx-8.16.bin;fsl-eula=true"
SRC_URI[sha256sum] = "65f829a9e2597bffc58a680aaefa638122144a083633d1ae09b3aec1d9f8ab84"
S = "${WORKDIR}/firmware-imx-8.16"
do_install () {
install -d ${D}/boot
install -m 0644 ${S}/firmware/hdmi/cadence/dp_ls1028a.bin ${D}/boot/ls1028a-dp-fw.bin
}
do_deploy () {
install -d ${DEPLOYDIR}/dp
install -m 0644 ${S}/firmware/hdmi/cadence/dp_ls1028a.bin ${DEPLOYDIR}/dp/ls1028a-dp-fw.bin
}
addtask deploy before do_build after do_install
PACKAGES += "${PN}-image"
FILES:${PN}-image += "/boot"
COMPATIBLE_MACHINE = "(qoriq-arm64)"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,36 @@
# Copyright 2021-2024 NXP
SUMMARY = "NXP i.MX ELE firmware"
DESCRIPTION = "EdgeLock Secure Enclave firmware for i.MX series SoCs"
SECTION = "base"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=a93b654673e1bc8398ed1f30e0813359"
inherit fsl-eula-unpack use-imx-security-controller-firmware deploy
SRC_URI = "${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true"
IMX_SRCREV_ABBREV = "d30b14a"
SRC_URI[sha256sum] = "293a0e7957ca2a24c6c2edbc87b237141a4b7ef19b35257edce65a026d7cbc0a"
S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}"
do_compile[noexec] = "1"
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/imx/ele
for fw in ${SECO_FIRMWARE_NAME} ${SECOEXT_FIRMWARE_NAME}; do
install -m 0644 ${S}/$fw ${D}${nonarch_base_libdir}/firmware/imx/ele
done
}
do_deploy () {
# Deploy the related firmware to be packaged by imx-boot
install -m 0644 ${S}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR}
}
addtask deploy after do_install before do_build
FILES:${PN} = "${nonarch_base_libdir}/firmware"
RREPLACES:${PN} = "firmware-sentinel"
RPROVIDES:${PN} = "firmware-sentinel"
COMPATIBLE_MACHINE = "(mx8ulp-generic-bsp|mx9-generic-bsp)"

View File

@@ -0,0 +1,16 @@
# Copyright (C) 2012-2016 Freescale Semiconductor
# Copyright 2017-2024 NXP
# Copyright (C) 2018 O.S. Systems Software LTDA.
SECTION = "base"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=c0fb372b5d7f12181de23ef480f225f3"
# Note: This .inc file is used from differently named recipes, so the package
# name must be hard-coded, i.e., ${BPN} cannot be used.
SRC_URI = "${FSL_MIRROR}/firmware-imx-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true"
IMX_SRCREV_ABBREV = "5af0ceb"
SRC_URI[sha256sum] = "61f925e606ab020b1a36f3f7f7e459c6847f5b9dbc79421f9ef86e8fc124eb2f"
S = "${WORKDIR}/firmware-imx-${PV}-${IMX_SRCREV_ABBREV}"
inherit fsl-eula-unpack

View File

@@ -0,0 +1,171 @@
# Copyright (C) 2012-2016 Freescale Semiconductor
# Copyright 2017-2021,2024 NXP
# Copyright (C) 2018 O.S. Systems Software LTDA.
SUMMARY = "Freescale i.MX firmware"
DESCRIPTION = "Freescale i.MX firmware such as for the VPU"
require ${BP}.inc
PE = "1"
inherit allarch
IMX_USE_LINUX_FIRMWARE_SDMA ?= "1"
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/imx
# SDMA Firmware section
install -d ${D}${nonarch_base_libdir}/firmware/imx/sdma
install -m 0644 ${S}/firmware/sdma/* ${D}${nonarch_base_libdir}/firmware/imx/sdma
# Define IMX_USE_LINUX_FIRMWARE_SDMA = "0" in layer.conf, machine.conf, local.conf
# or in .bbappend to use sdma-imx6q/7d.bin from here and not linux-firmware
if [ ${IMX_USE_LINUX_FIRMWARE_SDMA} -gt 0 ]
then
rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin
rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin
fi
# EASRC Firmware section
install -d ${D}${nonarch_base_libdir}/firmware/imx/easrc
install -m 0644 ${S}/firmware/easrc/* ${D}${nonarch_base_libdir}/firmware/imx/easrc/
# XCVR Firmware section
install -d ${D}${nonarch_base_libdir}/firmware/imx/xcvr
install -m 0644 ${S}/firmware/xcvr/* ${D}${nonarch_base_libdir}/firmware/imx/xcvr/
# XUVI Firmware section
install -d ${D}${nonarch_base_libdir}/firmware/imx/xuvi
install -m 0644 ${S}/firmware/xuvi/* ${D}${nonarch_base_libdir}/firmware/imx/xuvi/
# EPDC Firmware section
# NOTE:
# epdc_ED060XH2C1.fw file has .nonrestricted suffix in the source archive, hence it should
# be installed with a different name
install -d ${D}${nonarch_base_libdir}/firmware/imx/epdc
install -m 0644 ${S}/firmware/epdc/*.fw ${D}${nonarch_base_libdir}/firmware/imx/epdc/
install -m 0644 ${S}/firmware/epdc/epdc_ED060XH2C1.fw.nonrestricted ${D}${nonarch_base_libdir}/firmware/imx/epdc/epdc_ED060XH2C1.fw
# HDMI Firmware section
# NOTE:
# Only install pre-defined list of firmware files, since the source archive contains
# also HDMI binary files for imx8m derivatives, which are taken care of by another recipe
install -m 0644 ${S}/firmware/hdmi/cadence/hdmitxfw.bin ${D}${nonarch_base_libdir}/firmware
install -m 0644 ${S}/firmware/hdmi/cadence/hdmirxfw.bin ${D}${nonarch_base_libdir}/firmware
install -m 0644 ${S}/firmware/hdmi/cadence/dpfw.bin ${D}${nonarch_base_libdir}/firmware
# VPU Firmware section
# NOTE:
# Do the same thing as above for HDMI - only install a pre-defined list of firmware files,
# as some of other files are provided by packages from other recipes.
install -d ${D}${nonarch_base_libdir}/firmware/vpu
install -m 0644 ${S}/firmware/vpu/vpu_fw_imx*.bin ${D}${nonarch_base_libdir}/firmware/vpu
# Update i.MX8 vpu firmware path to align with kernel6.5+
install -d ${D}${nonarch_base_libdir}/firmware/amphion/vpu/
mv ${D}${nonarch_base_libdir}/firmware/vpu/vpu_fw_imx8* ${D}${nonarch_base_libdir}/firmware/amphion/vpu/
# Install i.MX 95 VPU firmware
install -m 0644 ${S}/firmware/vpu/wave633c_codec_fw.bin ${D}${nonarch_base_libdir}/firmware
}
#
# This prepend is here to produce separate packages containing firmware,
# which could be included separately based on the machine definition.
#
# It operates similar to the FILES mechanism by travesing through
# ${D} + folder supplied as a first parameter, matches the regexp supplied
# as second one, and for every file match - it creates a separate package,
# which contains only files that matches the pattern.
#
python populate_packages:prepend() {
# CODA driver tries to locate VPU firmwares directly in ${nonarch_base_libdir}/firmware, to
# avoid fallback loading which is usually 40-60 seconds later after system boots up, let's
# create symbolic links in ${nonarch_base_libdir}/firmware for VPU firmwares.
def coda_vpu_links(file, pkg, pattern, format, basename):
# Only CODA VPU firmwares need this procedure
if 'imx8' in basename:
return
dir = os.path.dirname(file)
dir = os.path.abspath(os.path.join(dir, os.pardir))
cwd = os.getcwd()
os.chdir(dir)
name = os.path.basename(file)
os.symlink(os.path.join("vpu", name), name)
oldfiles = d.getVar('FILES:' + pkg)
newfile = os.path.join(d.getVar('nonarch_base_libdir'), "firmware", name)
d.setVar('FILES:' + pkg, oldfiles + " " + newfile)
os.chdir(cwd)
easrcdir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/easrc', d)
do_split_packages(d, easrcdir, r'^easrc-([^_]*).*\.bin',
output_pattern='firmware-imx-easrc-%s',
description='Freescale IMX EASRC Firmware [%s]',
extra_depends='',
prepend=True)
vpudir = bb.data.expand('${nonarch_base_libdir}/firmware/vpu', d)
do_split_packages(d, vpudir, r'^vpu_fw_([^_]*).*\.bin',
output_pattern='firmware-imx-vpu-%s',
description='Freescale IMX VPU Firmware [%s]',
hook=coda_vpu_links,
extra_depends='',
prepend=True)
sdmadir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/sdma', d)
do_split_packages(d, sdmadir, r'^sdma-([^-]*).*\.bin',
output_pattern='firmware-imx-sdma-%s',
description='Freescale IMX SDMA Firmware [%s]',
extra_depends='',
prepend=True)
xcvrdir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/xcvr', d)
do_split_packages(d, xcvrdir, r'^xcvr-([^_]*).*\.bin',
output_pattern='firmware-imx-xcvr-%s',
description='Freescale IMX XCVR Firmware [%s]',
extra_depends='',
prepend=True)
xuvidir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/xuvi', d)
do_split_packages(d, xuvidir, r'^vpu_fw_([^_]*).*\.bin',
output_pattern='firmware-imx-xuvi-%s',
description='Freescale IMX XUVI Firmware [%s]',
extra_depends='',
prepend=True)
}
# Declare a contract that we would provide packages produced by prepend above
PACKAGES_DYNAMIC = "${PN}-vpu-* ${PN}-sdma-* ${PN}-easrc-* ${PN}-xcvr-* ${PN}-xuvi-*"
#
# Deal with the rest of Firmware packages here
#
# Provide EPDC and HDMI Firmware in common packages as they tend to be special in
# terms of the content.
#
# NOTE: PACKAGES are defined explicitly here in order to remove the auto-generated
# complimentary packages (-dev and -dbg).
# This is done in order to be able to keep the main package empty and fail when
# somebody tries to install it in the image.
# If -dev package is present in that setup, and dev-pkgs is enabled in
# IMAGE_FEATURES - this leads to a failure during do_rootfs() while all -dev
# packages would be installed, and -dev package would fail because the main one
# is empty.
# Therefore, we opt-out from producing -dev package here, since also for firmware
# files it makes no sense.
PACKAGES = "${PN} ${PN}-epdc ${PN}-hdmi ${PN}-vpu-amphion ${PN}-vpu-wave"
FILES:${PN}-epdc = "${nonarch_base_libdir}/firmware/imx/epdc/"
FILES:${PN}-hdmi = " \
${nonarch_base_libdir}/firmware/hdmitxfw.bin \
${nonarch_base_libdir}/firmware/hdmirxfw.bin \
${nonarch_base_libdir}/firmware/dpfw.bin \
"
FILES:${PN}-vpu-amphion = "${nonarch_base_libdir}/firmware/amphion/vpu/*"
FILES:${PN}-vpu-wave = "${nonarch_base_libdir}/firmware/wave633c_codec_fw.bin"
COMPATIBLE_MACHINE = "(imx-generic-bsp)"

View File

@@ -0,0 +1,175 @@
# Copyright 2020-2024 NXP
SUMMARY = "Wi-Fi firmware redistributed by NXP"
DESCRIPTION = "Additional Wi-Fi firmware redistributed by NXP. Some \
is available in linux-firmware, but what is here is the latest and \
should be preferred."
SECTION = "kernel"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ca53281cc0caa7e320d4945a896fb837"
SRC_URI = "git://github.com/nxp-imx/imx-firmware.git;protocol=https;branch=${SRCBRANCH}"
SRCBRANCH = "lf-6.6.52_2.2.0"
SRCREV = "2978f3c88d6bcc5695a7b45f1936f18d31eebfa8"
S = "${WORKDIR}/git"
inherit allarch
CLEANBROKEN = "1"
ALLOW_EMPTY:${PN} = "1"
do_compile() {
:
}
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/nxp
install -d ${D}${nonarch_base_libdir}/firmware/brcm/
# Install bcm4359-pcie
for f in cyw-wifi-bt/*_CYW*/brcmfmac4359-pcie*; do
install -D -m 0644 $f ${D}${nonarch_base_libdir}/firmware/brcm/$(basename $f)
done
for f in cyw-wifi-bt/*_CYW*/BCM4349B1*.hcd; do
install -D -m 0644 $f ${D}${sysconfdir}/firmware/$(basename $f)
done
for f in nxp/FwImage_IW612_SD/*; do
install -D -m 0644 $f ${D}${nonarch_base_libdir}/firmware/nxp/IW612_SD_RFTest/$(basename $f)
done
oe_runmake install INSTALLDIR=${D}${nonarch_base_libdir}/firmware/nxp
# Upstream SDIO8997 and IW416 driver firmwares are located on mrvl folder
install -d ${D}${nonarch_base_libdir}/firmware/mrvl
ln -frs ${D}${nonarch_base_libdir}/firmware/nxp/sdiouart8997_combo_v4.bin ${D}${nonarch_base_libdir}/firmware/mrvl/sdiouart8997_combo_v4.bin
ln -frs ${D}${nonarch_base_libdir}/firmware/nxp/sdiouartiw416_combo_v0.bin ${D}${nonarch_base_libdir}/firmware/mrvl/sdiouartiw416_combo_v0.bin
}
PACKAGES =+ " \
${PN}-bcm4359-pcie \
${PN}-nxp-common \
${PN}-nxp8801-sdio \
${PN}-nxp8987-sdio \
${PN}-nxp8997-common \
${PN}-nxp8997-pcie \
${PN}-nxp8997-sdio \
${PN}-nxp9098-pcie \
${PN}-nxp9098-common \
${PN}-nxp9098-sdio \
${PN}-nxpiw416-sdio \
${PN}-nxpiw610-sdio \
${PN}-nxpiw612-sdio \
"
FILES:${PN}-bcm4359-pcie = " \
${nonarch_base_libdir}/firmware/brcm/brcmfmac4359-pcie.* \
${sysconfdir}/firmware/BCM4349B1_*.hcd \
"
FILES:${PN}-nxp-common = " \
${nonarch_base_libdir}/firmware/nxp/wifi_mod_para.conf \
${nonarch_base_libdir}/firmware/nxp/helper_uart_3000000.bin \
"
FILES:${PN}-nxp8801-sdio = " \
${nonarch_base_libdir}/firmware/nxp/*8801* \
"
RDEPENDS:${PN}-nxp8801-sdio += "${PN}-nxp-common"
FILES:${PN}-nxp8987-sdio = " \
${nonarch_base_libdir}/firmware/nxp/*8987* \
"
RDEPENDS:${PN}-nxp8987-sdio += "${PN}-nxp-common"
RPROVIDES:${PN}-nxp8987-sdio = "linux-firmware-nxp8987-sdio"
RREPLACES:${PN}-nxp8987-sdio = "linux-firmware-nxp8987-sdio"
RCONFLICTS:${PN}-nxp8987-sdio = "linux-firmware-nxp8987-sdio"
FILES:${PN}-nxp8997-common = " \
${nonarch_base_libdir}/firmware/nxp/ed_mac_ctrl_V3_8997.conf \
${nonarch_base_libdir}/firmware/nxp/txpwrlimit_cfg_8997.conf \
${nonarch_base_libdir}/firmware/nxp/uart8997_bt_v4.bin \
"
RDEPENDS:${PN}-nxp8997-common += "${PN}-nxp-common"
RPROVIDES:${PN}-nxp8997-common = "linux-firmware-nxp8997-common"
RREPLACES:${PN}-nxp8997-common = "linux-firmware-nxp8997-common"
RCONFLICTS:${PN}-nxp8997-common = "linux-firmware-nxp8997-common"
FILES:${PN}-nxp8997-pcie = " \
${nonarch_base_libdir}/firmware/nxp/pci*8997* \
"
RDEPENDS:${PN}-nxp8997-pcie += "${PN}-nxp8997-common"
RPROVIDES:${PN}-nxp8997-pcie = "linux-firmware-nxp8997-pcie"
RREPLACES:${PN}-nxp8997-pcie = "linux-firmware-nxp8997-pcie"
RCONFLICTS:${PN}-nxp8997-pcie = "linux-firmware-nxp8997-pcie"
FILES:${PN}-nxp8997-sdio = " \
${nonarch_base_libdir}/firmware/mrvl/sdiouart8997_combo_v4.bin \
${nonarch_base_libdir}/firmware/nxp/sdio*8997* \
"
RDEPENDS:${PN}-nxp8997-sdio += "${PN}-nxp8997-common"
RPROVIDES:${PN}-nxp8997-sdio = "linux-firmware-nxp8997-sdio"
RREPLACES:${PN}-nxp8997-sdio = "linux-firmware-nxp8997-sdio"
RCONFLICTS:${PN}-nxp8997-sdio = "linux-firmware-nxp8997-sdio"
FILES:${PN}-nxp9098-common = " \
${nonarch_base_libdir}/firmware/nxp/ed_mac_ctrl_V3_909x.conf \
${nonarch_base_libdir}/firmware/nxp/txpwrlimit_cfg_9098.conf \
${nonarch_base_libdir}/firmware/nxp/uart9098_bt_v1.bin \
"
RDEPENDS:${PN}-nxp9098-common += "${PN}-nxp-common"
RPROVIDES:${PN}-nxp9098-common = "linux-firmware-nxp9098-common"
RREPLACES:${PN}-nxp9098-common = "linux-firmware-nxp9098-common"
RCONFLICTS:${PN}-nxp9098-common = "linux-firmware-nxp9098-common"
FILES:${PN}-nxp9098-pcie = " \
${nonarch_base_libdir}/firmware/nxp/pcie*9098* \
"
RDEPENDS:${PN}-nxp9098-pcie += "${PN}-nxp9098-common"
RPROVIDES:${PN}-nxp9098-pcie = "linux-firmware-nxp9098-pcie"
RREPLACES:${PN}-nxp9098-pcie = "linux-firmware-nxp9098-pcie"
RCONFLICTS:${PN}-nxp9098-pcie = "linux-firmware-nxp9098-pcie"
FILES:${PN}-nxp9098-sdio = " \
${nonarch_base_libdir}/firmware/nxp/sdio*9098* \
"
RDEPENDS:${PN}-nxp9098-sdio += "${PN}-nxp9098-common"
RPROVIDES:${PN}-nxp9098-sdio = "linux-firmware-nxp9098-sdio"
RREPLACES:${PN}-nxp9098-sdio = "linux-firmware-nxp9098-sdio"
RCONFLICTS:${PN}-nxp9098-sdio = "linux-firmware-nxp9098-sdio"
FILES:${PN}-nxpiw416-sdio = " \
${nonarch_base_libdir}/firmware/mrvl/sdiouartiw416_combo_v0.bin \
${nonarch_base_libdir}/firmware/nxp/*iw416* \
"
RDEPENDS:${PN}-nxpiw416-sdio += "${PN}-nxp-common"
RPROVIDES:${PN}-nxpiw416-sdio = "linux-firmware-nxpiw416-sdio"
RREPLACES:${PN}-nxpiw416-sdio = "linux-firmware-nxpiw416-sdio"
RCONFLICTS:${PN}-nxpiw416-sdio = "linux-firmware-nxpiw416-sdio"
FILES:${PN}-nxpiw610-sdio += " \
${nonarch_base_libdir}/firmware/nxp/sd_iw610.bin.se \
${nonarch_base_libdir}/firmware/nxp/sduart_iw610.bin.se \
${nonarch_base_libdir}/firmware/nxp/uart_iw610_bt.bin.se \
${nonarch_base_libdir}/firmware/nxp/uartspi_iw610.bin.se \
"
RDEPENDS:${PN}-nxpiw610-sdio += "${PN}-nxp-common"
RPROVIDES:${PN}-nxpiw610-sdio = "linux-firmware-nxpiw610-sdio"
RREPLACES:${PN}-nxpiw610-sdio = "linux-firmware-nxpiw610-sdio"
RCONFLICTS:${PN}-nxpiw610-sdio = "linux-firmware-nxpiw610-sdio"
FILES:${PN}-nxpiw612-sdio = " \
${nonarch_base_libdir}/firmware/nxp/sduart_nw61x_v1.bin.se \
${nonarch_base_libdir}/firmware/nxp/sd_w61x_v1.bin.se \
${nonarch_base_libdir}/firmware/nxp/uartspi_n61x_v1.bin.se \
${nonarch_base_libdir}/firmware/nxp/IW612_SD_RFTest/ \
${nonarch_base_libdir}/firmware/nxp/uartuart_n61x_v1.bin.se \
"
RDEPENDS:${PN}-nxpiw612-sdio += "${PN}-nxp-common"
RPROVIDES:${PN}-nxpiw612-sdio = "linux-firmware-nxpiw612-sdio"
RREPLACES:${PN}-nxpiw612-sdio = "linux-firmware-nxpiw612-sdio"
RCONFLICTS:${PN}-nxpiw612-sdio = "linux-firmware-nxpiw612-sdio"

View File

@@ -0,0 +1,23 @@
# Copyright (C) 2020-2022 NXP
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Sound Open Firmware"
HOMEPAGE = "https://www.sofproject.org"
SECTION = "base"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENCE;md5=0f00d99239d922ffd13cabef83b33444"
SRC_URI = "${FSL_MIRROR}/sof-imx-${PV}.tar.gz"
SRC_URI[sha256sum] = "eb86c90aec92b3b376e7afca6aa5db4767b5d8868553595907ba37665329f16b"
S = "${WORKDIR}/sof-imx-${PV}"
inherit allarch
do_install() {
# Install sof and sof-tplg folder
install -d ${D}${nonarch_base_libdir}/firmware/imx/
cp -r sof* ${D}${nonarch_base_libdir}/firmware/imx/
}
FILES:${PN} = "${nonarch_base_libdir}/firmware/imx"

View File

@@ -0,0 +1,61 @@
# Copyright (C) 2018-2024 NXP
SUMMARY = "Freescale i.MX Firmware files used for boot"
require firmware-imx-${PV}.inc
inherit deploy nopackages
do_install[noexec] = "1"
DEPLOY_FOR = ""
DEPLOY_FOR:mx8-generic-bsp = "mx8"
DEPLOY_FOR:mx8m-generic-bsp = "mx8m"
DEPLOY_FOR:mx9-generic-bsp = "mx9"
deploy_for_mx8() {
# Cadence HDMI
install -m 0644 ${S}/firmware/hdmi/cadence/hdmitxfw.bin ${DEPLOYDIR}
install -m 0644 ${S}/firmware/hdmi/cadence/hdmirxfw.bin ${DEPLOYDIR}
install -m 0644 ${S}/firmware/hdmi/cadence/dpfw.bin ${DEPLOYDIR}
}
deploy_for_mx8m() {
# Synopsys DDR
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
install -m 0644 ${S}/firmware/ddr/synopsys/${ddr_firmware} ${DEPLOYDIR}
done
# Cadence DP and HDMI
install -m 0644 ${S}/firmware/hdmi/cadence/signed_dp_imx8m.bin ${DEPLOYDIR}
install -m 0644 ${S}/firmware/hdmi/cadence/signed_hdmi_imx8m.bin ${DEPLOYDIR}
}
deploy_for_mx9() {
# Synopsys DDR
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
install -m 0644 ${S}/firmware/ddr/synopsys/${ddr_firmware} ${DEPLOYDIR}
done
}
python () {
# Manually add the required functions as dependencies otherwise they won't be included in the
# final run script.
deploy_for = d.getVar('DEPLOY_FOR', True).split()
for soc in deploy_for:
d.appendVarFlag('do_deploy', 'vardeps', ' deploy_for_%s' % soc)
}
do_deploy () {
for soc in ${DEPLOY_FOR}; do
bbnote "Running deploy for $soc"
deploy_for_$soc
done
}
addtask deploy after do_install before do_build
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
COMPATIBLE_MACHINE = "(mx8-generic-bsp|mx9-generic-bsp)"
COMPATIBLE_MACHINE:mx8x-generic-bsp = "(^$)"

View File

@@ -0,0 +1,30 @@
# Copyright 2021-2022 NXP
DESCRIPTION = "NXP i.MX uPower firmware"
LICENSE = "Proprietary"
SECTION = "BSP"
LIC_FILES_CHKSUM = "file://COPYING;md5=db4762b09b6bda63da103963e6e081de"
SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
S = "${WORKDIR}/${PN}-${PV}"
inherit fsl-eula-unpack pkgconfig deploy
SRC_URI[sha256sum] = "1df3a03d69feb38a450ee63abc7713d78cf6339988476e4c9f95ebbf63790f66"
do_configure[noexec] = "1"
do_compile[noexec] = "1"
do_install[noexec] = "1"
BOOT_TOOLS = "imx-boot-tools"
do_deploy () {
# Deploy the related firmware to be package by imx-boot
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${S}/${UPOWER_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}/upower.bin
}
addtask deploy after do_install before do_build
COMPATIBLE_MACHINE = "(mx8ulp-nxp-bsp)"

View File

@@ -0,0 +1,11 @@
# Display options
HAVE_TOUCHSCREEN=0
HAVE_KEYBOARD=1
#DISPLAY_CAN_ROTATE=0
#DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=1024
#DISPLAY_HEIGHT_PIXELS=720
#DISPLAY_BPP=16
#DISPLAY_DPI=150
#DISPLAY_SUBPIXEL_ORDER=vrgb

View File

@@ -0,0 +1,13 @@
# Display options
HAVE_TOUCHSCREEN=1
HAVE_KEYBOARD=0
TSLIB_TSDEVICE="/dev/input/touchscreen0"
#DISPLAY_CAN_ROTATE=0
#DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=1024
#DISPLAY_HEIGHT_PIXELS=720
#DISPLAY_BPP=16
#DISPLAY_DPI=150
#DISPLAY_SUBPIXEL_ORDER=vrgb

View File

@@ -0,0 +1,11 @@
# Display options
HAVE_TOUCHSCREEN=0
HAVE_KEYBOARD=1
#DISPLAY_CAN_ROTATE=0
#DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=1024
#DISPLAY_HEIGHT_PIXELS=720
#DISPLAY_BPP=16
#DISPLAY_DPI=150
#DISPLAY_SUBPIXEL_ORDER=vrgb

View File

@@ -0,0 +1,11 @@
# Display options
#HAVE_TOUCHSCREEN=1
HAVE_KEYBOARD=0
#DISPLAY_CAN_ROTATE=0
#DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=1024
#DISPLAY_HEIGHT_PIXELS=720
#DISPLAY_BPP=16
#DISPLAY_DPI=150
#DISPLAY_SUBPIXEL_ORDER=vrgb

View File

@@ -0,0 +1,11 @@
# Display options
HAVE_TOUCHSCREEN=1
HAVE_KEYBOARD=0
#DISPLAY_CAN_ROTATE=0
#DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=1024
#DISPLAY_HEIGHT_PIXELS=720
#DISPLAY_BPP=16
#DISPLAY_DPI=150
#DISPLAY_SUBPIXEL_ORDER=vrgb

View File

@@ -0,0 +1,11 @@
# Display options
HAVE_TOUCHSCREEN=1
HAVE_KEYBOARD=0
#DISPLAY_CAN_ROTATE=0
#DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=1024
#DISPLAY_HEIGHT_PIXELS=720
#DISPLAY_BPP=16
#DISPLAY_DPI=150
#DISPLAY_SUBPIXEL_ORDER=vrgb

View File

@@ -0,0 +1,11 @@
# Display options
HAVE_TOUCHSCREEN=1
HAVE_KEYBOARD=0
#DISPLAY_CAN_ROTATE=0
#DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=1024
#DISPLAY_HEIGHT_PIXELS=720
#DISPLAY_BPP=16
#DISPLAY_DPI=150
#DISPLAY_SUBPIXEL_ORDER=vrgb

View File

@@ -0,0 +1,11 @@
# Display options
HAVE_TOUCHSCREEN=0
HAVE_KEYBOARD=0
#DISPLAY_CAN_ROTATE=0
#DISPLAY_ORIENTATION=0
#DISPLAY_WIDTH_PIXELS=1024
#DISPLAY_HEIGHT_PIXELS=720
#DISPLAY_BPP=16
#DISPLAY_DPI=150
#DISPLAY_SUBPIXEL_ORDER=vrgb

View File

@@ -0,0 +1,2 @@
# Append path for i.MX custom matchconfig
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

View File

@@ -0,0 +1,20 @@
SUMMARY = "Freescale TLU(Table Lookup Unit) test package"
DESCRIPTION = "This package includes the TLU(Table Lookup Unit) test scripts \
and configuration files."
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543"
SRC_URI = "git://github.com/nxp-qoriq-yocto-sdk/fsl-tlu;protocol=https;nobranch=1"
SRCREV = "8837cce3c86b30c0931c319e9e1a8ca622ae5354"
S = "${WORKDIR}/git"
do_install() {
install -d ${D}${sbindir}/fsl_tlu
find . -type f -exec cp {} ${D}${sbindir}/fsl_tlu/ \;
}
COMPATIBLE_MACHINE = "(e500mc)"
PACKAGE_ARCH = "${MACHINE_SOCARCH}"

View File

@@ -0,0 +1,82 @@
# Copyright (C) 2017-2024 NXP
DESCRIPTION = "i.MX ARM Trusted Firmware"
SECTION = "BSP"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
PV .= "+git${SRCPV}"
SRC_URI = "git://github.com/nxp-imx/imx-atf.git;protocol=https;branch=${SRCBRANCH}"
SRCBRANCH = "lf_v2.10_6.6.52_2.2.x"
SRCREV = "7e374c5f57328949a2b141a567175b6a2939e964"
S = "${WORKDIR}/git"
inherit deploy
ATF_PLATFORM ??= "INVALID"
# FIXME: We should return INVALID here but currently only i.MX8M has support to override the UART
# base address in source code.
ATF_BOOT_UART_BASE ?= ""
EXTRA_OEMAKE += " \
CROSS_COMPILE=${TARGET_PREFIX} \
PLAT=${ATF_PLATFORM} \
"
# Let the Makefile handle setting up the CFLAGS and LDFLAGS as it is a standalone application
CFLAGS[unexport] = "1"
LDFLAGS[unexport] = "1"
AS[unexport] = "1"
LD[unexport] = "1"
# Baremetal, just need a compiler
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS = "virtual/${HOST_PREFIX}gcc"
# Bring in clang compiler if using clang as default
DEPENDS:append:toolchain-clang = " clang-cross-${TARGET_ARCH}"
BUILD_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'true', 'false', d)}"
# CC and LD introduce arguments which conflict with those otherwise provided by
# this recipe. The heads of these variables excluding those arguments
# are therefore used instead.
def remove_options_tail (in_string):
from itertools import takewhile
return ' '.join(takewhile(lambda x: not x.startswith('-'), in_string.split(' ')))
# LD can have linker suffix in its name e.g. aarch64-yoe-linux-ld.lld so we need to
# drop .lld as well along with options from LD
EXTRA_OEMAKE += 'LD="${HOST_PREFIX}ld.bfd"'
EXTRA_OEMAKE += 'CC="${@remove_options_tail(d.getVar('CC'))}"'
# Set the UART to use during the boot.
EXTRA_OEMAKE += 'IMX_BOOT_UART_BASE=${ATF_BOOT_UART_BASE}'
do_configure[noexec] = "1"
do_compile() {
# Clear LDFLAGS to avoid the option -Wl recognize issue
oe_runmake bl31
if ${BUILD_OPTEE}; then
oe_runmake clean BUILD_BASE=build-optee
oe_runmake BUILD_BASE=build-optee SPD=opteed bl31
fi
}
do_install[noexec] = "1"
addtask deploy after do_compile
do_deploy() {
install -Dm 0644 ${S}/build/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/bl31-${ATF_PLATFORM}.bin
if ${BUILD_OPTEE}; then
install -m 0644 ${S}/build-optee/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/bl31-${ATF_PLATFORM}.bin-optee
fi
}
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_MACHINE = "(mx8-generic-bsp|mx9-generic-bsp)"

View File

@@ -0,0 +1,34 @@
From c183a648958ab4454247cfd88d01da7730a53d19 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 11 May 2017 00:59:07 -0700
Subject: [PATCH] Add missing includes as pointed out by musl
These headers are indrectly included when building with
glibc, this is exposed when compiling with musl systems
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/mtd.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/mtd.h b/src/mtd.h
index 6cb0ca2..0eaea48 100644
--- a/src/mtd.h
+++ b/src/mtd.h
@@ -25,9 +25,12 @@
#ifndef MTD_H
#define MTD_H
+#define _GNU_SOURCE
+#include <fcntl.h>
#include <mtd/mtd-user.h>
#include <endian.h>
#include <stdint.h>
+#include <stddef.h>
#include "BootControlBlocks.h"
#include "rom_nand_hamming_code_ecc.h"
--
2.12.2

View File

@@ -0,0 +1,19 @@
# Copyright (C) 2013-2016 Freescale Semiconductor
# Copyright (C) 2017-2019,2024 NXP
# Copyright 2018 (C) O.S. Systems Software LTDA.
SUMMARY = "Nand boot write source"
SECTION = "base"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
PV = "5.5+git${SRCPV}"
SRC_URI = "git://github.com/NXPmicro/imx-kobs.git;protocol=https;branch=master \
file://0001-Add-missing-includes-as-pointed-out-by-musl.patch \
"
SRCREV = "ff13a99a22aa73cca0e09a33c2ebb6a94ad698da"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
COMPATIBLE_MACHINE = "(imx-generic-bsp)"

View File

@@ -0,0 +1,50 @@
# Copyright (C) 2012-2016 Freescale Semiconductor
# Copyright (C) 2012-2018 O.S. Systems Software LTDA.
# Copyright 2017 NXP
DESCRIPTION = "Platform specific libraries for imx platform"
LICENSE = "LGPL-2.1-only"
SECTION = "multimedia"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fbc093901857fcd118f065f900982c24"
PE = "1"
PV = "5.9+${SRCPV}"
SRC_URI = "git://github.com/nxp-imx/imx-lib.git;protocol=https;branch=${SRCBRANCH}"
SRCBRANCH = "lf-6.6.36_2.1.0"
SRCREV = "8f124c3914d82019849fb697baeb730e4cb1b547"
S = "${WORKDIR}/git"
inherit use-imx-headers
PLATFORM:mx6q-nxp-bsp = "IMX6Q"
PLATFORM:mx6dl-nxp-bsp = "IMX6Q"
PLATFORM:mx6sl-nxp-bsp = "IMX6S"
PLATFORM:mx6sll-nxp-bsp = "IMX6UL"
PLATFORM:mx6sx-nxp-bsp = "IMX6S"
PLATFORM:mx6ul-nxp-bsp = "IMX6UL"
PLATFORM:mx6ull-nxp-bsp = "IMX6UL"
PLATFORM:mx7d-nxp-bsp = "IMX7"
PLATFORM:mx7ulp-nxp-bsp = "IMX7"
PLATFORM:mx8ulp-nxp-bsp = "IMX8ULP"
PLATFORM:mx9-nxp-bsp = "IMX8ULP"
PARALLEL_MAKE="-j 1"
EXTRA_OEMAKE = ""
do_compile () {
INCLUDE_DIR="-I${STAGING_INCDIR_IMX}"
oe_runmake CROSS_COMPILE="${HOST_PREFIX}" PLATFORM="${PLATFORM}" INCLUDE="${INCLUDE_DIR}" all
}
do_install () {
oe_runmake PLATFORM="${PLATFORM}" DEST_DIR="${D}" install
# Remove .go file for Android
find ${D}/ -name *.go -exec rm {} \;
}
COMPATIBLE_MACHINE = "(mx6-nxp-bsp|mx7-nxp-bsp|mx8ulp-nxp-bsp|mx9-nxp-bsp)"

View File

@@ -0,0 +1,81 @@
From 3e0f78a4efeac4ea0651ac763099d780447a18b4 Mon Sep 17 00:00:00 2001
From: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
Date: Wed, 19 Jul 2023 18:34:32 +0300
Subject: [PATCH] iMX8M: soc.mak: use native mkimage from sysroot
mkimage tool is provided as a part of sysroot from Yocto build. Current
implementation on the imx-mkimge on the other hand copies it locally in
order to invoke it from within the build folder.
Since recent updates, mkimage requires openssl.so to be installed, which
when local copy is used causes the tool not to operate and fails the
build.
Use it from the build sysroot, and do not pull the local version of it.
Reinjected the original patch from Andrey Zhizhikin <andrey.z@gmail.com>
Upstream-Status: Inappropriate [OE-specific]
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
---
iMX8M/soc.mak | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
Index: git/iMX8M/soc.mak
===================================================================
--- git.orig/iMX8M/soc.mak
+++ git/iMX8M/soc.mak
@@ -160,7 +160,7 @@ u-boot.itb: $(dtb) $(supp_dtbs)
./$(PAD_IMAGE) bl31.bin
./$(PAD_IMAGE) u-boot-nodtb.bin $(dtb) $(supp_dtbs)
BL32=$(TEE) DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ../$(SOC_DIR)/mkimage_fit_atf.sh $(dtb) $(supp_dtbs) > u-boot.its
- ./mkimage_uboot -E -p $(FIT_EXTERNAL_POSITION) -f u-boot.its u-boot.itb
+ mkimage -E -p $(FIT_EXTERNAL_POSITION) -f u-boot.its u-boot.itb
@rm -f u-boot.its $(dtb)
dtb_ddr3l = valddr3l.dtb
@@ -172,7 +172,7 @@ u-boot-ddr3l.itb: $(dtb_ddr3l) $(supp_dt
./$(PAD_IMAGE) bl31.bin
./$(PAD_IMAGE) u-boot-nodtb.bin $(dtb_ddr3l) $(supp_dtbs)
DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ../$(SOC_DIR)/mkimage_fit_atf.sh $(dtb_ddr3l) $(supp_dtbs) > u-boot-ddr3l.its
- ./mkimage_uboot -E -p $(FIT_EXTERNAL_POSITION) -f u-boot-ddr3l.its u-boot-ddr3l.itb
+ mkimage -E -p $(FIT_EXTERNAL_POSITION) -f u-boot-ddr3l.its u-boot-ddr3l.itb
@rm -f u-boot.its $(dtb_ddr3l)
dtb_ddr3l_evk = evkddr3l.dtb
@@ -184,7 +184,7 @@ u-boot-ddr3l-evk.itb: $(dtb_ddr3l_evk) $
./$(PAD_IMAGE) bl31.bin
./$(PAD_IMAGE) u-boot-nodtb.bin $(dtb_ddr3l_evk) $(supp_dtbs)
DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ../$(SOC_DIR)/mkimage_fit_atf.sh $(dtb_ddr3l_evk) $(supp_dtbs) > u-boot-ddr3l-evk.its
- ./mkimage_uboot -E -p $(FIT_EXTERNAL_POSITION) -f u-boot-ddr3l-evk.its u-boot-ddr3l-evk.itb
+ mkimage -E -p $(FIT_EXTERNAL_POSITION) -f u-boot-ddr3l-evk.its u-boot-ddr3l-evk.itb
@rm -f u-boot.its $(dtb_ddr3l_evk)
dtb_ddr4 = valddr4.dtb
@@ -196,7 +196,7 @@ u-boot-ddr4.itb: $(dtb_ddr4) $(supp_dtbs
./$(PAD_IMAGE) bl31.bin
./$(PAD_IMAGE) u-boot-nodtb.bin $(dtb_ddr4) $(supp_dtbs)
DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ../$(SOC_DIR)/mkimage_fit_atf.sh $(dtb_ddr4) $(supp_dtbs) > u-boot-ddr4.its
- ./mkimage_uboot -E -p $(FIT_EXTERNAL_POSITION) -f u-boot-ddr4.its u-boot-ddr4.itb
+ mkimage -E -p $(FIT_EXTERNAL_POSITION) -f u-boot-ddr4.its u-boot-ddr4.itb
@rm -f u-boot.its $(dtb_ddr4)
dtb_ddr4_evk = evkddr4.dtb
@@ -208,7 +208,7 @@ u-boot-ddr4-evk.itb: $(dtb_ddr4_evk) $(s
./$(PAD_IMAGE) bl31.bin
./$(PAD_IMAGE) u-boot-nodtb.bin $(dtb_ddr4_evk) $(supp_dtbs)
DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ../$(SOC_DIR)/mkimage_fit_atf.sh $(dtb_ddr4_evk) $(supp_dtbs) > u-boot-ddr4-evk.its
- ./mkimage_uboot -E -p $(FIT_EXTERNAL_POSITION) -f u-boot-ddr4-evk.its u-boot-ddr4-evk.itb
+ mkimage -E -p $(FIT_EXTERNAL_POSITION) -f u-boot-ddr4-evk.its u-boot-ddr4-evk.itb
@rm -f u-boot.its $(dtb_ddr4_evk)
ifeq ($(HDMI),yes)
@@ -358,7 +358,6 @@ nightly :
@$(WGET) -q $(SERVER)/$(DIR)/$(FW_DIR)/fsl-$(PLAT)-evk.dtb -O fsl-$(PLAT)-evk.dtb
@$(WGET) -q $(SERVER)/$(DIR)/$(FW_DIR)/signed_hdmi_imx8m.bin -O signed_hdmi_imx8m.bin
@$(WGET) -q $(SERVER)/$(DIR)/$(FW_DIR)/signed_dp_imx8m.bin -O signed_dp_imx8m.bin
- @$(WGET) -q $(SERVER)/$(DIR)/$(FW_DIR)/mkimage_uboot -O mkimage_uboot
archive :
git ls-files --others --exclude-standard -z | xargs -0 tar rvf $(ARCHIVE_PATH)/$(ARCHIVE_NAME)

View File

@@ -0,0 +1,422 @@
# Copyright (C) 2017-2024 NXP
require imx-mkimage_git.inc
DESCRIPTION = "Generate Boot Loader for i.MX 8 device"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
SECTION = "BSP"
inherit use-imx-security-controller-firmware uboot-config
DEPENDS += " \
u-boot \
${IMX_EXTRA_FIRMWARE} \
imx-atf \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os', '', d)} \
"
# xxd is a dependency of fspi_packer.sh
DEPENDS += "xxd-native"
DEPENDS:append:mx8m-generic-bsp = " u-boot-mkimage-native dtc-native"
DEPENDS:append:mx93-generic-bsp = " u-boot-mkimage-native dtc-native"
inherit deploy uuu_bootloader_tag
UUU_BOOTLOADER = "imx-boot"
# Add CFLAGS with native INCDIR & LIBDIR for imx-mkimage build
CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR_NATIVE} -L ${STAGING_LIBDIR_NATIVE}"
# This package aggregates output deployed by other packages,
# so set the appropriate dependencies
do_compile[depends] += " \
virtual/bootloader:do_deploy \
${@' '.join('%s:do_deploy' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \
imx-atf:do_deploy \
${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os:do_deploy', '', d)} \
"
SC_FIRMWARE_NAME ?= "scfw_tcm.bin"
OEI_ENABLE = "${@bb.utils.contains('DEPENDS', 'virtual/imx-oei', 'YES', 'NO', d)}"
OEI_NAME ?= "oei-${OEI_CORE}-*.bin"
ATF_MACHINE_NAME ?= "bl31-${ATF_PLATFORM}.bin"
ATF_MACHINE_NAME:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}"
BOOT_VARIANT ?= ""
TOOLS_NAME ?= "mkimage_imx8"
IMX_BOOT_SOC_TARGET ?= "INVALID"
DEPLOY_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'true', 'false', d)}"
DEPLOY_OPTEE_STMM = "${@bb.utils.contains('MACHINE_FEATURES', 'optee stmm', 'true', 'false', d)}"
IMXBOOT_TARGETS ?= \
"${@bb.utils.contains('UBOOT_CONFIG', 'fspi', 'flash_flexspi', \
bb.utils.contains('UBOOT_CONFIG', 'nand', 'flash_nand', \
'flash_multi_cores flash_dcd', d), d)}"
BOOT_STAGING = "${S}/${IMX_BOOT_SOC_TARGET}"
BOOT_STAGING:mx8m-generic-bsp = "${S}/iMX8M"
BOOT_STAGING:mx8dx-generic-bsp = "${S}/iMX8QX"
BOOT_STAGING:mx91-generic-bsp = "${S}/iMX91"
BOOT_STAGING:mx93-generic-bsp = "${S}/iMX93"
BOOT_STAGING:mx95-generic-bsp = "${S}/iMX95"
SOC_FAMILY = "INVALID"
SOC_FAMILY:mx8-generic-bsp = "mx8"
SOC_FAMILY:mx8m-generic-bsp = "mx8m"
SOC_FAMILY:mx8x-generic-bsp = "mx8x"
SOC_FAMILY:mx8ulp-generic-bsp = "mx8ulp"
SOC_FAMILY:mx91-generic-bsp = "mx91"
SOC_FAMILY:mx93-generic-bsp = "mx93"
SOC_FAMILY:mx95-generic-bsp = "mx95"
REV_OPTION ?= "REV=${IMX_SOC_REV_UPPER}"
UBOOT_DTB_BINARY ?= "u-boot.dtb"
MKIMAGE_EXTRA_ARGS ?= ""
MKIMAGE_EXTRA_ARGS:mx95-nxp-bsp ?= " \
OEI=${OEI_ENABLE} \
LPDDR_TYPE=${DDR_TYPE} \
${@'LPDDR_FW_VERSION='+d.getVar('LPDDR_FW_VERSION') if d.getVar('LPDDR_FW_VERSION') else ''} \
${@bb.utils.contains('SYSTEM_MANAGER_CONFIG', 'mx95alt', 'MSEL=1', '', d)}"
MKIMAGE_EXTRA_ARGS:imx95-19x19-verdin ?= " \
${MKIMAGE_EXTRA_ARGS:mx95-nxp-bsp} \
QSPI_HEADER=./scripts/fspi_header_133"
UBOOT_DTB_BINARY ?= "u-boot.dtb"
compile_mx8m() {
bbnote 8MQ/8MM/8MN/8MP boot binary build
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
bbnote "Copy ddr_firmware: ${ddr_firmware} from ${DEPLOY_DIR_IMAGE} -> ${BOOT_STAGING} "
cp ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${BOOT_STAGING}
done
cp ${DEPLOY_DIR_IMAGE}/signed_dp_imx8m.bin ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/signed_hdmi_imx8m.bin ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} \
${BOOT_STAGING}/u-boot-spl.bin
if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then
# Use DTB binary patched with signature node
cp ${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY} ${BOOT_STAGING}/${UBOOT_DTB_NAME_EXTRA}
else
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${UBOOT_DTB_NAME_EXTRA} \
${BOOT_STAGING}
fi
if [ "${UBOOT_DTB_NAME_EXTRA}" != "${UBOOT_DTB_NAME}" ] ; then
ln -sf ${UBOOT_DTB_NAME_EXTRA} ${BOOT_STAGING}/${UBOOT_DTB_NAME}
fi
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} \
${BOOT_STAGING}/u-boot-nodtb.bin
cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME_EXTRA} ${BOOT_STAGING}/u-boot.bin
}
compile_mx8() {
bbnote 8QM boot binary build
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin
cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME_EXTRA} ${BOOT_STAGING}/u-boot.bin
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} ] ; then
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} \
${BOOT_STAGING}/u-boot-spl.bin
fi
}
compile_mx8x() {
bbnote 8QX boot binary build
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin
cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME_EXTRA} ${BOOT_STAGING}/u-boot.bin
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} ] ; then
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} \
${BOOT_STAGING}/u-boot-spl.bin
fi
}
compile_mx8ulp() {
bbnote 8ULP boot binary build
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}/
cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/upower.bin ${BOOT_STAGING}/upower.bin
cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME_EXTRA} ${BOOT_STAGING}/u-boot.bin
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} ] ; then
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} \
${BOOT_STAGING}/u-boot-spl.bin
fi
}
compile_mx91() {
bbnote i.MX 91 boot binary build
compile_mx93
}
compile_mx93() {
bbnote i.MX 93 boot binary build
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
bbnote "Copy ddr_firmware: ${ddr_firmware} from ${DEPLOY_DIR_IMAGE} -> ${BOOT_STAGING} "
cp ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${BOOT_STAGING}
done
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}/
cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME_EXTRA} ${BOOT_STAGING}/u-boot.bin
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} ] ; then
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} \
${BOOT_STAGING}/u-boot-spl.bin
fi
}
compile_mx95() {
bbnote i.MX 95 boot binary build
compile_mx93
cp ${DEPLOY_DIR_IMAGE}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin \
${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin
}
do_compile() {
# mkimage for i.MX8
# Copy TEE binary to SoC target folder to mkimage
if ${DEPLOY_OPTEE}; then
cp ${DEPLOY_DIR_IMAGE}/tee.bin ${BOOT_STAGING}
if ${DEPLOY_OPTEE_STMM}; then
# Copy tee.bin to tee.bin-stmm
cp ${DEPLOY_DIR_IMAGE}/tee.bin ${BOOT_STAGING}/tee.bin-stmm
fi
fi
# Copy OEI firmware to SoC target folder to mkimage
if [ "${OEI_ENABLE}" = "YES" ]; then
cp ${DEPLOY_DIR_IMAGE}/${OEI_NAME} ${BOOT_STAGING}
fi
for type in ${UBOOT_CONFIG}; do
if [ "${@d.getVarFlags('UBOOT_DTB_NAME')}" = "None" ]; then
UBOOT_DTB_NAME_FLAGS="${type}:${UBOOT_DTB_NAME}"
else
UBOOT_DTB_NAME_FLAGS="${@' '.join(flag + ':' + dtb for flag, dtb in (d.getVarFlags('UBOOT_DTB_NAME')).items()) if d.getVarFlags('UBOOT_DTB_NAME') is not None else '' }"
fi
for key_value in ${UBOOT_DTB_NAME_FLAGS}; do
type_key="${key_value%%:*}"
dtb_name="${key_value#*:}"
if [ "$type_key" = "$type" ]
then
bbnote "UBOOT_CONFIG = $type, UBOOT_DTB_NAME = $dtb_name"
UBOOT_CONFIG_EXTRA="$type_key"
if [ -e ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${dtb_name}-${type} ] ; then
UBOOT_DTB_NAME_EXTRA="${dtb_name}-${type}"
else
# backward compatibility
UBOOT_DTB_NAME_EXTRA="${dtb_name}"
fi
UBOOT_NAME_EXTRA="u-boot-${MACHINE}.bin-${UBOOT_CONFIG_EXTRA}"
BOOT_CONFIG_MACHINE_EXTRA="imx-boot${BOOT_VARIANT}-${MACHINE}-${UBOOT_CONFIG_EXTRA}.bin"
for target in ${IMXBOOT_TARGETS}; do
compile_${SOC_FAMILY}
case $target in
*no_v2x)
# Special target build for i.MX 8DXL with V2X off
bbnote "building ${IMX_BOOT_SOC_TARGET} - ${REV_OPTION} V2X=NO ${target}"
make SOC=${IMX_BOOT_SOC_TARGET} ${REV_OPTION} V2X=NO dtbs=${UBOOT_DTB_NAME_EXTRA} flash_linux_m4
;;
*stmm_capsule)
# target for flash_evk_stmm_capsule or
# flash_singleboot_stmm_capsule
cp ${RECIPE_SYSROOT_NATIVE}/${bindir}/mkeficapsule ${BOOT_STAGING}
bbnote "building ${IMX_BOOT_SOC_TARGET} - TEE=tee.bin-stmm ${target}"
cp ${DEPLOY_DIR_IMAGE}/CRT.* ${BOOT_STAGING}
make SOC=${IMX_BOOT_SOC_TARGET} TEE=tee.bin-stmm dtbs=${UBOOT_DTB_NAME} ${REV_OPTION} ${target}
;;
*)
bbnote "building ${IMX_BOOT_SOC_TARGET} - ${REV_OPTION} ${MKIMAGE_EXTRA_ARGS} ${target}"
make SOC=${IMX_BOOT_SOC_TARGET} ${REV_OPTION} ${MKIMAGE_EXTRA_ARGS} dtbs=${UBOOT_DTB_NAME} ${target}
;;
esac
if [ -e "${BOOT_STAGING}/flash.bin" ]; then
cp ${BOOT_STAGING}/flash.bin ${S}/${BOOT_CONFIG_MACHINE_EXTRA}-${target}
fi
done
unset UBOOT_CONFIG_EXTRA
unset UBOOT_DTB_NAME_EXTRA
unset UBOOT_NAME_EXTRA
unset BOOT_CONFIG_MACHINE_EXTRA
fi
unset type_key
unset dtb_name
done
unset UBOOT_DTB_NAME_FLAGS
done
unset type
}
do_install () {
install -d ${D}/boot
for type in ${UBOOT_CONFIG}; do
bbnote "UBOOT_CONFIG = $type"
UBOOT_CONFIG_EXTRA="$type"
BOOT_CONFIG_MACHINE_EXTRA="imx-boot${BOOT_VARIANT}-${MACHINE}-${UBOOT_CONFIG_EXTRA}.bin"
for target in ${IMXBOOT_TARGETS}; do
install -m 0644 ${S}/${BOOT_CONFIG_MACHINE_EXTRA}-${target} ${D}/boot/
done
unset UBOOT_CONFIG_EXTRA
unset BOOT_CONFIG_MACHINE_EXTRA
done
unset type
}
deploy_mx8m() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
install -m 0644 ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${DEPLOYDIR}/${BOOT_TOOLS}
done
install -m 0644 ${BOOT_STAGING}/signed_dp_imx8m.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/signed_hdmi_imx8m.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${BOOT_STAGING}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${BOOT_STAGING}/mkimage_fit_atf.sh ${DEPLOYDIR}/${BOOT_TOOLS}
}
deploy_mx8() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} ] ; then
install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} \
${DEPLOYDIR}/${BOOT_TOOLS}
fi
}
deploy_mx8x() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then
install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${DEPLOYDIR}/${BOOT_TOOLS}
fi
}
deploy_mx8ulp() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} ] ; then
install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${DEPLOYDIR}/${BOOT_TOOLS}
fi
}
deploy_mx91() {
deploy_mx93
}
deploy_mx93() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
install -m 0644 ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${DEPLOYDIR}/${BOOT_TOOLS}
done
install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then
install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
${DEPLOYDIR}/${BOOT_TOOLS}
fi
}
deploy_mx95() {
deploy_mx93
install -m 0644 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin \
${DEPLOYDIR}/${BOOT_TOOLS}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin
}
do_deploy() {
deploy_${SOC_FAMILY}
# copy tee.bin to deploy path
if ${DEPLOY_OPTEE}; then
install -m 0644 ${DEPLOY_DIR_IMAGE}/tee.bin ${DEPLOYDIR}/${BOOT_TOOLS}
fi
# copy oei to deploy path
if [ "${OEI_ENABLE}" = "YES" ]; then
install -m 0644 ${BOOT_STAGING}/${OEI_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
fi
# copy makefile (soc.mak) for reference
install -m 0644 ${BOOT_STAGING}/soc.mak ${DEPLOYDIR}/${BOOT_TOOLS}
# copy stmm files to deploy path
if ${DEPLOY_OPTEE_STMM}; then
install -m 0644 ${BOOT_STAGING}/tee.bin-stmm ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/capsule1.bin ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/CRT.* ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${BOOT_STAGING}/mkeficapsule ${DEPLOYDIR}/${BOOT_TOOLS}
fi
for type in ${UBOOT_CONFIG}; do
UBOOT_CONFIG_EXTRA="$type"
UBOOT_NAME_EXTRA="u-boot-${MACHINE}.bin-${UBOOT_CONFIG_EXTRA}"
BOOT_CONFIG_MACHINE_EXTRA="imx-boot${BOOT_VARIANT}-${MACHINE}-${UBOOT_CONFIG_EXTRA}.bin"
if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} ] ; then
install -m 0644 ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG_EXTRA} \
${DEPLOYDIR}/${BOOT_TOOLS}
fi
# copy the tool mkimage to deploy path and sc fw, dcd and uboot
install -m 0644 ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME_EXTRA} ${DEPLOYDIR}/${BOOT_TOOLS}
# copy the generated boot image to deploy path
for target in ${IMXBOOT_TARGETS}; do
# Use first "target" as IMAGE_IMXBOOT_TARGET
if [ "$IMAGE_IMXBOOT_TARGET" = "" ]; then
IMAGE_IMXBOOT_TARGET="$target"
echo "Set boot target as $IMAGE_IMXBOOT_TARGET"
fi
install -m 0644 ${S}/${BOOT_CONFIG_MACHINE_EXTRA}-${target} ${DEPLOYDIR}
done
# The first UBOOT_CONFIG listed will be the imx-boot binary
if [ ! -f "${DEPLOYDIR}/imx-boot" ]; then
ln -sf ${BOOT_CONFIG_MACHINE_EXTRA}-${IMAGE_IMXBOOT_TARGET} ${DEPLOYDIR}/imx-boot
else
bbwarn "Use custom wks.in for $UBOOT_CONFIG = $type"
fi
unset UBOOT_CONFIG_EXTRA
unset UBOOT_NAME_EXTRA
unset BOOT_CONFIG_MACHINE_EXTRA
done
unset type
}
addtask deploy before do_build after do_compile
PACKAGE_ARCH = "${MACHINE_ARCH}"
FILES:${PN} = "/boot"
COMPATIBLE_MACHINE = "(mx8-generic-bsp|mx9-generic-bsp)"

View File

@@ -0,0 +1,23 @@
# Copyright (C) 2016 Freescale Semiconductor
# Copyright (C) 2017-2022 NXP
require imx-mkimage_git.inc
DESCRIPTION = "i.MX make image"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
SECTION = "BSP"
inherit deploy native
EXTRA_OEMAKE = "SOC=iMX8M mkimage_imx8"
CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR} -L ${STAGING_LIBDIR}"
do_install() {
install -d ${D}${bindir}
install -m 0755 iMX8M/mkimage_imx8 ${D}${bindir}/mkimage_imx8m
install -m 0755 iMX8M/mkimage_fit_atf.sh ${D}${bindir}/mkimage_fit_atf.sh
install -m 0755 iMX8M/print_fit_hab.sh ${D}${bindir}/print_fit_hab.sh
install -m 0755 mkimage_imx8 ${D}${bindir}/mkimage_imx8
}

View File

@@ -0,0 +1,14 @@
# Copyright 2017-2023 NXP
DEPENDS = "zlib-native openssl-native"
SRC_URI = "git://github.com/nxp-imx/imx-mkimage.git;protocol=https;branch=${SRCBRANCH} \
file://0001-iMX8M-soc.mak-use-native-mkimage-from-sysroot.patch \
"
SRCBRANCH = "lf-6.6.52_2.2.1"
SRCREV = "81fca6434be0610f3f9216a762aadc4dc3e8d8db"
S = "${WORKDIR}/git"
BOOT_TOOLS = "imx-boot-tools"
SYSROOT_DIRS += "/boot"

View File

@@ -0,0 +1,44 @@
# Copyright (C) 2016 Freescale Semiconductor
# Copyright 2017-2022 NXP
DESCRIPTION = "i.MX System Controller Firmware"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=5a0bf11f745e68024f37b4724a5364fe"
SECTION = "BSP"
inherit fsl-eula-unpack pkgconfig deploy
SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
SRC_URI[sha256sum] = "1272ac5c31a88017ef548721f3acf930a7eda6ac73aa9f41b5f0cade9d5c0e5f"
BOARD_TYPE ?= "mek"
SC_FIRMWARE_NAME ?= "INVALID"
SC_FIRMWARE_NAME:mx8qm-generic-bsp = "mx8qm-${BOARD_TYPE}-scfw-tcm.bin"
SC_FIRMWARE_NAME:mx8qxp-generic-bsp = "mx8qx-${BOARD_TYPE}-scfw-tcm.bin"
SC_FIRMWARE_NAME:mx8dxl-generic-bsp = "mx8dxl-${BOARD_TYPE}-scfw-tcm.bin"
SC_FIRMWARE_NAME:mx8dx-generic-bsp = "mx8dx-${BOARD_TYPE}-scfw-tcm.bin"
symlink_name = "scfw_tcm.bin"
BOOT_TOOLS = "imx-boot-tools"
do_compile[noexec] = "1"
do_install[noexec] = "1"
do_deploy() {
install -Dm 0644 ${S}/${SC_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME}
ln -sf ${SC_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}/${symlink_name}
}
addtask deploy after do_install
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
LDFLAGS:remove = "-fuse-ld=lld"
DEBUG_PREFIX_MAP:remove = "-fcanon-prefix-map"
COMPATIBLE_MACHINE = "(mx8qm-generic-bsp|mx8qxp-generic-bsp|mx8dxl-generic-bsp|mx8dx-generic-bsp)"

View File

@@ -0,0 +1,57 @@
From 2eff97fe2345d8255869224404322d23193f1115 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 7 Jan 2023 21:59:15 -0800
Subject: [PATCH] Fix return value of void* functions
This is found with clang
Fixes
error: non-void function does not return a value [-Werror,-Wreturn-type]
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
test/hsm/hsm_test.c | 1 +
test/she/src/she_test_storage_manager.c | 1 +
test/v2x/v2x_test.c | 1 +
3 files changed, 3 insertions(+)
diff --git a/test/hsm/hsm_test.c b/test/hsm/hsm_test.c
index 9f29ca9..01820b8 100644
--- a/test/hsm/hsm_test.c
+++ b/test/hsm/hsm_test.c
@@ -391,6 +391,7 @@ static uint32_t nvm_status;
static void *hsm_storage_thread(void *arg)
{
seco_nvm_manager(NVM_FLAGS_HSM, &nvm_status);
+ return 0;
}
diff --git a/test/she/src/she_test_storage_manager.c b/test/she/src/she_test_storage_manager.c
index 32a4cb9..68cdba7 100644
--- a/test/she/src/she_test_storage_manager.c
+++ b/test/she/src/she_test_storage_manager.c
@@ -28,6 +28,7 @@ static uint32_t nvm_status;
static void *she_storage_thread(void *arg)
{
seco_nvm_manager(NVM_FLAGS_SHE, &nvm_status);
+ return 0;
}
diff --git a/test/v2x/v2x_test.c b/test/v2x/v2x_test.c
index aeb3d2a..5f02354 100644
--- a/test/v2x/v2x_test.c
+++ b/test/v2x/v2x_test.c
@@ -181,6 +181,7 @@ static uint32_t nvm_status;
static void *v2x_hsm_storage_thread(void *arg)
{
seco_nvm_manager(NVM_FLAGS_V2X | NVM_FLAGS_HSM, &nvm_status);
+ return 0;
}
--
2.39.0

View File

@@ -0,0 +1,28 @@
From 9e89d173a7fab97c913960344ae01dfa409b6258 Mon Sep 17 00:00:00 2001
From: Cristinel Panfir <cristinel.panfir@nxp.com>
Date: Mon, 27 Jul 2020 18:55:30 +0000
Subject: [PATCH] Makefile: Fix LIBDIR for multilib
Upstream-Status: Pending
Signed-off-by: Cristinel Panfir <cristinel.panfir@nxp.com>
---
Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index b16cebf..492d700 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,8 @@ all: she_test hsm_test v2x_test she_lib.a seco_nvm_manager.a hsm_lib.a
CFLAGS = -O1 -Werror -fPIC
DESTDIR ?= export
BINDIR ?= /usr/bin
-LIBDIR ?= /usr/lib
+base_libdir ?= /lib
+LIBDIR ?= /usr/$(base_libdir)
INCLUDEDIR ?= /usr/include
ifdef COVERAGE
--
2.7.4

View File

@@ -0,0 +1,33 @@
From b62f020ea723dc33f28e5e865d0ddd13219971c9 Mon Sep 17 00:00:00 2001
From: Cristinel Panfir <cristinel.panfir@nxp.com>
Date: Mon, 29 Mar 2021 15:24:42 +0300
Subject: [PATCH] Makefile: Add v2x test to the installed-binaries
Upstream-Status: Pending
Signed-off-by: Cristinel Panfir <cristinel.panfir@nxp.com>
[regenerate the patch to be applied after meta-imx patches]
Signed-off-by: Fausto Chiatante <fausto.chiatante@nxp.com>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 25ad333..a397814 100644
--- a/Makefile
+++ b/Makefile
@@ -61,9 +61,9 @@ hsm_doc: include/hsm/hsm_api.h
cp doc/latex/refman.pdf doc/hsm_api_document.pdf
rm -rf doc/latex/
-install: hsm_test she_test she_lib.a seco_nvm_manager.a hsm_lib.a
+install: hsm_test she_test v2x_test she_lib.a seco_nvm_manager.a hsm_lib.a
mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(INCLUDEDIR)
cp seco_nvm_manager.a hsm_lib.a she_lib.a $(DESTDIR)$(LIBDIR)
- cp hsm_test she_test $(DESTDIR)$(BINDIR)
+ cp hsm_test she_test v2x_test $(DESTDIR)$(BINDIR)
cp -a include/* $(DESTDIR)$(INCLUDEDIR)
--
2.25.1

View File

@@ -0,0 +1,34 @@
From 59608dcb0f0a6f6d8154b1d331c2403d7c1143eb Mon Sep 17 00:00:00 2001
From: Cristinel Panfir <cristinel.panfir@nxp.com>
Date: Fri, 5 Feb 2021 19:27:00 +0200
Subject: [PATCH] Makefile: Fix install to clear host-user-contaminated
warnings [HSM-483]
WARNING: imx-seco-libs-git-r0 do_package_qa: QA Issue:
imx-seco-libs: /usr/lib/hsm_lib.a is owned by uid 26292, which is the same as the user running bitbake. This may be due to host contamination
imx-seco-libs: /usr/lib/she_lib.a is owned by uid 26292, which is the same as the user running bitbake. This may be due to host contamination
imx-seco-libs: /usr/lib/seco_nvm_manager.a is owned by uid 26292, which is the same as the user running bitbake.
This may be due to host contamination [host-user-contaminated]
Upstream-Status: Pending
Signed-off-by: Cristinel Panfir <cristinel.panfir@nxp.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 492d700..25ad333 100644
--- a/Makefile
+++ b/Makefile
@@ -63,7 +63,7 @@ hsm_doc: include/hsm/hsm_api.h
install: hsm_test she_test she_lib.a seco_nvm_manager.a hsm_lib.a
mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(INCLUDEDIR)
- cp -a seco_nvm_manager.a hsm_lib.a she_lib.a $(DESTDIR)$(LIBDIR)
+ cp seco_nvm_manager.a hsm_lib.a she_lib.a $(DESTDIR)$(LIBDIR)
cp hsm_test she_test $(DESTDIR)$(BINDIR)
cp -a include/* $(DESTDIR)$(INCLUDEDIR)
--
2.25.1

View File

@@ -0,0 +1,27 @@
# Copyright 2019-22 NXP
SUMMARY = "NXP i.MX SECO library"
DESCRIPTION = "Library for NXP i.MX Security Controller Subsystem"
SECTION = "base"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://EULA.txt;md5=d3c315c6eaa43e07d8c130dc3a04a011"
DEPENDS = "zlib"
SRCBRANCH = "lf-6.6.3_1.0.0"
SRC_URI = "git://github.com/NXP/imx-seco-libs.git;protocol=https;branch=${SRCBRANCH} \
file://0001-Makefile-Fix-LIBDIR-for-multilib.patch \
file://0002-Makefile-Fix-install-to-clear-host-user-contaminated.patch \
file://0001-add-v2x_test-to-the-installed-binaries.patch \
file://0001-Fix-return-value-of-void-functions.patch"
SRCREV = "273553f207425f773400be7a7f3a7c425d892d6f"
S = "${WORKDIR}/git"
TARGET_CC_ARCH += "${LDFLAGS}"
do_install () {
oe_runmake DESTDIR=${D} BINDIR=${bindir} LIBDIR=${libdir} install
}
COMPATIBLE_MACHINE = "(mx8qm-nxp-bsp|mx8qxp-nxp-bsp|mx8dxl-nxp-bsp|mx8dx-nxp-bsp)"

View File

@@ -0,0 +1,26 @@
# Copyright 2019-2022 NXP
SUMMARY = "NXP i.MX SECO firmware"
DESCRIPTION = "Firmware for i.MX Security Controller Subsystem"
SECTION = "base"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=10c0fda810c63b052409b15a5445671a"
inherit fsl-eula-unpack use-imx-security-controller-firmware deploy
SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true"
SRC_URI[sha256sum] = "9b04be33814a9cbda9bbfcb6711585cf7e4ed2527793813c95230f350323cba7"
do_compile[noexec] = "1"
do_install[noexec] = "1"
addtask deploy after do_install
do_deploy () {
# Deploy i.MX8 SECO firmware files
install -m 0644 ${S}/firmware/seco/${SECO_FIRMWARE_NAME} ${DEPLOYDIR}
}
COMPATIBLE_MACHINE = "(mx8qm-generic-bsp|mx8qxp-generic-bsp|mx8dxl-generic-bsp|mx8dx-generic-bsp)"

View File

@@ -0,0 +1,31 @@
SUMMARY = "NXP i.MX Secure Enclave Userspace Library"
DESCRIPTION = "NXP i.MX Secure Enclave Userspace Library"
SECTION = "base"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8636bd68fc00cc6a3809b7b58b45f982"
DEPENDS = "openssl"
inherit systemd
SRC_URI = "git://github.com/NXP/imx-secure-enclave.git;protocol=https;branch=lf-6.6.52_2.2.0"
SRCREV = "dffbb844e86f4a49058ffbb40548474059969c27"
PV = "lf-6.6.52_2.2.0"
S = "${WORKDIR}/git"
EXTRA_OEMAKE += "PLAT=ele"
TARGET_CC_ARCH += "${LDFLAGS}"
do_install () {
oe_runmake DESTDIR=${D} install
rm -rf ${D}/usr/share
}
SYSTEMD_AUTO_ENABLE = "disable"
SYSTEMD_SERVICE:${PN} = "nvm_daemon.service"
COMPATIBLE_MACHINE = "(mx8ulp-nxp-bsp|mx9-nxp-bsp)"

View File

@@ -0,0 +1 @@
complete -o nospace -C /unit_tests/memtool memtool

View File

@@ -0,0 +1,10 @@
SUMMARY = "Dummy package for SoCs lacking imx-test package"
DESCRIPTION = "Dummy package for SoCs lacking imx-test package"
SECTION = "base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
ALLOW_EMPTY:${PN} = "1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_MACHINE = "(imx-generic-bsp)"

View File

@@ -0,0 +1,86 @@
# Copyright (C) 2012-2016 O.S. Systems Software LTDA.
# Copyright (C) 2013-2016 Freescale Semiconductor
# Copyright (C) 2017-2022 NXP
SUMMARY = "Test programs for i.MX BSP"
DESCRIPTION = "Unit tests for the i.MX BSP"
SECTION = "base"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-or-later;md5=fed54355545ffd980b814dab4a3b312c"
DEPENDS = "alsa-lib freetype libdrm"
DEPENDS:append:imxvpu = " virtual/imxvpu"
DEPENDS:append:mx6-nxp-bsp = " imx-lib"
DEPENDS:append:mx7-nxp-bsp = " imx-lib"
DEPENDS:append:mx8ulp-nxp-bsp = " imx-lib"
DEPENDS:append:mx93-nxp-bsp = " imx-lib"
PE = "1"
PV = "7.0+${SRCPV}"
SRC_URI = "git://github.com/nxp-imx/imx-test.git;protocol=https;branch=${SRCBRANCH} \
file://memtool_profile"
SRCBRANCH = "lf-6.6.3_1.0.0"
SRCREV = "8a1fa37664a1e470cf86f1185c08e265e4602a9b"
S = "${WORKDIR}/git"
inherit module-base use-imx-headers
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
PLATFORM:mx6q-nxp-bsp = "IMX6Q"
PLATFORM:mx6dl-nxp-bsp = "IMX6Q"
PLATFORM:mx6sl-nxp-bsp = "IMX6SL"
PLATFORM:mx6sll-nxp-bsp = "IMX6SL"
PLATFORM:mx6sx-nxp-bsp = "IMX6SX"
PLATFORM:mx6ul-nxp-bsp = "IMX6UL"
PLATFORM:mx7d-nxp-bsp = "IMX7D"
PLATFORM:mx7ulp-nxp-bsp = "IMX7D"
PLATFORM:mx8-nxp-bsp = "IMX8"
PLATFORM:mx8ulp-nxp-bsp = "IMX8ULP"
PLATFORM:mx93-nxp-bsp = "IMX8ULP"
PLATFORM:mx95-nxp-bsp = "IMX8"
PARALLEL_MAKE = "-j 1"
EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS}"
PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
PACKAGECONFIG:append:imxvpu = " vpu"
PACKAGECONFIG:append:mx8m-nxp-bsp = " swpdm"
PACKAGECONFIG[x11] = ",,libx11 libxdamage libxrender libxrandr"
PACKAGECONFIG[vpu] = "HAS_VPU=true,HAS_VPU=false,virtual/imxvpu"
PACKAGECONFIG[swpdm] = "HAS_IMX_SW_PDM=true,HAS_IMX_SW_PDM=false,imx-sw-pdm"
do_compile() {
CFLAGS="${TOOLCHAIN_OPTIONS}"
oe_runmake V=1 VERBOSE='' \
CROSS_COMPILE=${TARGET_PREFIX} \
INC="-I${S}/include \
-I${STAGING_INCDIR} \
-I${STAGING_INCDIR_IMX}" \
CC="${CC} -L${STAGING_LIBDIR} ${LDFLAGS}" \
SDKTARGETSYSROOT=${STAGING_DIR_HOST} \
LINUXPATH=${STAGING_KERNEL_DIR} \
KBUILD_OUTPUT=${STAGING_KERNEL_BUILDDIR} \
PLATFORM=${PLATFORM}
}
do_install() {
oe_runmake DESTDIR=${D}/unit_tests \
PLATFORM=${PLATFORM} \
install
if [ -e ${WORKDIR}/clocks.sh ]; then
install -m 755 ${WORKDIR}/clocks.sh ${D}/unit_tests/clocks.sh
fi
install -d -m 0755 ${D}${ROOT_HOME}/
install -m 0644 ${WORKDIR}/memtool_profile ${D}${ROOT_HOME}/.profile
}
FILES:${PN} += "/unit_tests ${ROOT_HOME}/.profile"
RDEPENDS:${PN} = "bash"
FILES:${PN}-dbg += "/unit_tests/.debug"

View File

@@ -0,0 +1,23 @@
# Copyright (C) 2016 Freescale Semiconductor
# Copyright (C) 2017-2019,2024 NXP
SUMMARY = "A Daemon wait for NXP mfgtools host's command"
SECTION = "base"
DEPENDS = "virtual/kernel dosfstools-native"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
PR = "r1"
PV = "0.5.1+git${SRCPV}"
SRC_URI = "git://github.com/NXPmicro/imx-uuc.git;protocol=https;branch=master"
SRCREV = "9b4adc0cde346fbae743dc21fcf5115488307b83"
S = "${WORKDIR}/git"
do_install() {
oe_runmake 'DESTDIR=${D}' install
}
FILES:${PN} += "/linuxrc /fat"
COMPATIBLE_MACHINE = "(imx-generic-bsp)"

View File

@@ -0,0 +1,36 @@
# Copyright 2019-2022 NXP
DESCRIPTION = "i.MX VC8000E Encoder library"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837"
inherit fsl-eula-unpack
SRC_URI = "${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true"
IMX_SRCREV_ABBREV = "c0244a1"
SRC_URI[sha256sum] = "713ba375f25490727fcc62bab5d5508f74de03204b4c153464b696b652c5c7df"
S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}"
# SCR is the location and name of the Software Content Register file
# relative to ${D}${D_SUBDIR}.
SCR = "SCR.txt"
do_install () {
install -d ${D}${D_SUBDIR}
cp -r ${S}/* ${D}${D_SUBDIR}
if [ -d "${D}/usr/lib" ] && [ "${D}/usr/lib" != "${D}${libdir}" ]; then
mv ${D}/usr/lib ${D}${libdir}
fi
rm ${D}${D_SUBDIR}/COPYING
if [ ! -f ${D}${D_SUBDIR}/${SCR} ]; then
bbfatal "Missing Software Content Register \"${D}${D_SUBDIR}/${SCR}\""
fi
rm ${D}${D_SUBDIR}/${SCR}
}
FILES:${PN} = "/"
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)"

View File

@@ -0,0 +1,32 @@
# Copyright 2021 NXP
DESCRIPTION = "i.MX Hantro V4L2 Daemon"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cd8bc2a79509c22fc9c1782a151210b1"
DEPENDS = "imx-vpu-hantro"
DEPENDS:append:mx8mp-nxp-bsp = " imx-vpu-hantro-vc"
SRC_URI = "${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.tar.gz"
IMX_SRCREV_ABBREV = "75d9dd9"
SRC_URI[sha256sum] = "c3ac36c203fef44ef21c98a90b3fff73af9f328f16b4d85157308848f6c34823"
S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}"
PLATFORM:mx8mm-nxp-bsp = "IMX8MM"
PLATFORM:mx8mq-nxp-bsp = "IMX8MQ"
PLATFORM:mx8mp-nxp-bsp = "IMX8MP"
EXTRA_OEMAKE = " \
CROSS_COMPILE="${HOST_PREFIX}" \
SDKTARGETSYSROOT="${STAGING_DIR_TARGET}" \
CTRLSW_HDRPATH="${STAGING_INCDIR}" \
PLATFORM="${PLATFORM}" \
"
do_install () {
oe_runmake install DEST_DIR="${D}"
}
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
COMPATIBLE_MACHINE = "(mx8mq-nxp-bsp|mx8mm-nxp-bsp|mx8mp-nxp-bsp)"

View File

@@ -0,0 +1,45 @@
# Copyright (C) 2017-2020 NXP
DESCRIPTION = "i.MX Hantro VPU library"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837"
PROVIDES = "virtual/imxvpu"
SRC_URI = "${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true"
IMX_SRCREV_ABBREV = "98ff183"
SRC_URI[sha256sum] = "c4730cb996a3eafbc06ed0765cd509caa63cdeecdc0c4958efbc91383e0501fd"
S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}"
inherit fsl-eula-unpack use-imx-headers
PARALLEL_MAKE="-j 1"
PLATFORM:mx8mm-nxp-bsp = "IMX8MM"
PLATFORM:mx8mq-nxp-bsp = "IMX8MQ"
PLATFORM:mx8mp-nxp-bsp = "IMX8MP"
#| ../../source/h264high/h264decapi.c:1803:22: error: assignment to 'const u8 *' {aka 'const unsigned char *'} from incompatible pointer type 'u32 *' {aka 'unsigned int *'} [-Wincompatible-pointer-types]
#| 1803 | ref_data = ref.virtual_address;
#| ../../source/h264high/h264decapi.c:2086:22: error: assignment to 'const u8 *' {aka 'const unsigned char *'} from incompatible pointer type 'u32 *' {aka 'unsigned int *'} [-Wincompatible-pointer-types]
#| 2086 | ref_data = ref.virtual_address;
CFLAGS += " -Wno-error=incompatible-pointer-types"
EXTRA_OEMAKE = " \
CROSS_COMPILE="${HOST_PREFIX}" \
SDKTARGETSYSROOT="${STAGING_DIR_TARGET}" \
PLATFORM="${PLATFORM}" \
"
do_install () {
oe_runmake install DEST_DIR="${D}"
}
FILES:${PN} += "/unit_tests"
RDEPENDS:${PN} += "imx-vpu-hantro-daemon"
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
COMPATIBLE_MACHINE = "(mx8mq-nxp-bsp|mx8mm-nxp-bsp|mx8mp-nxp-bsp)"

View File

@@ -0,0 +1,29 @@
# Copyright (C) 2013-2018 O.S. Systems Software LTDA.
# Copyright (C) 2013-2016 Freescale Semiconductor
# Copyright (C) 2017-2020 NXP
DESCRIPTION = "Freescale VPU library for Chips&Media VPU"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
PROVIDES = "virtual/imxvpu"
PE = "1"
SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true"
SRC_URI[sha256sum] = "87cb799a57df654db29403cb74a75ca5185a1517022d3a4a16b8d69056c36127"
inherit fsl-eula-unpack use-imx-headers
PLATFORM = "IMX6Q"
do_compile() {
INCLUDE_DIR="-I${STAGING_INCDIR_IMX}"
oe_runmake CROSS_COMPILE="${HOST_PREFIX}" PLATFORM="${PLATFORM}" INCLUDE="${INCLUDE_DIR}" all
}
do_install() {
oe_runmake PLATFORM="${PLATFORM}" DEST_DIR="${D}" install
}
COMPATIBLE_MACHINE = "(mx6q-nxp-bsp|mx6dl-nxp-bsp)"

View File

@@ -0,0 +1,28 @@
SUMMARY = "Firmwares and Standalone Applications"
LICENSE = "NXP-Binary-EULA"
LIC_FILES_CHKSUM = "file://EULA.txt;md5=86d76166990962fa552f840ff08e5798"
inherit deploy
SRC_URI = "git://github.com/nxp/qoriq-firmware-inphi.git;nobranch=1;protocol=https"
SRCREV = "f22e9ff3bfed8342da6efb699e473b11fbad5695"
S = "${WORKDIR}/git"
do_install () {
install -d ${D}/boot
cp -fr ${S}/in112525-phy-ucode.txt ${D}/boot
}
do_deploy () {
install -d ${DEPLOYDIR}/inphi
cp -fr ${S}/in112525-phy-ucode.txt ${DEPLOYDIR}/inphi
}
addtask deploy before do_build after do_install
PACKAGES += "${PN}-image"
FILES:${PN}-image += "/boot"
COMPATIBLE_MACHINE = "(qoriq-arm64)"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,27 @@
# Copyright 2020-2023 NXP
DESCRIPTION = "Basler camera binary drivers"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=2827219e81f28aba7c6a569f7c437fa7"
inherit fsl-eula-unpack
SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
SRC_URI[sha256sum] = "ad3e98ee0c10f2b3e74af8923f44b8d5908e42eedbca12a702e35cee9328d8cf"
do_install() {
dest_dir=${D}/opt/imx8-isp/bin
install -d ${D}/${libdir}
install -d $dest_dir
cp -r ${S}/opt/imx8-isp/bin/* $dest_dir
cp -r ${S}/usr/lib/* ${D}/${libdir}
}
SYSTEMD_AUTO_ENABLE = "enable"
FILES:${PN} = "${libdir} /opt"
INSANE_SKIP:${PN} = "already-stripped"
RDEPENDS:${PN} += "isp-imx"
COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)"

View File

@@ -0,0 +1,88 @@
# Copyright 2020-2023 NXP
DESCRIPTION = "i.MX Verisilicon Software ISP"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837"
DEPENDS = "boost libdrm virtual/libg2d libtinyxml2 jsoncpp patchelf-native"
SRC_URI = " \
${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true \
"
IMX_SRCREV_ABBREV = "8527c7b"
S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}"
SRC_URI[sha256sum] = "481e49e9da6d7783d6c28385bb68463eac7b9e9fef6ea958950260a8ad6b1e4c"
inherit fsl-eula-unpack cmake systemd use-imx-headers
PACKAGECONFIG = "tuningext"
# Note: building with tuningext fails with boost 1.87.
# (update to 1.87 with walnascar)
PACKAGECONFIG[tuningext] = "-DTUNINGEXT=1,-DTUNINGEXT=0"
# Build the sub-folder appshell
OECMAKE_SOURCEPATH = "${S}/appshell"
# Use make instead of ninja
OECMAKE_GENERATOR = "Unix Makefiles"
# Workaround for linking issues seen with gold linker
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
SYSTEMD_SERVICE:${PN} = "imx8-isp.service"
EXTRA_OECMAKE += " \
-DSDKTARGETSYSROOT=${STAGING_DIR_HOST} \
-DCMAKE_BUILD_TYPE=release \
-DISP_VERSION=ISP8000NANO_V1802 \
-DPLATFORM=ARM64 \
-DQTLESS=1 \
-DFULL_SRC_COMPILE=1 \
-DWITH_DRM=1 \
-DWITH_DWE=1 \
-DSUBDEV_V4L2=1 \
-DPARTITION_BUILD=0 \
-D3A_SRC_BUILD=0 \
-DIMX_G2D=ON \
-Wno-dev \
"
do_install() {
# FIXME: provided by the basler-camera package, do not install them here additionally
rm -f ${S}/dewarp/dewarp_config//daA3840_30mc*.json
# The Makefile unconditionally installs tuningext even if it is not built
if ${@bb.utils.contains('PACKAGECONFIG','tuningext','false','true',d)}; then
touch ${B}/generated/release/bin/tuningext
fi
oe_runmake -f ${S}/Makefile install INSTALL_DIR=${D} SOURCE_DIR=${S}
if ${@bb.utils.contains('PACKAGECONFIG','tuningext','false','true',d)}; then
rm ${D}/opt/imx8-isp/bin/tuningext
fi
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${S}/imx/imx8-isp.service ${D}${systemd_system_unitdir}
fi
}
# The build contains a mix of versioned and unversioned libraries, so
# the default packaging configuration needs some modification so that
# unversioned .so libraries go to the main package and versioned .so
# symlinks go to -dev.
FILES_SOLIBSDEV = ""
FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}"
FILES:${PN}-dev += "${FILES_SOLIBS_VERSIONED}"
FILES_SOLIBS_VERSIONED = " \
${libdir}/libcppnetlib-client-connections.so \
${libdir}/libcppnetlib-server-parsers.so \
${libdir}/libcppnetlib-uri.so \
${libdir}/libos08a20.so \
"
RDEPENDS:${PN} = "libdrm"
COMPATIBLE_MACHINE = "(mx8mp-nxp-bsp)"

View File

@@ -0,0 +1,10 @@
#!/bin/sh
./test-alloc >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "PASS: test-alloc"
else
echo "FAIL: test-alloc"
fi

View File

@@ -0,0 +1,91 @@
DESCRIPTION = 'Library for allocating and managing physically contiguous memory \
("DMA memory" or "DMA buffers") on i.MX devices.'
HOMEPAGE = "https://github.com/Freescale/libimxdmabuffer"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=38fa42a5a6425b26d2919b17b1527324"
SECTION = "base"
PV .= "+git${SRCPV}"
SRCBRANCH ?= "master"
SRCREV = "faf547cc2345bfbf95507ab7e86530f85289bb5b"
SRC_URI = "git://github.com/Freescale/libimxdmabuffer.git;branch=${SRCBRANCH};protocol=https \
file://run-ptest \
"
S = "${WORKDIR}/git"
inherit pkgconfig waf use-imx-headers ptest
EXTRA_OECONF = "--imx-linux-headers-path=${STAGING_INCDIR_IMX} \
--libdir=${libdir} \
${@bb.utils.contains_any('PACKAGECONFIG', \
[ 'dma-heap-cached', 'dma-heap-uncached' ], \
'', '--with-dma-heap-allocator=no',d)} \
${PACKAGECONFIG_CONFARGS}"
# If imxdpu is in use, the DPU is also used for implementing
# libg2d. However, that implementation's g2d_alloc() function
# is broken, so we cannot use it.
LIBG2D_PACKAGECONFIG = "g2d"
LIBG2D_PACKAGECONFIG:imxdpu = ""
# The dma-heap allocator is special in that it can use more than one heap device
# node. In libimxdmabuffer, only heaps that allocate physically contiguous memory
# can be used, otherwise usable DMA buffers cannot be allocated. Furthermore,
# on NXP machines, there is a dma-heap for cached and one for uncached memory.
#
# One of them has to be selected by choosing either the "dma-heap-cached" or the
# "dma-heap-uncached" PACKAGECONFIG. The uncached one is picked by default for
# performance reasons (it does not suffer from cache coherence issues).
#
# Note that the uncached heap is not available prior to imx-kernel 5.15.5;
# older kernels can only use the cached one.
CACHED_DMA_HEAP_DEVICE_NODE_PATH = "/dev/dma_heap/linux,cma"
UNCACHED_DMA_HEAP_DEVICE_NODE_PATH = "/dev/dma_heap/linux,cma-uncached"
CACHED_DMA_HEAP_CONF = "--dma-heap-device-node-path=${CACHED_DMA_HEAP_DEVICE_NODE_PATH}"
UNCACHED_DMA_HEAP_CONF = "--dma-heap-device-node-path=${UNCACHED_DMA_HEAP_DEVICE_NODE_PATH} \
--dma-heap-uncached-memory"
PACKAGECONFIG ?= " "
PACKAGECONFIG:append:imxgpu2d = " ${LIBG2D_PACKAGECONFIG}"
PACKAGECONFIG:append:imxipu = " ipu"
PACKAGECONFIG:append:imxpxp = " pxp"
# All i.MX8 machines can use the dma-heap allocator. i.MX8m ones
# can also use the DWL allocator, though dma-heap is preferred.
# Vendor kernels that are older than kernel 5.6 cannot use
# dma-heap, however, and should use ion instead, since the
# former is not available pre-5.6. Out of the dma-heaps, we
# pick the uncached one by default (see above).
PACKAGECONFIG:append:mx8-nxp-bsp = " dma-heap-uncached"
PACKAGECONFIG:append:mx8mq-nxp-bsp = " dwl"
PACKAGECONFIG:append:mx8mm-nxp-bsp = " dwl"
PACKAGECONFIG:append:mx8mp-nxp-bsp = " dwl"
HANTRO_CONF = "--hantro-headers-path=${STAGING_INCDIR}/hantro_dec --hantro-decoder-version=G2"
PACKAGECONFIG[dwl] = "--with-dwl-allocator=yes ${HANTRO_CONF}, --with-dwl-allocator=no,imx-vpu-hantro"
PACKAGECONFIG[ion] = "--with-ion-allocator=yes, --with-ion-allocator=no,"
PACKAGECONFIG[ipu] = "--with-ipu-allocator=yes, --with-ipu-allocator=no,"
PACKAGECONFIG[g2d] = "--with-g2d-allocator=yes, --with-g2d-allocator=no,virtual/libg2d"
PACKAGECONFIG[pxp] = "--with-pxp-allocator=yes, --with-pxp-allocator=no,"
# --with-dma-heap-allocator=no is not added by these packageconfigs.
# Otherwise, it would always be added, since only one of these two
# dma-heap-* packageconfigs can be selected. Instead, that switch
# is added to EXTRA_OECONF above.
PACKAGECONFIG[dma-heap-cached] = "--with-dma-heap-allocator=yes ${CACHED_DMA_HEAP_CONF}, \
,,,,dma-heap-uncached"
PACKAGECONFIG[dma-heap-uncached] = "--with-dma-heap-allocator=yes ${UNCACHED_DMA_HEAP_CONF}, \
,,,,dma-heap-cached"
# Using do_install_ptest_base instead of do_install_ptest, since
# the default do_install_ptest_base is hardcoded to expect Makefiles.
do_install_ptest_base() {
install -D ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
install -m 0755 ${B}/test-alloc ${D}${PTEST_PATH}
}
COMPATIBLE_MACHINE = "(imx-nxp-bsp)"

View File

@@ -0,0 +1,28 @@
SUMMARY = "Firmwares and Standalone Applications"
LICENSE = "NXP-Binary-EULA"
LIC_FILES_CHKSUM = "file://EULA.txt;md5=86d76166990962fa552f840ff08e5798"
inherit deploy
SRC_URI = "git://github.com/nxp/qoriq-firmware-cortina.git;nobranch=1;protocol=https"
SRCREV = "9143c2a3adede595966583c00ca4edc99ec698cf"
S = "${WORKDIR}/git"
do_install () {
install -d ${D}/boot
cp -fr ${S}/* ${D}/boot
}
do_deploy () {
install -d ${DEPLOYDIR}/ls2-phy
cp -fr ${S}/* ${DEPLOYDIR}/ls2-phy
}
addtask deploy before do_build after do_install
PACKAGES += "${PN}-image"
FILES:${PN}-image += "/boot"
COMPATIBLE_MACHINE = "(qoriq)"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,45 @@
DESCRIPTION = "The Management Complex (MC) is a key component of DPAA"
SECTION = "mc-utils"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=386a6287daa6504b7e7e5014ddfb3987"
DEPENDS += "dtc-native"
inherit deploy
SRC_URI = "git://github.com/nxp-qoriq/mc-utils;protocol=https;nobranch=1"
SRCREV = "5ccc2688b72c4a05119a393cbe3573b5f81d10bc"
S = "${WORKDIR}/git"
MC_CFG ?= ""
MC_CFG:ls1088a = "ls1088a"
MC_CFG:ls2088a = "ls2088a"
MC_CFG:lx2160a = "lx2160a"
MC_CFG:lx2162a = "lx2162a"
MC_FLAVOUR ?= "${@oe.utils.ifelse(d.getVar('MACHINE').endswith('qds'), 'QDS', 'RDB')}"
MC_FOLDER ?= "${@d.getVar('MC_CFG').upper() + '-' + d.getVar('MC_FLAVOUR')}"
do_compile () {
oe_runmake -C config
}
do_install () {
install -d ${D}/boot/mc-utils
if [ -e ${S}/config/${MC_CFG}/${MC_FOLDER} ]; then
cp -r ${S}/config/${MC_CFG}/${MC_FOLDER}/* ${D}/boot/mc-utils/
fi
find ${D}/boot/mc-utils/ ! -name "*.dtb" ! -type d -exec rm {} \;
}
do_deploy () {
install -d ${DEPLOYDIR}/mc-utils
cp -r ${D}/boot/mc-utils/* ${DEPLOYDIR}/mc-utils/
}
addtask deploy after do_install
PACKAGES += "${PN}-image"
FILES:${PN}-image += "/boot"
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_MACHINE = "(qoriq-arm64)"

View File

@@ -0,0 +1,29 @@
From 2f2e1ca77b4459475e5d649bd22e6bc8c3873695 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 25 Sep 2018 01:23:02 -0700
Subject: [PATCH] Do not ignore OE cflags and ldflags
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index afb4e32..d2763ed 100644
--- a/Makefile
+++ b/Makefile
@@ -3,8 +3,8 @@ prefix ?= "/usr/local"
all: mxsldr
-CFLAGS = `pkg-config --cflags libusb-1.0`
-LDFLAGS = `pkg-config --libs libusb-1.0`
+CFLAGS += `pkg-config --cflags libusb-1.0`
+LDFLAGS += `pkg-config --libs libusb-1.0`
mxsldr: mxsldr.c
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ -lusb-1.0
--
2.19.0

View File

@@ -0,0 +1,26 @@
# Copyright (C) 2012 O.S. Systems Software LTDA.
# Released under the MIT license (see COPYING.MIT for the terms)
DESCRIPTION = "Freescale i.MX233/i.MX28 USB loader"
DEPENDS = "libusb1"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRCREV = "c40d80472525e1d57dae5317c028b745968c0399"
SRC_URI = "git://git.denx.de/mxsldr.git;branch=master \
file://0001-Do-not-ignore-OE-cflags-and-ldflags.patch \
"
PV = "0.0.0+git${SRCPV}"
S = "${WORKDIR}/git"
inherit pkgconfig
do_compile() {
oe_runmake
}
do_install() {
oe_runmake install DESTDIR="${D}"
}
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,35 @@
SUMMARY = "PPFE Linux firmware"
LICENSE = "NXP-Binary-EULA"
LIC_FILES_CHKSUM = "file://NXP-Binary-EULA.txt;md5=92723670f432558b9e2494ed177d2a85"
INHIBIT_DEFAULT_DEPS = "1"
inherit deploy
SRC_URI = "git://github.com/NXP/qoriq-engine-pfe-bin.git;nobranch=1;protocol=https"
SRCREV = "f55ee9f72090309bbb7ab71f48a498fc02909234"
S = "${WORKDIR}/git"
do_install () {
install -d ${D}${nonarch_base_libdir}/firmware
install -d ${D}/boot/engine-pfe-bin
install -m 644 ${S}/NXP-Binary-EULA.txt ${D}${nonarch_base_libdir}/firmware
install -m 755 ${S}/ls1012a/slow_path/*.elf ${D}${nonarch_base_libdir}/firmware
install -m 755 ${S}/ls1012a/u-boot/* ${D}/boot/engine-pfe-bin
}
do_deploy () {
install -d ${DEPLOYDIR}/engine-pfe-bin
cp -r ${D}/boot/engine-pfe-bin/* ${DEPLOYDIR}/engine-pfe-bin
}
addtask deploy after do_install
FILES:${PN} += "${nonarch_base_libdir}/firmware /boot/"
INSANE_SKIP:${PN} += "arch already-stripped"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
COMPATIBLE_MACHINE = "(ls1012a)"

View File

@@ -0,0 +1,29 @@
DESCRIPTION = "qe microcode binary"
SECTION = "qe-ucode"
LICENSE = "NXP-Binary-EULA"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c62f8109b4df15ca37ceeb5e4943626c"
inherit deploy
SRC_URI = "git://github.com/NXP/qoriq-qe-ucode.git;nobranch=1;protocol=https"
SRCREV= "c89d7843943fd3bd52aa5f1ff7a91200a2f7f63b"
S = "${WORKDIR}/git"
do_install () {
install -d ${D}/boot
install -m 644 ${B}/*.bin ${D}/boot
}
do_deploy () {
install -d ${DEPLOYDIR}/boot
install -m 644 ${B}/*.bin ${DEPLOYDIR}/boot
}
addtask deploy before do_build after do_install
PACKAGES += "${PN}-image"
FILES:${PN}-image += "/boot/*"
COMPATIBLE_MACHINE = "(qoriq)"
PACKAGE_ARCH = "${MACHINE_SOCARCH}"

View File

@@ -0,0 +1,43 @@
SUMMARY = "Reset Configuration Word"
DESCRIPTION = "Reset Configuration Word - hardware boot-time parameters for the QorIQ targets"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=44a0d0fad189770cc022af4ac6262cbe"
DEPENDS += "tcl-native"
inherit deploy siteinfo
SRC_URI = "git://github.com/nxp-qoriq/rcw;protocol=https;nobranch=1"
SRCREV = "64abe70cf0abab053c37db460c12e367e6adf7a4"
S = "${WORKDIR}/git"
export PYTHON = "${USRBINPATH}/python3"
M="${@d.getVar('MACHINE').replace('-64b','').replace('-32b','').replace('-${SITEINFO_ENDIANNESS}','')}"
BOARD_TARGETS="${M}"
BOARD_TARGETS:ls2088ardb="${M} ${M}_rev1.1"
BOARD_TARGETS:ls1088ardb-pb="ls1088ardb"
BOARD_TARGETS:lx2160ardb = "${M} ${M}_rev2"
BOARD_TARGETS:lx2160ardb-rev2 = "lx2160ardb_rev2"
do_compile () {
oe_runmake BOARDS="${BOARD_TARGETS}" DESTDIR=${D}/boot/rcw/
}
do_install () {
oe_runmake BOARDS="${BOARD_TARGETS}" DESTDIR=${D}/boot/rcw/ install
}
do_deploy () {
install -d ${DEPLOYDIR}/rcw
cp -r ${D}/boot/rcw/* ${DEPLOYDIR}/rcw/
}
addtask deploy after do_install
PACKAGES += "${PN}-image"
FILES:${PN}-image += "/boot"
COMPATIBLE_MACHINE = "(qoriq)"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,43 @@
# Fixup for the libubootenv which rely on uboot-config class for no good reason.
#
# This is not intended to be permanent but we need to get the integration
# working and there is no good solution for now so we are adding this in a
# non-intrusive way and using the `IMX_DEFAULT_BOOTLOADER` as a guard to do any
# code execution.
def fixup_uboot_config_dependency(d):
ubootmachine = d.getVar("UBOOT_MACHINE")
ubootconfig = (d.getVar('UBOOT_CONFIG') or "").split()
imx_default_bootloader = d.get('IMX_DEFAULT_BOOTLOADER')
if not ubootmachine and not ubootconfig and imx_default_bootloader:
# FIXME: We need to provide the UBOOT_MACHINE or UBOOT_CONFIG to allow libubootenv to
# build. This is caused by the commit below:
#
# ,----[ libubootenv change ]
# | commit 10aa1291979fb90bed1beb49be4d406ed0e1e4d5 ┃
# | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━
# | Author: Ming Liu <liu.ming50@gmail.com>
# | Date: Tue Aug 25 20:08:01 2020 +0200
# |
# | libubootenv: inherit uboot-config
# |
# | This mainly aims to involve in the sanity check of UBOOT_CONFIG and
# | UBOOT_MACHINE, it will throw a error message at recipe parsing time if
# | neither of them is set, and libubootenv would be skipped.
# |
# | Signed-off-by: Ming Liu <liu.ming50@gmail.com>
# | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
# `----
ubootmachine = d.getVar("UBOOT_MACHINE:pn-%s" % imx_default_bootloader)
ubootconfig = (d.getVar("UBOOT_CONFIG:pn-%s" % imx_default_bootloader) or "").split()
d.setVar("UBOOT_CONFIG", ubootconfig)
d.setVar("UBOOT_MACHINE", ubootmachine)
python fixup_uboot_config_dependency_handler() {
fixup_uboot_config_dependency(d)
}
fixup_uboot_config_dependency_handler[eventmask] = "bb.event.RecipePreFinalise"
addhandler fixup_uboot_config_dependency_handler

View File

@@ -0,0 +1,20 @@
# Copyright (C) 2012-2022 O.S. Systems Software LTDA.
# Released under the MIT license (see COPYING.MIT for the terms)
inherit fsl-u-boot-localversion
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://Licenses/README;md5=2ca5f2c35c8cc335f0a19756634782f1"
DEPENDS += "flex-native bison-native"
SRC_URI = "git://github.com/Freescale/u-boot-fslc.git;branch=${SRCBRANCH};protocol=https"
SRCREV = "aa4bc52d08c342df83e3c576e2c108d7c8816e0e"
SRCBRANCH = "2025.01+fslc"
PV = "2025.01+fslc+git${SRCPV}"
CVE_PRODUCT = "denx:u-boot"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"

View File

@@ -0,0 +1,42 @@
require u-boot-fslc-common_${PV}.inc
DESCRIPTION = "U-boot bootloader mxsboot tool"
SECTION = "bootloader"
inherit python3native
DEPENDS += " \
bison-native \
dtc \
gnutls \
openssl \
python3-setuptools-native \
swig-native \
util-linux-libuuid \
"
PROVIDES = "u-boot-mxsboot"
EXTRA_OEMAKE:class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y'
EXTRA_OEMAKE:class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y'
EXTRA_OEMAKE:class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y'
do_compile () {
oe_runmake -C ${S} O=${B} tools-only_defconfig
# Disable CONFIG_CMD_LICENSE, license.h is not used by tools and
# generating it requires bin2header tool, which for target build
# is built with target tools and thus cannot be executed on host.
sed -i "s/CONFIG_CMD_LICENSE=.*/# CONFIG_CMD_LICENSE is not set/" .config
oe_runmake -C ${S} O=${B} cross_tools NO_SDL=1
}
do_install () {
install -Dm 0755 tools/mxsboot ${D}${bindir}/uboot-mxsboot
ln -sf uboot-mxsboot ${D}${bindir}/mxsboot
}
COMPATIBLE_MACHINE:class-target = "(mxs-generic-bsp)"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,26 @@
require recipes-bsp/u-boot/u-boot.inc
require u-boot-fslc-common_${PV}.inc
DESCRIPTION = "U-Boot based on mainline U-Boot used by FSL Community BSP in \
order to provide support for some backported features and fixes, or because it \
was submitted for revision and it takes some time to become part of a stable \
version, or because it is not applicable for upstreaming."
DEPENDS += "bc-native dtc-native python3-setuptools-native gnutls-native"
PROVIDES += "u-boot u-boot-mfgtool"
B = "${WORKDIR}/build"
# FIXME: Allow linking of 'tools' binaries with native libraries
# used for generating the boot logo and other tools used
# during the build process.
EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CPPFLAGS}" \
HOSTLDFLAGS="${BUILD_LDFLAGS}" \
HOSTSTRIP=true'
inherit ${@oe.utils.ifelse(d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '1', 'imx-boot-container', '')}
inherit uuu_bootloader_tag
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_MACHINE = "(imx-generic-bsp)"

View File

@@ -0,0 +1,26 @@
DESCRIPTION = "i.MX U-Boot suppporting i.MX reference boards."
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/nxp-imx/uboot-imx.git;protocol=https;branch=${SRCBRANCH}"
SRCBRANCH = "lf_v2024.04"
LOCALVERSION ?= "-imx_v2024.04_6.6.52-2.2.0"
SRCREV = "6c4545203d123c246c5d7995f2893959506d28e0"
CVE_PRODUCT = "nxp:uboot_secondary_program_loader denx:u-boot"
DEPENDS += " \
bc-native \
bison-native \
dtc-native \
flex-native \
gnutls-native \
xxd-native \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
inherit fsl-u-boot-localversion
BOOT_TOOLS = "imx-boot-tools"

View File

@@ -0,0 +1,66 @@
# Copyright (C) 2013-2016 Freescale Semiconductor
# Copyright 2018 (C) O.S. Systems Software LTDA.
# Copyright (C) 2017-2024 NXP
require recipes-bsp/u-boot/u-boot.inc
require u-boot-imx-common_${PV}.inc
PROVIDES += "u-boot u-boot-mfgtool"
inherit uuu_bootloader_tag
# The UUU tag goes on the boot partition. For 8+, the boot partition image
# is imx-boot, so disable UUU-tagging here
UUU_BOOTLOADER:mx8-generic-bsp = ""
UUU_BOOTLOADER:mx9-generic-bsp = ""
do_deploy:append:mx8m-generic-bsp() {
# Deploy u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary
if [ -n "${UBOOT_CONFIG}" ]
then
for config in ${UBOOT_MACHINE}; do
i=$(expr $i + 1);
for type in ${UBOOT_CONFIG}; do
j=$(expr $j + 1);
if [ $j -eq $i ]
then
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${type}
UBOOT_DTB_NAME_FLAGS="${type}:${UBOOT_DTB_NAME}"
for key_value in ${UBOOT_DTB_NAME_FLAGS}; do
local type_key="${key_value%%:*}"
local dtb_name="${key_value#*:}"
if [ "$type_key" = "$type" ]
then
bbnote "UBOOT_CONFIG = $type, UBOOT_DTB_NAME = $dtb_name"
# There is only one ${dtb_name}, the first one. All the other are with the type appended
if [ ! -f "${DEPLOYDIR}/${BOOT_TOOLS}/${dtb_name}" ]; then
install -m 0644 ${B}/${config}/arch/arm/dts/${dtb_name} ${DEPLOYDIR}/${BOOT_TOOLS}/${dtb_name}
else
bbwarn "Use custom wks.in for $dtb_name = $type"
fi
install -m 0644 ${B}/${config}/arch/arm/dts/${dtb_name} ${DEPLOYDIR}/${BOOT_TOOLS}/${dtb_name}-${type}
fi
unset type_key
unset dtb_name
done
unset UBOOT_DTB_NAME_FLAGS
fi
done
unset j
done
unset i
fi
# Deploy CRT.* from u-boot for stmm
install -m 0644 ${S}/CRT.* ${DEPLOYDIR}
}
do_deploy:append:mx93-generic-bsp() {
# Deploy CRT.* from u-boot for stmm
install -m 0644 ${S}/CRT.* ${DEPLOYDIR}
}
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_MACHINE = "(mx6-generic-bsp|mx7-generic-bsp|mx8-generic-bsp|mx9-generic-bsp)"

View File

@@ -0,0 +1,98 @@
require recipes-bsp/u-boot/u-boot.inc
DESCRIPTION = "U-Boot provided by Freescale with focus on QorIQ boards"
PROVIDES += "u-boot"
inherit fsl-u-boot-localversion
LICENSE = "GPL-2.0-only & BSD-3-Clause & BSD-2-Clause & LGPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = " \
file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://Licenses/bsd-2-clause.txt;md5=6a31f076f5773aabd8ff86191ad6fdd5 \
file://Licenses/bsd-3-clause.txt;md5=4a1190eac56a9db675d58ebe86eaf50c \
file://Licenses/lgpl-2.0.txt;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c \
"
SRC_URI = "git://github.com/nxp-qoriq/u-boot;protocol=https;nobranch=1"
SRCREV= "1c0116f3da250c5a52858c53efb8b38c0963f477"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
PV:append = "+fslgit"
LOCALVERSION = "+fsl"
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS = "libgcc virtual/${TARGET_PREFIX}gcc bison-native bc-native swig-native python3-native python3-setuptools-native"
DEPENDS:append:qoriq-arm64 = " dtc-native"
DEPENDS:append:qoriq-arm = " dtc-native"
DEPENDS:append:qoriq-ppc = " boot-format-native"
python () {
if d.getVar("TCMODE") == "external-fsl":
return
ml = d.getVar("MULTILIB_VARIANTS")
arch = d.getVar("OVERRIDES")
if "e5500-64b:" in arch or "e6500-64b:" in arch:
if not "lib32" in ml:
raise bb.parse.SkipPackage("Building the u-boot for this arch requires multilib to be enabled")
sys_multilib = d.getVar('TARGET_VENDOR') + 'mllib32-linux'
sys_original = d.getVar('TARGET_VENDOR') + '-' + d.getVar('TARGET_OS')
workdir = d.getVar('WORKDIR')
d.setVar('DEPENDS:append', ' lib32-gcc-cross-powerpc lib32-libgcc')
d.setVar('PATH:append', ':' + d.getVar('STAGING_BINDIR_NATIVE') + '/powerpc' + sys_multilib)
d.setVar('TOOLCHAIN_OPTIONS', '--sysroot=' + workdir + '/lib32-recipe-sysroot')
d.setVar("WRAP_TARGET_PREFIX", 'powerpc' + sys_multilib + '-')
elif "fsl-lsch2-32b:" in arch:
if not "lib64" in ml:
raise bb.parse.SkipRecipe("Building the u-boot for this arch requires multilib to be enabled")
sys_multilib = d.getVar('TARGET_VENDOR') + 'mllib64-linux'
sys_original = d.getVar('TARGET_VENDOR') + '-' + d.getVar('TARGET_OS')
workdir = d.getVar('WORKDIR')
d.setVar('DEPENDS:append', ' lib64-gcc-cross-aarch64 lib64-libgcc')
d.setVar('PATH:append', ':' + d.getVar('STAGING_BINDIR_NATIVE') + '/aarch64' + sys_multilib)
d.setVar('TOOLCHAIN_OPTIONS', '--sysroot=' + workdir + '/lib64-recipe-sysroot')
d.setVar("WRAP_TARGET_PREFIX", 'aarch64' + sys_multilib + '-')
}
LE_UBOOT_FOR_ARMBE_TARGET ?= "0"
ENDIANNESS_GCC = "${@bb.utils.contains("LE_UBOOT_FOR_ARMBE_TARGET", "1", "-mlittle-endian", "", d)}"
ENDIANNESS_LD = "${@bb.utils.contains("LE_UBOOT_FOR_ARMBE_TARGET", "1", "-EL", "", d)}"
WRAP_TARGET_PREFIX ?= "${TARGET_PREFIX}"
EXTRA_OEMAKE = 'CROSS_COMPILE=${WRAP_TARGET_PREFIX} CC="${WRAP_TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${ENDIANNESS_GCC}" LD="${WRAP_TARGET_PREFIX}ld ${ENDIANNESS_LD}" V=1'
EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
do_compile:append:qoriq() {
unset i j k
for config in ${UBOOT_MACHINE}; do
i=`expr $i + 1`;
for type in ${UBOOT_CONFIG}; do
j=`expr $j + 1`;
for binary in ${UBOOT_BINARIES}; do
k=`expr $k + 1`
if [ $j -eq $i ] && [ $k -eq $i ]; then
if [ -n "${BOOTFORMAT_CONFIG}" ] && echo "${type}" |grep -q spi;then
# regenerate spi binary if BOOTFORMAT_CONFIG is set
boot_format ${STAGING_DATADIR_NATIVE}/boot_format/${BOOTFORMAT_CONFIG} \
${config}/u-boot-${type}.${UBOOT_SUFFIX} -spi ${config}/u-boot.format.bin
cp ${config}/u-boot.format.bin ${config}/u-boot-${type}.${UBOOT_SUFFIX}
elif [ "qspi" = "${type}" ];then
cp ${config}/${binary} ${config}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
fi
fi
done
unset k
done
unset j
done
unset i
}
PACKAGES += "${PN}-images"
FILES:${PN}-images += "/boot"
COMPATIBLE_MACHINE = "(qoriq)"

View File

@@ -0,0 +1,35 @@
DESCRIPTION = "Unified Extensible Firmware Interface"
SECTION = "bootloaders"
LICENSE = "NXP-Binary-EULA"
LIC_FILES_CHKSUM = "file://NXP-Binary-EULA;md5=343ec8f06efc37467a6de53686fa6315"
inherit deploy
SRC_URI = "git://github.com/NXP/qoriq-uefi-binary.git;nobranch=1;protocol=https"
SRCREV = "55789d536850e00c6f2284fb28eaf21712cd276b"
S = "${WORKDIR}/git"
do_install () {
if [ -d ${B}/${MACHINE} ]; then
install -d ${D}/uefi
cp -r ${B}/grub ${D}/uefi
cp -r ${B}/${MACHINE} ${D}/uefi
fi
}
do_deploy () {
if [ -d ${B}/${MACHINE} ]; then
install -d ${DEPLOYDIR}/uefi
cp -r ${B}/grub ${DEPLOYDIR}/uefi
cp -r ${B}/${MACHINE} ${DEPLOYDIR}/uefi
fi
}
addtask deploy before do_build after do_install
PACKAGES += "${PN}-image"
FILES:${PN}-image += "/uefi/*"
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
COMPATIBLE_MACHINE = "(qoriq)"