TF-A-STM32MP: update to v2.0.0 (v2.2-stm32mp-r1)
Change-Id: If6d1e5b3b9fdfc81e8fe77ca2a338b9b124f5209
This commit is contained in:
1 parent
a16cd6da88
commit
b698195170
10 files changed
+26544
-39996
No files matched your search
@@ -18,100 +18,103 @@ archiver_create_makefile_for_sdk() {
|
||||
done
|
||||
|
||||
mkdir -p ${ARCHIVER_OUTDIR}
|
||||
#remove default variable
|
||||
echo "LDFLAGS=" > ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "CFLAGS=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "CPPFLAGS=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "CC=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "CPP=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "AS=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "AR=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "LD=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "NM=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
cat << EOF > ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
#remove default variable
|
||||
LDFLAGS=
|
||||
CFLAGS=
|
||||
CPPFLAGS=
|
||||
CC=
|
||||
CPP=
|
||||
AS=
|
||||
AR=
|
||||
LD=
|
||||
NM=
|
||||
|
||||
echo "LOCAL_PATH=\$(PWD)" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
LOCAL_PATH=\$(PWD)
|
||||
|
||||
echo "EXTRA_OEMAKE=${EXTRA_OEMAKE}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
EXTRA_OEMAKE=${EXTRA_OEMAKE}
|
||||
EXTRA_OEMAKE_SERIAL=$(subst STM32MP_SDMMC=1 STM32MP_EMMC=1 STM32MP_SPI_NOR=1 STM32MP_RAW_NAND=1 STM32MP_SPI_NAND=1,,${EXTRA_OEMAKE}) STM32MP_UART_PROGRAMMER=1 STM32MP_USB_PROGRAMMER=1
|
||||
|
||||
# Set default config
|
||||
echo "ELF_DEBUG_ENABLE ?= ${ELF_DEBUG_ENABLE}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "TF_A_CONFIG ?= ${TF_A_CONFIG}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
# Set specific OEMAKE config
|
||||
echo "TF_A_CONFIG_OEMAKE = ${tf_a_config_oemake}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
# Set default config
|
||||
ELF_DEBUG_ENABLE ?= ${ELF_DEBUG_ENABLE}
|
||||
TF_A_CONFIG ?= ${TF_A_CONFIG} serialboot
|
||||
|
||||
# Set default TFA_DEVICETREE with configured TF_A_DEVICETREE
|
||||
if [ -n "${TF_A_DEVICETREE}" ]; then
|
||||
echo "TFA_DEVICETREE ?= ${TF_A_DEVICETREE}" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
else
|
||||
echo "TFA_DEVICETREE ?=" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
fi
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
# Set specific OEMAKE config
|
||||
TF_A_CONFIG_OEMAKE = ${tf_a_config_oemake} serialboot,"AARCH32_SP=sp_min"
|
||||
# Set default TFA_DEVICETREE
|
||||
TFA_DEVICETREE ?= ${TF_A_DEVICETREE}
|
||||
|
||||
echo "help:" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo \"Available targets:\"" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo \" all : build TF-A binaries for defined config(s)\"" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo \" clean : clean build directories from generated files\"" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo \"TF-A configuration:\"" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo \" TF_A_CONFIG = \$(TF_A_CONFIG)\"" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo \" TFA_DEVICETREE = \$(TFA_DEVICETREE)\"" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo \" ELF_DEBUG_ENABLE = '\$(ELF_DEBUG_ENABLE)' ('1' to export elf files)\"" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @echo" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
#Set default TF_A_ENABLE_DEBUG_WRAPPER
|
||||
TF_A_ENABLE_DEBUG_WRAPPER ?= ${TF_A_ENABLE_DEBUG_WRAPPER}
|
||||
|
||||
echo "all: tf" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
help:
|
||||
@echo
|
||||
@echo "Available targets:"
|
||||
@echo " all : build TF-A binaries for defined config(s)"
|
||||
@echo " clean : clean build directories from generated files"
|
||||
@echo
|
||||
@echo "TF-A configuration:"
|
||||
@echo " TF_A_CONFIG = \$(TF_A_CONFIG)"
|
||||
@echo " TFA_DEVICETREE = \$(TFA_DEVICETREE)"
|
||||
@echo " ELF_DEBUG_ENABLE = '\$(ELF_DEBUG_ENABLE)' ('1' to export elf files)"
|
||||
@echo " TF_A_ENABLE_DEBUG_WRAPPER = '\$(TF_A_ENABLE_DEBUG_WRAPPER)' ('1' to generate tf-a for debugging)"
|
||||
@echo
|
||||
|
||||
echo "host_tools:" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @\$(MAKE) --no-print-directory -C \$(LOCAL_PATH)/tools/stm32image" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
all: tf
|
||||
|
||||
echo "tf: host_tools" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " for config in \$(TF_A_CONFIG) ; do \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
# Init any extraoemake
|
||||
echo " add_extraoemake= ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " for fullconfig in \$(TF_A_CONFIG_OEMAKE) ; do \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " extraconfig=\$\$(echo \$\$fullconfig | cut -d',' -f1) ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " if [ \"\$\$extraconfig\" = \"\$\$config\" ]; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " add_extraoemake=\$\$(echo \$\$fullconfig | cut -d',' -f2) ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " fi ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " done ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " mkdir -p \$(LOCAL_PATH)/../build/\$\$config ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " if test -n \"\$(TFA_DEVICETREE)\" ; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " for dt in \$(TFA_DEVICETREE) ; do \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " \$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) DTB_FILE_NAME=\$\$dt.dtb BUILD_PLAT=\$(LOCAL_PATH)/../build/\$\$config \$\$add_extraoemake ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
# Copy binary file with explicit name
|
||||
echo " cp -f \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-\$\$dt.${TF_A_SUFFIX} \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-\$\$dt-\$\$config.${TF_A_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " done ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " else \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " \$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) BUILD_PLAT=\$(LOCAL_PATH)/../build/\$\$config \$\$add_extraoemake; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
# Copy binary file with explicit name
|
||||
echo " tf_version=\$\$(find \$(LOCAL_PATH)/../build/\$\$config -name ${TF_A_BASENAME}*.${TF_A_SUFFIX} -exec basename {} \; | sed \"s/\.${TF_A_SUFFIX}//\") ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " cp -f \$(LOCAL_PATH)/../build/\$\$config/\$\$tf_version.${TF_A_SUFFIX} \$(LOCAL_PATH)/../build/\$\$config/\$\$tf_version-\$\$config.${TF_A_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " fi ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
# Copy elf files with explicit name
|
||||
echo " if [ \"\$(ELF_DEBUG_ENABLE)\" = \"1\" ] ; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " if [ -f \$(LOCAL_PATH)/../build/\$\$config/${BL1_ELF} ] ; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " cp -f \$(LOCAL_PATH)/../build/\$\$config/${BL1_ELF} \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-${BL1_BASENAME}-\$\$config.${TF_A_ELF_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " fi ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " if [ -f \$(LOCAL_PATH)/../build/\$\$config/${BL2_ELF} ] ; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " cp -f \$(LOCAL_PATH)/../build/\$\$config/${BL2_ELF} \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-${BL2_BASENAME}-\$\$config.${TF_A_ELF_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " fi ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " if [ -f \$(LOCAL_PATH)/../build/\$\$config/${BL32_ELF} ] ; then \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " cp -f \$(LOCAL_PATH)/../build/\$\$config/${BL32_ELF} \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-${BL32_BASENAME}-\$\$config.${TF_A_ELF_SUFFIX} ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " fi ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " fi ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " done" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo "" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
host_tools:
|
||||
@\$(MAKE) --no-print-directory -C \$(LOCAL_PATH)/tools/stm32image
|
||||
|
||||
echo "clean:" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " @for config in \$(TF_A_CONFIG) ; do \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " rm -rf \$(LOCAL_PATH)/../build/\$\$config ; \\" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
echo " done" >> ${ARCHIVER_OUTDIR}/Makefile.sdk
|
||||
tf: host_tools
|
||||
for config in \$(TF_A_CONFIG) ; do \\
|
||||
# Init any extraoemake \\
|
||||
add_extraoemake= ; \\
|
||||
for fullconfig in \$(TF_A_CONFIG_OEMAKE) ; do \\
|
||||
extraconfig=\$\$(echo \$\$fullconfig | cut -d',' -f1) ; \\
|
||||
if [ "\$\$extraconfig" = "\$\$config" ]; then \\
|
||||
add_extraoemake=\$\$(echo \$\$fullconfig | cut -d',' -f2) ; \\
|
||||
fi ; \\
|
||||
done ; \\
|
||||
mkdir -p \$(LOCAL_PATH)/../build/\$\$config ; \\
|
||||
if test -n "\$(TFA_DEVICETREE)" ; then \\
|
||||
for dt in \$(TFA_DEVICETREE) ; do \\
|
||||
if [ "\$(TF_A_CONFIG)" != "serialboot" ]; then \\
|
||||
\$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) DTB_FILE_NAME=\$\$dt.dtb BUILD_PLAT=\$(LOCAL_PATH)/../build/\$\$config \$\$add_extraoemake ; \\
|
||||
else \\
|
||||
\$(MAKE) \$(EXTRA_OEMAKE_SERIAL) -C \$(LOCAL_PATH) DTB_FILE_NAME=\$\$dt.dtb BUILD_PLAT=\$(LOCAL_PATH)/../build/\$\$config \$\$add_extraoemake ; \\
|
||||
fi \\
|
||||
# Copy binary file with explicit name \\
|
||||
cp -f \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-\$\$dt.${TF_A_SUFFIX} \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-\$\$dt-\$\$config.${TF_A_SUFFIX} ; \\
|
||||
if [ "\$(TF_A_ENABLE_DEBUG_WRAPPER)" = "1" ]; then \\
|
||||
# Generate wrapper for debugging \\
|
||||
stm32wrapper4dbg -s \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-\$\$dt.${TF_A_SUFFIX} -d \$(LOCAL_PATH)/../build/\$\$config/debug-${TF_A_BASENAME}-\$\$dt-\$\$config.${TF_A_SUFFIX} ; \\
|
||||
fi \\
|
||||
done ; \\
|
||||
else \\
|
||||
\$(MAKE) \$(EXTRA_OEMAKE) -C \$(LOCAL_PATH) BUILD_PLAT=\$(LOCAL_PATH)/../build/\$\$config \$\$add_extraoemake; \\
|
||||
tf_version=\$\$(find \$(LOCAL_PATH)/../build/\$\$config -name ${TF_A_BASENAME}*.${TF_A_SUFFIX} -exec basename {} \; | sed "s/\.${TF_A_SUFFIX}//") ; \\
|
||||
# Copy binary file with explicit name \\
|
||||
cp -f \$(LOCAL_PATH)/../build/\$\$config/\$\$tf_version.${TF_A_SUFFIX} \$(LOCAL_PATH)/../build/\$\$config/\$\$tf_version-\$\$config.${TF_A_SUFFIX} ; \\
|
||||
if [ "\$(TF_A_ENABLE_DEBUG_WRAPPER)" = "1" ]; then \\
|
||||
# Generate wrapper for debugging \\
|
||||
stm32wrapper4dbg -s \$(LOCAL_PATH)/../build/\$\$config/\$\$tf_version.${TF_A_SUFFIX} \$(LOCAL_PATH)/../build/\$\$config/debug-\$\$tf_version-\$\$config.${TF_A_SUFFIX} ; \\
|
||||
fi \\
|
||||
fi ; \\
|
||||
# Copy elf files with explicit name \\
|
||||
if [ "\$(ELF_DEBUG_ENABLE)" = "1" ] ; then \\
|
||||
if [ -f \$(LOCAL_PATH)/../build/\$\$config/${BL2_ELF} ] ; then \\
|
||||
cp -f \$(LOCAL_PATH)/../build/\$\$config/${BL2_ELF} \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-${BL2_BASENAME}-\$\$config.${TF_A_ELF_SUFFIX} ; \\
|
||||
fi ; \\
|
||||
if [ -f \$(LOCAL_PATH)/../build/\$\$config/${BL32_ELF} ] ; then \\
|
||||
cp -f \$(LOCAL_PATH)/../build/\$\$config/${BL32_ELF} \$(LOCAL_PATH)/../build/\$\$config/${TF_A_BASENAME}-${BL32_BASENAME}-\$\$config.${TF_A_ELF_SUFFIX} ; \\
|
||||
fi ; \\
|
||||
fi ; \\
|
||||
done
|
||||
|
||||
clean:
|
||||
@for config in \$(TF_A_CONFIG) ; do \\
|
||||
rm -rf \$(LOCAL_PATH)/../build/\$\$config ; \\
|
||||
done
|
||||
EOF
|
||||
}
|
||||
do_ar_original[prefuncs] += "tfaconfig_env archiver_create_makefile_for_sdk"
|
||||
@@ -11,6 +11,13 @@ B = "${WORKDIR}/build"
|
||||
EXTERNALSRC_BUILD_pn-${PN} = "${WORKDIR}/build"
|
||||
|
||||
DEPENDS += "dtc-native"
|
||||
DEPENDS_append = " ${@bb.utils.contains('TF_A_ENABLE_DEBUG_WRAPPER', '1', 'stm32wrapper4dbg-native', '', d)}"
|
||||
|
||||
# Extra make settings
|
||||
EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX}'
|
||||
# Debug support
|
||||
EXTRA_OEMAKE += 'DEBUG=1'
|
||||
EXTRA_OEMAKE += 'LOG_LEVEL=40'
|
||||
|
||||
# Define default TF-A namings
|
||||
TF_A_BASENAME ?= "tf-a"
|
||||
@@ -32,21 +39,15 @@ BL32_NAME ?= "bl32/bl32"
|
||||
BL32_ELF = "${BL32_NAME}.${TF_A_ELF_SUFFIX}"
|
||||
BL32_BASENAME = "${@os.path.basename(d.getVar("BL32_NAME"))}"
|
||||
|
||||
# Extra make settings
|
||||
EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX}'
|
||||
EXTRA_OEMAKE += 'PLAT=stm32mp1'
|
||||
EXTRA_OEMAKE += 'ARCH=aarch32'
|
||||
EXTRA_OEMAKE += 'ARM_ARCH_MAJOR=7'
|
||||
|
||||
# Debug support
|
||||
EXTRA_OEMAKE += 'DEBUG=1'
|
||||
EXTRA_OEMAKE += "LOG_LEVEL=40"
|
||||
|
||||
# Set default TF-A config
|
||||
TF_A_CONFIG ?= ""
|
||||
|
||||
#Enable the wrapper for debug
|
||||
TF_A_ENABLE_DEBUG_WRAPPER ??= "1"
|
||||
|
||||
# -----------------------------------------------
|
||||
# Enable use of work-shared folder
|
||||
TFA_SHARED_SOURCES ??= "1"
|
||||
STAGING_TFA_DIR = "${TMPDIR}/work-shared/${MACHINE}/tfa-source"
|
||||
# Make sure to move ${S} to STAGING_TFA_DIR. We can't just
|
||||
# create the symlink in advance as the git fetcher can't cope with
|
||||
@@ -60,25 +61,26 @@ base_do_unpack_append () {
|
||||
if d.getVar('STAGING_TFA_DIR', d):
|
||||
d.setVar('STAGING_TFA_DIR', '${S}')
|
||||
|
||||
# Copy/Paste from kernel class with adaptation to TFA var
|
||||
s = d.getVar("S")
|
||||
if s[-1] == '/':
|
||||
# drop trailing slash, so that os.symlink(tfasrc, s) doesn't use s as directory name and fail
|
||||
s=s[:-1]
|
||||
tfasrc = d.getVar("STAGING_TFA_DIR")
|
||||
if s != tfasrc:
|
||||
bb.utils.mkdirhier(tfasrc)
|
||||
bb.utils.remove(tfasrc, recurse=True)
|
||||
if d.getVar("EXTERNALSRC"):
|
||||
# With EXTERNALSRC S will not be wiped so we can symlink to it
|
||||
os.symlink(s, tfasrc)
|
||||
else:
|
||||
import shutil
|
||||
shutil.move(s, tfasrc)
|
||||
os.symlink(tfasrc, s)
|
||||
shared = d.getVar("TFA_SHARED_SOURCES")
|
||||
if shared and oe.types.boolean(shared):
|
||||
# Copy/Paste from kernel class with adaptation to TFA var
|
||||
s = d.getVar("S")
|
||||
if s[-1] == '/':
|
||||
# drop trailing slash, so that os.symlink(tfasrc, s) doesn't use s as directory name and fail
|
||||
s=s[:-1]
|
||||
tfasrc = d.getVar("STAGING_TFA_DIR")
|
||||
if s != tfasrc:
|
||||
bb.utils.mkdirhier(tfasrc)
|
||||
bb.utils.remove(tfasrc, recurse=True)
|
||||
if d.getVar("EXTERNALSRC"):
|
||||
# With EXTERNALSRC S will not be wiped so we can symlink to it
|
||||
os.symlink(s, tfasrc)
|
||||
else:
|
||||
import shutil
|
||||
shutil.move(s, tfasrc)
|
||||
os.symlink(tfasrc, s)
|
||||
}
|
||||
|
||||
|
||||
# Manage to export any specific setting for defined configs
|
||||
python tfaconfig_env () {
|
||||
if d.getVar('TF_A_CONFIG'):
|
||||
@@ -106,13 +108,20 @@ do_compile() {
|
||||
for dt in ${TF_A_DEVICETREE}; do
|
||||
oe_runmake -C ${S} DTB_FILE_NAME=${dt}.dtb BUILD_PLAT=${B}/${config} ${add_extraoemake}
|
||||
cp ${B}/${config}/${TF_A_BASENAME}-${dt}.${TF_A_SUFFIX} ${B}/${config}/${TF_A_BASENAME}-${dt}-${config}.${TF_A_SUFFIX}
|
||||
if [ "${TF_A_ENABLE_DEBUG_WRAPPER}" = "1" ]; then
|
||||
stm32wrapper4dbg -s ${B}/${config}/${TF_A_BASENAME}-${dt}.${TF_A_SUFFIX} -d ${B}/${config}/debug-${TF_A_BASENAME}-${dt}-${config}.${TF_A_SUFFIX}
|
||||
fi
|
||||
done
|
||||
else
|
||||
oe_runmake -C ${S} BUILD_PLAT=${B}/${config} ${add_extraoemake}
|
||||
tf_a_binary_basename=$(find ${B}/${config} -name "${TF_A_BASENAME}-*.${TF_A_SUFFIX}" -exec basename {} \; | sed 's|\.'"${TF_A_SUFFIX}"'||g')
|
||||
if [ "${TF_A_ENABLE_DEBUG_WRAPPER}" = "1" ]; then
|
||||
stm32wrapper4dbg -s ${B}/${config}/${tf_a_binary_basename}.${TF_A_SUFFIX} -d ${B}/${config}/debug-${tf_a_binary_basename}.${TF_A_SUFFIX}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}/arm-trusted-firmware"
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}
|
||||
|
||||
@@ -120,11 +129,21 @@ do_deploy() {
|
||||
if [ -n "${TF_A_DEVICETREE}" ]; then
|
||||
for dt in ${TF_A_DEVICETREE}; do
|
||||
install -m 644 ${B}/${config}/${TF_A_BASENAME}-${dt}-${config}.${TF_A_SUFFIX} ${DEPLOYDIR}
|
||||
if [ "${TF_A_ENABLE_DEBUG_WRAPPER}" = "1" ]; then
|
||||
install -d ${DEPLOYDIR}/debug
|
||||
install -m 644 ${B}/${config}/debug-${TF_A_BASENAME}-${dt}-${config}.${TF_A_SUFFIX} ${DEPLOYDIR}/debug
|
||||
fi
|
||||
done
|
||||
else
|
||||
# Get tf-a binary basename to copy
|
||||
tf_a_binary_basename=$(find ${B}/${config} -name "${TF_A_BASENAME}-*.${TF_A_SUFFIX}" -exec basename {} \; | sed 's|\.'"${TF_A_SUFFIX}"'||g')
|
||||
install -m 644 ${B}/${config}/${tf_a_binary_basename}.${TF_A_SUFFIX} ${DEPLOYDIR}/${tf_a_binary_basename}-${config}.${TF_A_SUFFIX}
|
||||
for f in ${tf_a_binary_basename}; do
|
||||
install -m 644 ${B}/${config}/${f}.${TF_A_SUFFIX} ${DEPLOYDIR}/${f}-${config}.${TF_A_SUFFIX}
|
||||
if [ "${TF_A_ENABLE_DEBUG_WRAPPER}" = "1" ]; then
|
||||
install -d ${DEPLOYDIR}/debug
|
||||
install -m 644 ${B}/${config}/debug-${f}.${TF_A_SUFFIX} ${DEPLOYDIR}/debug/debug-${f}-${config}.${TF_A_SUFFIX}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
FILESEXTRAPATHS_prepend_stm32mpcommon := "${THISDIR}/tf-a-stm32mp:"
|
||||
|
||||
SECTION = "bootloaders"
|
||||
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://license.rst;md5=1dd070c98a281d18d9eefd938729b031"
|
||||
|
||||
SRC_URI = "git://github.com/ARM-software/arm-trusted-firmware.git;protocol=https;nobranch=1"
|
||||
SRCREV = "a04808c16cfc126d9fe572ae7c4b5a3d39de5796"
|
||||
|
||||
SRC_URI += " \
|
||||
file://0001-st-update-v2.2-r2.0.0.patch \
|
||||
"
|
||||
|
||||
TF_VERSION = "2.2"
|
||||
PV = "${TF_VERSION}.r1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# ---------------------------------
|
||||
# Configure devupstream class usage
|
||||
# ---------------------------------
|
||||
#BBCLASSEXTEND = "devupstream:target"
|
||||
|
||||
#SRC_URI_class-devupstream = "git://github.com/STMicroelectronics/arm-trusted-firmware.git;protocol=https;name=tfa;branch=v2.0-stm32mp"
|
||||
#SRCREV_class-devupstream = "d0233623681124a85b069f97a447d7edb1cc1c02"
|
||||
#SRCREV_FORMAT_class-devupstream = "tfa"
|
||||
#PV_class-devupstream = "${TF_VERSION}+github+${SRCPV}"
|
||||
# ---------------------------------
|
||||
# Configure default preference to manage dynamic selection between tarball and github
|
||||
# ---------------------------------
|
||||
#STM32MP_SOURCE_SELECTION ?= "tarball"
|
||||
|
||||
#DEFAULT_PREFERENCE = "${@bb.utils.contains('STM32MP_SOURCE_SELECTION', 'github', '-1', '1', d)}"
|
||||
@@ -0,0 +1,21 @@
|
||||
require tf-a-stm32mp-common_${PV}.inc
|
||||
require tf-a-stm32mp-common.inc
|
||||
|
||||
SUMMARY = "Trusted Firmware-A for STM32MP1 as serial boot loader"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://license.rst;md5=1dd070c98a281d18d9eefd938729b031"
|
||||
|
||||
PROVIDES += "virtual/trusted-firmware-a-serialboot"
|
||||
|
||||
TFA_SHARED_SOURCES = "0"
|
||||
|
||||
# Configure stm32mp1 make settings
|
||||
EXTRA_OEMAKE += 'PLAT=stm32mp1'
|
||||
EXTRA_OEMAKE += 'ARCH=aarch32'
|
||||
EXTRA_OEMAKE += 'ARM_ARCH_MAJOR=7'
|
||||
# Configure all serial boot supports
|
||||
EXTRA_OEMAKE += 'STM32MP_UART_PROGRAMMER=1'
|
||||
EXTRA_OEMAKE += 'STM32MP_USB_PROGRAMMER=1'
|
||||
|
||||
# Disable the wrapper for debug
|
||||
TF_A_ENABLE_DEBUG_WRAPPER ?= "0"
|
||||
+26303
-26975
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -16,17 +16,17 @@ For tf-a build you need to install:
|
||||
Fedora: sudo yum install git
|
||||
|
||||
If you have never configured you git configuration:
|
||||
$> git config --global user.name "your_name"
|
||||
$> git config --global user.email "your_email@example.com"
|
||||
$ git config --global user.name "your_name"
|
||||
$ git config --global user.email "your_email@example.com"
|
||||
|
||||
2. Initialise cross-compilation via SDK:
|
||||
---------------------------------------
|
||||
Source SDK environment:
|
||||
$> source <path to SDK>/environment-setup-cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi
|
||||
$ source <path to SDK>/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
|
||||
|
||||
To verify if your cross-compilation environment have put in place:
|
||||
$> set | grep CROSS
|
||||
CROSS_COMPILE=arm-openstlinux_weston-linux-gnueabi-
|
||||
$ set | grep CROSS
|
||||
CROSS_COMPILE=arm-ostl-linux-gnueabi-
|
||||
|
||||
Warning: the environment are valid only on the shell session where you have
|
||||
sourced the sdk environment.
|
||||
@@ -35,48 +35,46 @@ sourced the sdk environment.
|
||||
------------------------
|
||||
If you have the tarball and the list of patch then you must extract the tarball
|
||||
and apply the patch.
|
||||
$> tar xfz <tf-a source>.tar.gz
|
||||
or
|
||||
$> tar xfj <tf-a source>.tar.bz2
|
||||
or
|
||||
$> tar xfJ <tf-a source>.tar.xz
|
||||
$> tar xfz ##BP##-##PR##.tar.gz
|
||||
A new directory containing tf-a standard source code will be created, go into it:
|
||||
$> cd <directory to tf-a source code>
|
||||
$> cd ##BP##
|
||||
|
||||
NB: if there is no git management on source code and you would like to have a
|
||||
git management on the code see section 4 [Management of tf-a source code]
|
||||
if there is some patch, please apply it on source code
|
||||
$> for p in `ls -1 <path to patch>/*.patch`; do patch -p1 < $p; done
|
||||
$> for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
|
||||
|
||||
4. Management of tf-a source code:
|
||||
-----------------------------------
|
||||
If you like to have a better management of change made on tf-a source, you
|
||||
can use git:
|
||||
$> cd <directory to tf-a source code>
|
||||
$> test -d .git || git init . && git add . && git commit -m "tf-a source code" && git gc
|
||||
$> git checkout -b WORKING
|
||||
$> for p in `ls -1 <path to patch>/*.patch`; do git am $p; done
|
||||
$ cd <directory to tf-a source code>
|
||||
$ test -d .git || git init . && git add . && git commit -m "tf-a source code" && git gc
|
||||
$ git checkout -b WORKING
|
||||
$ for p in `ls -1 <path to patch>/*.patch`; do git am $p; done
|
||||
|
||||
NB: you can use directly the source from the community:
|
||||
URL: git://github.com/ARM-software/arm-trusted-firmware.git
|
||||
Branch: ##GIT_BRANCH##
|
||||
Revision: ##GIT_SRCREV##
|
||||
|
||||
$> git clone git://github.com/ARM-software/arm-trusted-firmware.git -b ##GIT_BRANCH##
|
||||
$> cd <directory to tf-a source code>
|
||||
$> git checkout -b WORKING ##GIT_SRCREV##
|
||||
$> for p in `ls -1 <path to patch>/*.patch`; do git am $p; done
|
||||
$ git clone git://github.com/ARM-software/arm-trusted-firmware.git -b ##GIT_BRANCH##
|
||||
$ cd <directory to tf-a source code>
|
||||
$ git checkout -b WORKING ##GIT_SRCREV##
|
||||
$ for p in `ls -1 <path to patch>/*.patch`; do git am $p; done
|
||||
|
||||
5. Build tf-a source code:
|
||||
--------------------------------
|
||||
To compile tf-a source code
|
||||
$> cd <directory to tf-a source code>
|
||||
$> make -f $PWD/../Makefile.sdk all
|
||||
or for a specific config :
|
||||
$> make -f $PWD/../Makefile.sdk TFA_DEVICETREE=stm32mp157c-ev1 TF_A_CONFIG=trusted ELF_DEBUG_ENABLE='1' all
|
||||
$ make -f $PWD/../Makefile.sdk TFA_DEVICETREE=stm32mp157c-ev1 TF_A_CONFIG=trusted ELF_DEBUG_ENABLE='1' all
|
||||
|
||||
NB: TFA_DEVICETREE flag must be set to switch to correct board configuration.
|
||||
|
||||
Files generated should be as follow:
|
||||
#> ../build/*/tf-a-*.stm32
|
||||
|
||||
6. Update software on board:
|
||||
----------------------------
|
||||
6.1. partitioning of binaries:
|
||||
@@ -90,11 +88,11 @@ Copy the binary (tf-a-*.stm32) on the dedicated partition, on SDCARD/USB disk
|
||||
the partition "fsbl1" are the partition 1:
|
||||
- SDCARD: /dev/mmcblkXp1 (where X is the instance number)
|
||||
- SDCARD via USB reader: /dev/sdX1 (where X is the instance number)
|
||||
$> dd if=<tf-a binary> of=/dev/<device partition> bs=1M conv=fdatasync
|
||||
$ dd if=<tf-a binary> of=/dev/<device partition> bs=1M conv=fdatasync
|
||||
|
||||
FAQ: to found the partition associated to a specific label, just plug the
|
||||
SDCARD/USB disk on your PC and call the following command:
|
||||
$> ls -l /dev/disk/by-partlabel/
|
||||
$ ls -l /dev/disk/by-partlabel/
|
||||
total 0
|
||||
lrwxrwxrwx 1 root root 10 Jan 17 17:38 bootfs -> ../../mmcblk0p4
|
||||
lrwxrwxrwx 1 root root 10 Jan 17 17:38 fsbl1 -> ../../mmcblk0p1 ➔ FSBL (TF-A)
|
||||
@@ -117,4 +115,4 @@ lrwxrwxrwx 1 root root 10 Jan 17 17:38 userfs -> ../../mmcblk0p6
|
||||
For SDCARD: ums 0 mmc 0
|
||||
For USB disk: ums 0 usb 0
|
||||
|
||||
* Follow section 6.2 to put tf-a-*.stm32 on SDCARD/USB disk
|
||||
* Follow section 6.2 to put tf-a-*.stm32 on SDCARD/USB disk
|
||||
@@ -1,42 +0,0 @@
|
||||
SUMMARY = "Trusted Firmware-A for STM32MP1"
|
||||
SECTION = "bootloaders"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://license.rst;md5=e927e02bca647e14efd87e9e914b2443"
|
||||
|
||||
SRC_URI = "https://github.com/ARM-software/arm-trusted-firmware/archive/v${PV}.tar.gz"
|
||||
SRC_URI[md5sum] = "21038abbf572c273fa87d296bcd5dad2"
|
||||
SRC_URI[sha256sum] = "7d699a1683bb7a5909de37b6eb91b6e38db32cd6fc5ae48a08eb0718d6504ae4"
|
||||
|
||||
SRC_URI += " \
|
||||
file://0001-st-update-r1.patch \
|
||||
file://0002-st-update-r1.1.0.patch \
|
||||
file://0003-st-update-r1.2.0.patch \
|
||||
"
|
||||
|
||||
TF_VERSION = "2.0"
|
||||
PV = "${TF_VERSION}"
|
||||
|
||||
S = "${WORKDIR}/arm-trusted-firmware-${PV}"
|
||||
|
||||
require tf-a-stm32mp-common.inc
|
||||
|
||||
# ---------------------------------
|
||||
# Configure archiver use
|
||||
# ---------------------------------
|
||||
include ${@oe.utils.ifelse(d.getVar('ST_ARCHIVER_ENABLE') == '1', 'tf-a-stm32mp-archiver.inc','')}
|
||||
|
||||
# ---------------------------------
|
||||
# Configure devupstream class usage
|
||||
# ---------------------------------
|
||||
BBCLASSEXTEND = "devupstream:target"
|
||||
|
||||
SRC_URI_class-devupstream = "git://github.com/STMicroelectronics/arm-trusted-firmware.git;protocol=https;name=tfa;branch=v2.0-stm32mp"
|
||||
SRCREV_class-devupstream = "5148fa0d1272cdf714ba0d7f0c38e0f72fa27020"
|
||||
SRCREV_FORMAT_class-devupstream = "tfa"
|
||||
PV_class-devupstream = "${TF_VERSION}+github+${SRCPV}"
|
||||
# ---------------------------------
|
||||
# Configure default preference to manage dynamic selection between tarball and github
|
||||
# ---------------------------------
|
||||
STM32MP_SOURCE_SELECTION ?= "tarball"
|
||||
|
||||
DEFAULT_PREFERENCE = "${@bb.utils.contains('STM32MP_SOURCE_SELECTION', 'github', '-1', '1', d)}"
|
||||
@@ -0,0 +1,26 @@
|
||||
require tf-a-stm32mp-common_${PV}.inc
|
||||
require tf-a-stm32mp-common.inc
|
||||
|
||||
SUMMARY = "Trusted Firmware-A for STM32MP1"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
|
||||
PROVIDES += "virtual/trusted-firmware-a"
|
||||
|
||||
# Configure stm32mp1 make settings
|
||||
EXTRA_OEMAKE += 'PLAT=stm32mp1'
|
||||
EXTRA_OEMAKE += 'ARCH=aarch32'
|
||||
EXTRA_OEMAKE += 'ARM_ARCH_MAJOR=7'
|
||||
# Configure default mode (All supported device type)
|
||||
EXTRA_OEMAKE += 'STM32MP_SDMMC=1'
|
||||
EXTRA_OEMAKE += 'STM32MP_EMMC=1'
|
||||
EXTRA_OEMAKE += 'STM32MP_SPI_NOR=1'
|
||||
EXTRA_OEMAKE += 'STM32MP_RAW_NAND=1'
|
||||
EXTRA_OEMAKE += 'STM32MP_SPI_NAND=1'
|
||||
|
||||
# Enable the wrapper for debug
|
||||
TF_A_ENABLE_DEBUG_WRAPPER ?= "1"
|
||||
|
||||
# ---------------------------------
|
||||
# Configure archiver use
|
||||
# ---------------------------------
|
||||
include ${@oe.utils.ifelse(d.getVar('ST_ARCHIVER_ENABLE') == '1', 'tf-a-stm32mp-archiver.inc','')}
|
||||
Reference in new issue
Block a user