blob: 02bbc73263580051d78f4ffe87e2a34f400cbad2 [file] [log] [blame]
Brad Bishop286d45c2018-10-02 15:21:57 -04001DESCRIPTION = "ARM Trusted Firmware"
2
3LICENSE = "BSD"
4LIC_FILES_CHKSUM = "file://license.rst;md5=33065335ea03d977d0569f270b39603e"
5
6PROVIDES = "virtual/arm-trusted-firmware"
7
8inherit deploy
9
10DEPENDS += "u-boot-mkimage-native"
11
12S = "${WORKDIR}/git"
13B = "${WORKDIR}/build"
14
15XILINX_RELEASE_VERSION ?= ""
16ATF_VERSION ?= "1.4"
17ATF_VERSION_EXTENSION ?= "-xilinx-${XILINX_RELEASE_VERSION}"
18PV = "${ATF_VERSION}${ATF_VERSION_EXTENSION}+git${SRCPV}"
19
20BRANCH ?= ""
21REPO ?= "git://github.com/Xilinx/arm-trusted-firmware.git;protocol=https"
22BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}"
23SRC_URI = "${REPO};${BRANCHARG}"
24
25ATF_BASE_NAME ?= "${PN}-${PKGE}-${PKGV}-${PKGR}-${DATETIME}"
26ATF_BASE_NAME[vardepsexclude] = "DATETIME"
27
28COMPATIBLE_MACHINE = "zynqmp"
29PLATFORM_zynqmp = "zynqmp"
30
31# requires CROSS_COMPILE set by hand as there is no configure script
32export CROSS_COMPILE="${TARGET_PREFIX}"
33
34# Let the Makefile handle setting up the CFLAGS and LDFLAGS as it is a standalone application
35CFLAGS[unexport] = "1"
36LDFLAGS[unexport] = "1"
37AS[unexport] = "1"
38LD[unexport] = "1"
39
40do_configure() {
41 :
42}
43
44do_compile() {
45 oe_runmake -C ${S} BUILD_BASE=${B} PLAT=${PLATFORM} RESET_TO_BL31=1 bl31
46}
47
48do_install() {
49 :
50}
51
52OUTPUT_DIR = "${B}/${PLATFORM}/release"
53
54do_deploy() {
55 install -d ${DEPLOYDIR}
56 install -m 0644 ${OUTPUT_DIR}/bl31/bl31.elf ${DEPLOYDIR}/${ATF_BASE_NAME}.elf
57 ln -sf ${ATF_BASE_NAME}.elf ${DEPLOYDIR}/${PN}.elf
58 install -m 0644 ${OUTPUT_DIR}/bl31.bin ${DEPLOYDIR}/${ATF_BASE_NAME}.bin
59 ln -sf ${ATF_BASE_NAME}.bin ${DEPLOYDIR}/${PN}.bin
60
61 # Get the entry point address from the elf.
62 BL31_BASE_ADDR=$(${READELF} -h ${OUTPUT_DIR}/bl31/bl31.elf | egrep -m 1 -i "entry point.*?0x" | sed -r 's/.*?(0x.*?)/\1/g')
63 mkimage -A arm64 -O arm-trusted-firmware -T kernel -C none \
64 -a $BL31_BASE_ADDR -e $BL31_BASE_ADDR \
65 -d ${OUTPUT_DIR}/bl31.bin ${DEPLOYDIR}/${ATF_BASE_NAME}.ub
66 ln -sf ${ATF_BASE_NAME}.ub ${DEPLOYDIR}/${PN}.ub
67 ln -sf ${ATF_BASE_NAME}.ub ${DEPLOYDIR}/atf-uboot.ub
68}
69addtask deploy before do_build after do_compile