summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2022-06-14 16:04:17 -0300
committerGitHub <noreply@github.com>2022-06-14 16:04:17 -0300
commit6b56658a97976eaa404511f768ce518b5ba147db (patch)
tree6fb3a39753d6f47285d2bbf0af9469d4c6597676
parent60f941077013631c98df522c730eb5beab374523 (diff)
parentcbea2c36475099b236e1c82f086ec7dccabd05e1 (diff)
downloadmeta-freescale-6b56658a97976eaa404511f768ce518b5ba147db.tar.gz
Merge pull request #1109 from zandrey/topic/support-upstream-tf-a
Support upstream TF-A usage for i.MX8M machines
-rw-r--r--classes/imx-boot-container.bbclass4
-rw-r--r--conf/layer.conf2
-rw-r--r--conf/machine/include/imx-base.inc17
-rw-r--r--dynamic-layers/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend16
-rw-r--r--recipes-bsp/imx-atf/imx-atf_2.4.bb4
-rw-r--r--recipes-bsp/imx-mkimage/imx-boot_1.0.bb6
6 files changed, 42 insertions, 7 deletions
diff --git a/classes/imx-boot-container.bbclass b/classes/imx-boot-container.bbclass
index 71c2809d..711bbd9e 100644
--- a/classes/imx-boot-container.bbclass
+++ b/classes/imx-boot-container.bbclass
@@ -29,7 +29,7 @@ ATF_MACHINE_NAME:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-o
29# appropriate dependencies for populate binaries task 29# appropriate dependencies for populate binaries task
30do_resolve_and_populate_binaries[depends] += " \ 30do_resolve_and_populate_binaries[depends] += " \
31 ${@' '.join('%s:do_deploy' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \ 31 ${@' '.join('%s:do_deploy' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \
32 imx-atf:do_deploy \ 32 ${IMX_DEFAULT_ATF_PROVIDER}:do_deploy \
33 ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os:do_deploy', '', d)} \ 33 ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os:do_deploy', '', d)} \
34" 34"
35 35
@@ -47,7 +47,7 @@ do_resolve_and_populate_binaries() {
47 cp ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${B}/${config}/ 47 cp ${DEPLOY_DIR_IMAGE}/${ddr_firmware} ${B}/${config}/
48 done 48 done
49 if [ -n "${ATF_MACHINE_NAME}" ]; then 49 if [ -n "${ATF_MACHINE_NAME}" ]; then
50 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${B}/${config}/bl31.bin 50 cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${B}/${config}/bl31.bin
51 else 51 else
52 bberror "ATF binary is undefined, result binary would be unusable!" 52 bberror "ATF binary is undefined, result binary would be unusable!"
53 fi 53 fi
diff --git a/conf/layer.conf b/conf/layer.conf
index 98169255..a3c8af2c 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -40,6 +40,8 @@ BBFILES_DYNAMIC += " \
40 ivi:${LAYERDIR}/dynamic-layers/ivi/*/*/*.bb \ 40 ivi:${LAYERDIR}/dynamic-layers/ivi/*/*/*.bb \
41 ivi:${LAYERDIR}/dynamic-layers/ivi/*/*/*.bbappend \ 41 ivi:${LAYERDIR}/dynamic-layers/ivi/*/*/*.bbappend \
42 \ 42 \
43 meta-arm:${LAYERDIR}/dynamic-layers/meta-arm/*/*/*.bbappend \
44 \
43 openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \ 45 openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \
44 openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \ 46 openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \
45 \ 47 \
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index 67f8ed52..bb52b8d0 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -96,6 +96,23 @@ UBOOT_ENTRYPOINT:vf-generic-bsp = "0x80008000"
96UBOOT_PROVIDES_BOOT_CONTAINER = "0" 96UBOOT_PROVIDES_BOOT_CONTAINER = "0"
97UBOOT_PROVIDES_BOOT_CONTAINER:imx-boot-container = "1" 97UBOOT_PROVIDES_BOOT_CONTAINER:imx-boot-container = "1"
98 98
99# Trusted Firmware for Cortex-A (TF-A) can have different providers, either
100# from upstream or from NXP downstream fork. Below variable defines which TF-A
101# shall be taken into the build, and will be integrated into runtime image.
102#
103# Upstream TF-A recipe resides in the meta-arm layer and in maintained by OE
104# community. Therefore, in order to add upstream TF-A - additional layer has
105# to be included in the bblayers.con file. Compatible machines are added to
106# this layer via dynamic-layers mechanism.
107#
108# NOTE: Current upstream TF-A version (v2.7) does not support HAB feature of
109# i.MX8M family. If the upstream TF-A version is chosen, then HAB will not be
110# available for all SoCs that are opting-in. This might change with future TF-A
111# release, so this statement shall be kept here until support is added.
112#
113# Default TF-A provider to NXP downstream fork
114IMX_DEFAULT_ATF_PROVIDER ??= "imx-atf"
115
99PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg" 116PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
100XSERVER_DRIVER = "xf86-video-fbdev" 117XSERVER_DRIVER = "xf86-video-fbdev"
101XSERVER_DRIVER:vf-generic-bsp = "xf86-video-modesetting" 118XSERVER_DRIVER:vf-generic-bsp = "xf86-video-modesetting"
diff --git a/dynamic-layers/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend b/dynamic-layers/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
new file mode 100644
index 00000000..400e850e
--- /dev/null
+++ b/dynamic-layers/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
@@ -0,0 +1,16 @@
1# Common Build targets
2TFA_BUILD_TARGET = "all"
3TFA_INSTALL_TARGET = "bl31"
4
5# List of supported machines from this layer
6COMPATIBLE_MACHINE:imx8mm-lpddr4-evk = "imx8mm-lpddr4-evk"
7TFA_PLATFORM:imx8mm-lpddr4-evk = "imx8mm"
8
9COMPATIBLE_MACHINE:imx8mn-ddr4-evk = "imx8mn-ddr4-evk"
10TFA_PLATFORM:imx8mn-ddr4-evk = "imx8mn"
11
12COMPATIBLE_MACHINE:imx8mp-lpddr4-evk = "imx8mp-lpddr4-evk"
13TFA_PLATFORM:imx8mp-lpddr4-evk = "imx8mp"
14
15COMPATIBLE_MACHINE:imx8mq-evk = "imx8mq-evk"
16TFA_PLATFORM:imx8mq-evk = "imx8mq"
diff --git a/recipes-bsp/imx-atf/imx-atf_2.4.bb b/recipes-bsp/imx-atf/imx-atf_2.4.bb
index 39158e6c..a8068eb0 100644
--- a/recipes-bsp/imx-atf/imx-atf_2.4.bb
+++ b/recipes-bsp/imx-atf/imx-atf_2.4.bb
@@ -61,9 +61,9 @@ do_compile() {
61do_install[noexec] = "1" 61do_install[noexec] = "1"
62 62
63do_deploy() { 63do_deploy() {
64 install -Dm 0644 ${S}/build/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/${BOOT_TOOLS}/bl31-${ATF_PLATFORM}.bin 64 install -Dm 0644 ${S}/build/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/bl31-${ATF_PLATFORM}.bin
65 if ${BUILD_OPTEE}; then 65 if ${BUILD_OPTEE}; then
66 install -m 0644 ${S}/build-optee/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/${BOOT_TOOLS}/bl31-${ATF_PLATFORM}.bin-optee 66 install -m 0644 ${S}/build-optee/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/bl31-${ATF_PLATFORM}.bin-optee
67 fi 67 fi
68} 68}
69addtask deploy after do_compile 69addtask deploy after do_compile
diff --git a/recipes-bsp/imx-mkimage/imx-boot_1.0.bb b/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
index 4e1b860a..28bc88b8 100644
--- a/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
+++ b/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
@@ -88,13 +88,13 @@ compile_mx8m() {
88 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${UBOOT_DTB_NAME} ${BOOT_STAGING} 88 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${UBOOT_DTB_NAME} ${BOOT_STAGING}
89 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} \ 89 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} \
90 ${BOOT_STAGING}/u-boot-nodtb.bin 90 ${BOOT_STAGING}/u-boot-nodtb.bin
91 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin 91 cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
92 cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin 92 cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin
93} 93}
94compile_mx8() { 94compile_mx8() {
95 bbnote 8QM boot binary build 95 bbnote 8QM boot binary build
96 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin 96 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin
97 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin 97 cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
98 cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin 98 cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin
99 cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING} 99 cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
100 if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then 100 if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then
@@ -107,7 +107,7 @@ compile_mx8x() {
107 bbnote 8QX boot binary build 107 bbnote 8QX boot binary build
108 cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING} 108 cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
109 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin 109 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/scfw_tcm.bin
110 cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin 110 cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
111 cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin 111 cp ${DEPLOY_DIR_IMAGE}/${UBOOT_NAME} ${BOOT_STAGING}/u-boot.bin
112 if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then 112 if [ -e ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} ] ; then
113 cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \ 113 cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \