meta-freescale/recipes-bsp/imx-atf/imx-atf_2.10.bb
Max Krummenacher b747b01501 global: whinlatter updates for WORKDIR/UNPACKDIR and git fetch location
The series [1] changed the way sources are fetched/unpacked and
S needs to follow that. Additionally for git repos it moved away from
having 'git/' as the checkout directory.

This has been partly tested by building weston based image for
imx6/imx6ull/imx7/imx8/imx8mm/imx8mp/imx95 based images.
E.g. none of the recipes specific for qoriq is built time tested.

As walnascar is no longer compatible with master/whinlatter drop
it from LAYERSERIES_COMPAT.

[1] https://lore.kernel.org/openembedded-core/20250616095000.2918921-1-alex.kanavin@gmail.com/

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2025-06-28 18:58:39 +02:00

82 lines
2.5 KiB
BlitzBasic

# 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} \
file://0001-imx93-trdc-Fix-header-guard.patch"
SRCBRANCH = "lf_v2.10"
SRCREV = "78a14c75a06dea39036c44ae0f9d23acc7bcaef2"
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/cross-cc"
# 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)"