tf-a-tools: fix building

- disabling the target build as it is a native tool
- use the EXTRA_OEMAKE for the make arguments
- RDEPENDS and FILES is not needed
- don't run do_configure and use the default do_compile
- openssl is need for native and nativesdk

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
This commit is contained in:
Jose Quaresma 2022-08-23 20:27:09 +00:00 committed by Christophe Priouzeau
parent 00c2494b66
commit 281a8202bd
3 changed files with 83 additions and 19 deletions

View File

@ -1,7 +1,7 @@
From 63e10c11b0fb33e0343d6ffc81fd214e81903f36 Mon Sep 17 00:00:00 2001 From f8cc9fc84827c03cecc9059dff254cb39d224696 Mon Sep 17 00:00:00 2001
From: Lionel Debieve <lionel.debieve@st.com> From: Lionel Debieve <lionel.debieve@st.com>
Date: Tue, 19 Jan 2021 15:40:36 +0100 Date: Tue, 19 Jan 2021 15:40:36 +0100
Subject: [PATCH] tools: allow to use a root key password from command line Subject: [PATCH 1/2] tools: allow to use a root key password from command line
By defining the ROT_KEY_PWD, user is able to define the private By defining the ROT_KEY_PWD, user is able to define the private
root key password. Useful for build system management. root key password. Useful for build system management.
@ -126,5 +126,5 @@ index b39378ca9..71bf85722 100644
continue; continue;
} }
-- --
2.25.1 2.34.1

View File

@ -0,0 +1,65 @@
From 1a9c13100d869ea94a7b987b4f502025c87b3b77 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Mon, 25 Oct 2021 12:27:59 +0100
Subject: [PATCH 2/2] fix(fiptool): respect OPENSSL_DIR
fiptool links to libcrypto, so as with the other tools it should respect
OPENSSL_DIR for include/library paths.
Change-Id: Icd8c15fa5097db1da9a3a9222d9e267548c4c7e2
Signed-off-by: Ross Burton <ross.burton@arm.com>
Upstream-Status: Backport [https://github.com/ARM-software/arm-trusted-firmware/commit/dd14d0f63f7d049cbcbfd3f8128f05e9a351bbe5]
Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
Makefile | 2 +-
tools/fiptool/Makefile | 6 ++++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 73007b413..fd60b5fba 100644
--- a/Makefile
+++ b/Makefile
@@ -1427,7 +1427,7 @@ fwu_fip: ${BUILD_PLAT}/${FWU_FIP_NAME}
${FIPTOOL}: FORCE
ifdef UNIX_MK
- ${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" FIPTOOL=${FIPTOOL} --no-print-directory -C ${FIPTOOLPATH}
+ ${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" FIPTOOL=${FIPTOOL} OPENSSL_DIR=${OPENSSL_DIR} --no-print-directory -C ${FIPTOOLPATH}
else
# Clear the MAKEFLAGS as we do not want
# to pass the gnumake flags to nmake.
diff --git a/tools/fiptool/Makefile b/tools/fiptool/Makefile
index 11d2e7b0b..7c2a08379 100644
--- a/tools/fiptool/Makefile
+++ b/tools/fiptool/Makefile
@@ -12,6 +12,8 @@ FIPTOOL ?= fiptool${BIN_EXT}
PROJECT := $(notdir ${FIPTOOL})
OBJECTS := fiptool.o tbbr_config.o
V ?= 0
+OPENSSL_DIR := /usr
+
override CPPFLAGS += -D_GNU_SOURCE -D_XOPEN_SOURCE=700
HOSTCCFLAGS := -Wall -Werror -pedantic -std=c99
@@ -20,7 +22,7 @@ ifeq (${DEBUG},1)
else
HOSTCCFLAGS += -O2
endif
-LDLIBS := -lcrypto
+LDLIBS := -L${OPENSSL_DIR}/lib -lcrypto
ifeq (${V},0)
Q := @
@@ -28,7 +30,7 @@ else
Q :=
endif
-INCLUDE_PATHS := -I../../include/tools_share
+INCLUDE_PATHS := -I../../include/tools_share -I${OPENSSL_DIR}/include
HOSTCC ?= gcc
--
2.34.1

View File

@ -2,31 +2,30 @@ SUMMARY = "Cert_create & Fiptool for fip generation for Trusted Firmware-A"
LICENSE = "BSD-3-Clause" LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://license.rst;md5=1dd070c98a281d18d9eefd938729b031" LIC_FILES_CHKSUM = "file://license.rst;md5=1dd070c98a281d18d9eefd938729b031"
SRC_URI = "git://github.com/ARM-software/arm-trusted-firmware.git;protocol=https;nobranch=1" SRC_URI = "git://github.com/ARM-software/arm-trusted-firmware.git;protocol=https;branch=master \
#SRCREV corresponds to v2.6 file://0001-tools-allow-to-use-a-root-key-password-from-command-.patch \
file://0002-fix-fiptool-respect-OPENSSL_DIR.patch \
"
SRCREV = "a1f02f4f3daae7e21ee58b4c93ec3e46b8f28d15" SRCREV = "a1f02f4f3daae7e21ee58b4c93ec3e46b8f28d15"
# Mandatory fix to allow feeding password through command line DEPENDS = "openssl"
SRC_URI += "file://0099-tools-allow-to-use-a-root-key-password-from-command-.patch"
DEPENDS:class-nativesdk = "nativesdk-openssl" COMPATIBLE_HOST:class-target = "null"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
do_compile() { EXTRA_OEMAKE += "V=1 HOSTCC='${BUILD_CC}' OPENSSL_DIR='${STAGING_EXECPREFIXDIR}'"
oe_runmake certtool fiptool EXTRA_OEMAKE += "certtool fiptool"
}
do_configure[noexec] = "1"
do_install() { do_install() {
install -d ${D}${bindir} install -d ${D}${bindir}
# cert_create install -m 0755 \
install -m 0755 ${B}/tools/cert_create/cert_create ${D}${bindir}/cert_create ${B}/tools/fiptool/fiptool \
# fiptool ${B}/tools/cert_create/cert_create \
install -m 0755 ${B}/tools/fiptool/fiptool ${D}${bindir}/fiptool ${D}${bindir}
} }
FILES:${PN}:class-nativesdk = "${bindir}/cert_create ${bindir}/fiptool"
RDEPENDS:${PN}:class-nativesdk += "nativesdk-libcrypto"
BBCLASSEXTEND += "native nativesdk" BBCLASSEXTEND += "native nativesdk"