* [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot
@ 2022-07-27 15:56 adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 1/5] " adam.johnston
` (7 more replies)
0 siblings, 8 replies; 9+ messages in thread
From: adam.johnston @ 2022-07-27 15:56 UTC (permalink / raw)
To: meta-arm, Ross.Burton; +Cc: nd, Adam Johnston
From: Adam Johnston <adam.johnston@arm.com>
This patch re-configures the N1SDP for trusted boot, using the changes
published by the Silicon Solutions team in N1SDP-2022.02.04 and up-streamed
to trusted-firmware-a and scp-firmware.
arm-bsp/trusted-firmware-a: For N1SDP only, upgraded to 2.7.0 and configured
for trusted boot
arm-bsp/scp-firmware: For N1SDP only, source is updated to master at
3e4c34ceccc1c960eb3a4adaa922f2a0c6b36be3
arm-bsp/scp-firmware: BL1 replaces BL31 in scp_fw.bin for N1SDP
arm-bsp/sdcard-image-n1sdp: fip.bin replaces uefi.bin. Now depends on
trusted-firmware-a rather than edk2-firmware
arm-bsp/edk2-firmware: Add support for NT_FW_CONFIG DTB to N1SDP. Note: This
patch contains CRLF line endings which must be preserved.
arm-bsp/scp-firmware should be updated to next SCP firmware release (2.11.0?)
when available
Adam Johnston (5):
arm-bsp/trusted-firmware-a: N1SDP trusted boot
arm-bsp/scp-firmware: N1SDP trusted boot
arm-bsp/sdcard-image-n1sdp: N1SDP trusted boot
arm-bsp/edk2-firmware: Add NT_FW_CONFIG to N1SDP to fix aborts when
accessing virtual memory
arm-bsp/sdcard-image-n1sdp: Fix N1SDP dependencies
meta-arm-bsp/conf/machine/n1sdp.conf | 2 +
.../images/sdcard-image-n1sdp_0.1.bb | 11 +-
.../scp-firmware/scp-firmware-n1sdp.inc | 6 +-
.../scp-firmware/scp-firmware_2.10.%.bbappend | 7 +
.../scp-firmware/scp-firmware_2.9.%.bbappend | 1 -
.../files/n1sdp/bl_size.patch | 40 ++
.../trusted-firmware-a-n1sdp.inc | 27 +-
.../trusted-firmware-a_2.6.bbappend | 1 -
.../trusted-firmware-a_2.7.bbappend | 6 +
.../recipes-bsp/uefi/edk2-firmware-n1sdp.inc | 6 +
.../edk2-platforms/add-nt-fw-config.patch | 474 ++++++++++++++++++
.../trusted-firmware-a_2.7.bb | 15 +
12 files changed, 587 insertions(+), 9 deletions(-)
create mode 100644 meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.10.%.bbappend
create mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/bl_size.patch
create mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bbappend
create mode 100644 meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/add-nt-fw-config.patch
create mode 100644 meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bb
--
2.17.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH kirkstone 1/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot
2022-07-27 15:56 [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot adam.johnston
@ 2022-07-27 15:56 ` adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 2/5] arm-bsp/scp-firmware: " adam.johnston
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: adam.johnston @ 2022-07-27 15:56 UTC (permalink / raw)
To: meta-arm, Ross.Burton; +Cc: nd, Adam Johnston
From: Adam Johnston <adam.johnston@arm.com>
This commit configures trusted-firmware-a for TBBR bootflow on N1SDP as follows:
* Trusted Firmware is upgraded to 2.7.0 for the N1SDP only
* Trusted boot is enabled.
* Generation of root-of-trust is enabled
* All TB images (BLx, DTBs) are built
* uefi.bin is specified as the BL33 image
* BL2, BL31, BL33 are signed and stored in the FIP
* N1SDP platform sources are patched to increase max size BL2 and reduce max size of BL1
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
---
meta-arm-bsp/conf/machine/n1sdp.conf | 2 +
.../files/n1sdp/bl_size.patch | 40 +++++++++++++++++++
.../trusted-firmware-a-n1sdp.inc | 27 +++++++++++--
.../trusted-firmware-a_2.6.bbappend | 1 -
.../trusted-firmware-a_2.7.bbappend | 6 +++
.../trusted-firmware-a_2.7.bb | 15 +++++++
6 files changed, 87 insertions(+), 4 deletions(-)
create mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/bl_size.patch
create mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bbappend
create mode 100644 meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bb
diff --git a/meta-arm-bsp/conf/machine/n1sdp.conf b/meta-arm-bsp/conf/machine/n1sdp.conf
index 5e87e61d..4a867135 100644
--- a/meta-arm-bsp/conf/machine/n1sdp.conf
+++ b/meta-arm-bsp/conf/machine/n1sdp.conf
@@ -25,6 +25,8 @@ PREFERRED_VERSION_linux-yocto ?= "5.15%"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "linux-firmware-rtl8168"
EXTRA_IMAGEDEPENDS += "trusted-firmware-a"
+PREFERRED_VERSION_trusted-firmware-a ?= "2.7%"
+
EXTRA_IMAGEDEPENDS += "virtual/control-processor-firmware"
#UEFI EDK2 firmware
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/bl_size.patch b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/bl_size.patch
new file mode 100644
index 00000000..a5b30195
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/bl_size.patch
@@ -0,0 +1,40 @@
+From 80b1efa92486a87f9e82dbf665ef612291148de8 Mon Sep 17 00:00:00 2001
+From: Adam Johnston <adam.johnston@arm.com>
+Date: Tue, 14 Jun 2022 11:19:30 +0000
+Subject: [PATCH] arm-bsp/trusted-firmware-a: N1SDP trusted boot
+
+Increase max size of BL2 on N1SDP by 4KB to enable trusted boot
+Decrease max size of BL1 on N1SDP by 8KB so BL1/BL2 fits above BL31 progbits
+
+Signed-off-by: Adam Johnston <adam.johnston@arm.com>
+Upstream-Status: Pending [Flagged to upstream]
+
+---
+ plat/arm/board/n1sdp/include/platform_def.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plat/arm/board/n1sdp/include/platform_def.h b/plat/arm/board/n1sdp/include/platform_def.h
+index c9b81bafa..7468a31ed 100644
+--- a/plat/arm/board/n1sdp/include/platform_def.h
++++ b/plat/arm/board/n1sdp/include/platform_def.h
+@@ -91,7 +91,7 @@
+ * PLAT_ARM_MAX_BL1_RW_SIZE is calculated using the current BL1 RW debug size
+ * plus a little space for growth.
+ */
+-#define PLAT_ARM_MAX_BL1_RW_SIZE 0xE000
++#define PLAT_ARM_MAX_BL1_RW_SIZE 0xC000
+
+ /*
+ * PLAT_ARM_MAX_ROMLIB_RW_SIZE is define to use a full page
+@@ -110,7 +110,7 @@
+ * little space for growth.
+ */
+ #if TRUSTED_BOARD_BOOT
+-# define PLAT_ARM_MAX_BL2_SIZE 0x20000
++# define PLAT_ARM_MAX_BL2_SIZE 0x21000
+ #else
+ # define PLAT_ARM_MAX_BL2_SIZE 0x14000
+ #endif
+--
+2.35.1
+
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
index 112fac8b..d47f2572 100644
--- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
@@ -2,8 +2,29 @@
COMPATIBLE_MACHINE = "n1sdp"
TFA_PLATFORM = "n1sdp"
-TFA_BUILD_TARGET = "bl31 dtbs"
-TFA_INSTALL_TARGET = "bl31 n1sdp-multi-chip n1sdp-single-chip"
+TFA_BUILD_TARGET = "all fip"
+TFA_INSTALL_TARGET = "bl1 bl2 bl31 n1sdp-multi-chip n1sdp-single-chip n1sdp_fw_config n1sdp_tb_fw_config fip"
TFA_DEBUG = "1"
-TFA_MBEDTLS = "0"
+TFA_MBEDTLS = "1"
TFA_UBOOT = "0"
+TFA_UEFI = "1"
+
+SRC_URI:remove = " \
+ file://ssl.patch \
+ "
+
+SRC_URI:append = " \
+ file://bl_size.patch \
+ "
+
+TFA_ROT_KEY= "plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem"
+
+EXTRA_OEMAKE:append = "\
+ TRUSTED_BOARD_BOOT=1 \
+ GENERATE_COT=1 \
+ CREATE_KEYS=1 \
+ ENABLE_PIE=0 \
+ ARM_ROTPK_LOCATION="devel_rsa" \
+ ROT_KEY="${TFA_ROT_KEY}" \
+ BL33=${RECIPE_SYSROOT}/firmware/uefi.bin \
+ "
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.6.bbappend b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.6.bbappend
index f8b2ac1b..d18c5252 100644
--- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.6.bbappend
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.6.bbappend
@@ -6,7 +6,6 @@ MACHINE_TFA_REQUIRE:corstone1000 = "trusted-firmware-a-corstone1000.inc"
MACHINE_TFA_REQUIRE:fvp-base = "trusted-firmware-a-fvp.inc"
MACHINE_TFA_REQUIRE:fvp-base-arm32 = "trusted-firmware-a-fvp-arm32.inc"
MACHINE_TFA_REQUIRE:juno = "trusted-firmware-a-juno.inc"
-MACHINE_TFA_REQUIRE:n1sdp = "trusted-firmware-a-n1sdp.inc"
MACHINE_TFA_REQUIRE:sgi575 = "trusted-firmware-a-sgi575.inc"
MACHINE_TFA_REQUIRE:tc = "trusted-firmware-a-tc.inc"
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bbappend b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bbappend
new file mode 100644
index 00000000..301f5fde
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bbappend
@@ -0,0 +1,6 @@
+# Machine specific TFAs
+
+MACHINE_TFA_REQUIRE ?= ""
+MACHINE_TFA_REQUIRE:n1sdp = "trusted-firmware-a-n1sdp.inc"
+
+require ${MACHINE_TFA_REQUIRE}
diff --git a/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bb b/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bb
new file mode 100644
index 00000000..13785a0a
--- /dev/null
+++ b/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.bb
@@ -0,0 +1,15 @@
+require trusted-firmware-a.inc
+
+# TF-A v2.7
+SRCREV_tfa = "35f4c7295bafeb32c8bcbdfb6a3f2e74a57e732b"
+
+LIC_FILES_CHKSUM += "file://docs/license.rst;md5=b2c740efedc159745b9b31f88ff03dde"
+
+# mbed TLS v2.28.0
+SRC_URI_MBEDTLS = "git://github.com/ARMmbed/mbedtls.git;name=mbedtls;protocol=https;destsuffix=git/mbedtls;branch=mbedtls-2.28"
+SRCREV_mbedtls = "8b3f26a5ac38d4fdccbc5c5366229f3e01dafcc0"
+
+LIC_FILES_CHKSUM_MBEDTLS = "file://mbedtls/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+# Disable by default
+DEFAULT_PREFERENCE = "-1"
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH kirkstone 2/5] arm-bsp/scp-firmware: N1SDP trusted boot
2022-07-27 15:56 [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 1/5] " adam.johnston
@ 2022-07-27 15:56 ` adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 3/5] arm-bsp/sdcard-image-n1sdp: " adam.johnston
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: adam.johnston @ 2022-07-27 15:56 UTC (permalink / raw)
To: meta-arm, Ross.Burton; +Cc: nd, Adam Johnston
From: Adam Johnston <adam.johnston@arm.com>
This commit configures scp-firmware for TBBR bootflow as follows:
* SCP FW upgraded to 2.10 for the N1SDP only
* Updates SCP FW src to master
* BL31 replaced in the SCP firmware image with BL1
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
---
.../recipes-bsp/scp-firmware/scp-firmware-n1sdp.inc | 6 +++++-
.../recipes-bsp/scp-firmware/scp-firmware_2.10.%.bbappend | 7 +++++++
.../recipes-bsp/scp-firmware/scp-firmware_2.9.%.bbappend | 1 -
3 files changed, 12 insertions(+), 2 deletions(-)
create mode 100644 meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.10.%.bbappend
diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-n1sdp.inc b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-n1sdp.inc
index 0352539a..e66469c3 100644
--- a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-n1sdp.inc
+++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-n1sdp.inc
@@ -3,6 +3,10 @@
SCP_PLATFORM = "n1sdp"
SCP_LOG_LEVEL = "INFO"
+# master branch at n1sdp: Introduce trusted board boot
+SRCREV = "3e4c34ceccc1c960eb3a4adaa922f2a0c6b36be3"
+PV .= "+git${SRCPV}"
+
COMPATIBLE_MACHINE:n1sdp = "n1sdp"
DEPENDS += "fiptool-native"
@@ -12,7 +16,7 @@ do_install:append() {
fiptool \
create \
--scp-fw "${D}/firmware/scp_ramfw.bin" \
- --soc-fw "${RECIPE_SYSROOT}/firmware/bl31.bin" \
+ --blob uuid=cfacc2c4-15e8-4668-82be-430a38fad705,file="${RECIPE_SYSROOT}/firmware/bl1.bin" \
"scp_fw.bin"
# This UUID is FIP_UUID_MCP_BL2 in SCP-Firmware.
diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.10.%.bbappend b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.10.%.bbappend
new file mode 100644
index 00000000..5e1e6efe
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.10.%.bbappend
@@ -0,0 +1,7 @@
+# Include machine specific SCP configurations
+
+MACHINE_SCP_REQUIRE ?= ""
+
+MACHINE_SCP_REQUIRE:n1sdp = "scp-firmware-n1sdp.inc"
+
+require ${MACHINE_SCP_REQUIRE}
diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.9.%.bbappend b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.9.%.bbappend
index bb1a48c7..4421e79c 100644
--- a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.9.%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_2.9.%.bbappend
@@ -3,7 +3,6 @@
MACHINE_SCP_REQUIRE ?= ""
MACHINE_SCP_REQUIRE:juno = "scp-firmware-juno.inc"
-MACHINE_SCP_REQUIRE:n1sdp = "scp-firmware-n1sdp.inc"
MACHINE_SCP_REQUIRE:sgi575 = "scp-firmware-sgi575.inc"
MACHINE_SCP_REQUIRE:tc = "scp-firmware-tc.inc"
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH kirkstone 3/5] arm-bsp/sdcard-image-n1sdp: N1SDP trusted boot
2022-07-27 15:56 [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 1/5] " adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 2/5] arm-bsp/scp-firmware: " adam.johnston
@ 2022-07-27 15:56 ` adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 4/5] arm-bsp/edk2-firmware: Add NT_FW_CONFIG to N1SDP to fix aborts when accessing virtual memory adam.johnston
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: adam.johnston @ 2022-07-27 15:56 UTC (permalink / raw)
To: meta-arm, Ross.Burton; +Cc: nd, Adam Johnston
From: Adam Johnston <adam.johnston@arm.com>
This commit configures N1SDP firmware for TBBR bootflow as follows:
* uefi.bin replaced with with fip.bin
* load address adjusted for FIP image
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
---
.../recipes-bsp/images/sdcard-image-n1sdp_0.1.bb | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/meta-arm-bsp/recipes-bsp/images/sdcard-image-n1sdp_0.1.bb b/meta-arm-bsp/recipes-bsp/images/sdcard-image-n1sdp_0.1.bb
index 6f74159c..84498a63 100644
--- a/meta-arm-bsp/recipes-bsp/images/sdcard-image-n1sdp_0.1.bb
+++ b/meta-arm-bsp/recipes-bsp/images/sdcard-image-n1sdp_0.1.bb
@@ -27,8 +27,8 @@ prepare_package() {
cp -av ${RECIPE_SYSROOT}/${FIRMWARE_DIR}/* ${PRIMARY_DIR}
mkdir -p ${PRIMARY_DIR}/SOFTWARE/
- # Copy uefi binary
- cp -v ${RECIPE_SYSROOT}/firmware/uefi.bin ${PRIMARY_DIR}/SOFTWARE/
+ # Copy FIP binary
+ cp -v ${RECIPE_SYSROOT}/firmware/fip.bin ${PRIMARY_DIR}/SOFTWARE/
# Copy SOC binaries
for f in ${SOC_BINARIES}; do
@@ -42,6 +42,11 @@ prepare_package() {
sed -i -e 's|.*SOCCON: 0x1170.*PLATFORM_CTRL.*|SOCCON: 0x1170 0x00000100 ;SoC SCC PLATFORM_CTRL|' \
${PRIMARY_DIR}/MB/HBI0316A/io_v123f.txt
+ # Update load address for trusted boot
+ sed -i -e '/^IMAGE4ADDRESS:/ s|0x60200000|0x64200000|' ${PRIMARY_DIR}/MB/HBI0316A/images.txt
+ sed -i -e '/^IMAGE4UPDATE:/ s|FORCE |SCP_AUTO|' ${PRIMARY_DIR}/MB/HBI0316A/images.txt
+ sed -i -e '/^IMAGE4FILE: \\SOFTWARE\\/s|uefi.bin|fip.bin |' ${PRIMARY_DIR}/MB/HBI0316A/images.txt
+
# Slave/Secondary
cp -av ${RECIPE_SYSROOT}/${FIRMWARE_DIR}/* ${SECONDARY_DIR}
mkdir -p ${SECONDARY_DIR}/SOFTWARE/
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH kirkstone 4/5] arm-bsp/edk2-firmware: Add NT_FW_CONFIG to N1SDP to fix aborts when accessing virtual memory
2022-07-27 15:56 [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot adam.johnston
` (2 preceding siblings ...)
2022-07-27 15:56 ` [PATCH kirkstone 3/5] arm-bsp/sdcard-image-n1sdp: " adam.johnston
@ 2022-07-27 15:56 ` adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 5/5] arm-bsp/sdcard-image-n1sdp: Fix N1SDP dependencies adam.johnston
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: adam.johnston @ 2022-07-27 15:56 UTC (permalink / raw)
To: meta-arm, Ross.Burton; +Cc: nd, Adam Johnston
From: Adam Johnston <adam.johnston@arm.com>
NT_FW_CONFIG DTB contains platform information passed by TF-A boot
stage. This information is used for Virtual memory map generation
during PEI phase and passed on to DXE phase as a HOB, where it is used
in ConfigurationManagerDxe.
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
---
.../recipes-bsp/uefi/edk2-firmware-n1sdp.inc | 6 +
.../edk2-platforms/add-nt-fw-config.patch | 474 ++++++++++++++++++
2 files changed, 480 insertions(+)
create mode 100644 meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/add-nt-fw-config.patch
diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-n1sdp.inc b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-n1sdp.inc
index 8930c040..90c3f2ae 100644
--- a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-n1sdp.inc
+++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-n1sdp.inc
@@ -11,6 +11,12 @@ COMPATIBLE_MACHINE = "n1sdp"
EFIDIR = "/EFI/BOOT"
EFI_BOOT_IMAGE = "bootaa64.efi"
+FILESEXTRAPATHS:prepend := "${THISDIR}/files/edk2-platforms:"
+
+SRC_URI:append = "\
+ file://add-nt-fw-config.patch;patchdir=edk2-platforms \
+"
+
do_deploy:append() {
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
printf 'FS2:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" > ${DEPLOYDIR}/startup.nsh
diff --git a/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/add-nt-fw-config.patch b/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/add-nt-fw-config.patch
new file mode 100644
index 00000000..f6f18951
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/uefi/files/edk2-platforms/add-nt-fw-config.patch
@@ -0,0 +1,474 @@
+From cc58709b32d74273736886ccfc08e4723a436ea4 Mon Sep 17 00:00:00 2001
+From: sahil <sahil@arm.com>
+Date: Thu, 17 Mar 2022 16:28:05 +0530
+Subject: [PATCH] Platform/ARM/N1sdp: Add support to parse NT_FW_CONFIG
+
+NT_FW_CONFIG DTB contains platform information passed by
+Tf-A boot stage.
+This information is used for Virtual memory map generation
+during PEI phase and passed on to DXE phase as a HOB, where
+it is used in ConfigurationManagerDxe.
+
+Upstream-Status: Pending
+Signed-off-by: Adam Johnston <adam.johnston@arm.com>
+Signed-off-by: sahil <sahil@arm.com>
+Change-Id: Ib82571280bf1ca5febe5766e618de09e7b70bb02
+
+---
+ .../ConfigurationManager.c | 24 ++--
+ .../ConfigurationManagerDxe.inf | 3 +-
+ .../ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h | 16 +--
+ .../Library/PlatformLib/AArch64/Helper.S | 4 +-
+ .../Library/PlatformLib/PlatformLib.c | 12 +-
+ .../Library/PlatformLib/PlatformLib.inf | 8 +-
+ .../Library/PlatformLib/PlatformLibMem.c | 103 +++++++++++++++++-
+ Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec | 7 +-
+ 8 files changed, 152 insertions(+), 25 deletions(-)
+
+diff --git a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
+index f50623ae3f..e023d47cfd 100644
+--- a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
++++ b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
+@@ -1,7 +1,7 @@
+ /** @file
+ Configuration Manager Dxe
+
+- Copyright (c) 2021, ARM Limited. All rights reserved.<BR>
++ Copyright (c) 2021 - 2022, ARM Limited. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+@@ -16,6 +16,7 @@
+ #include <IndustryStandard/SerialPortConsoleRedirectionTable.h>
+ #include <Library/ArmLib.h>
+ #include <Library/DebugLib.h>
++#include <Library/HobLib.h>
+ #include <Library/IoLib.h>
+ #include <Library/PcdLib.h>
+ #include <Library/UefiBootServicesTableLib.h>
+@@ -28,6 +29,7 @@
+ #include "Platform.h"
+
+ extern struct EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE Hmat;
++static NEOVERSEN1SOC_PLAT_INFO *PlatInfo;
+
+ /** The platform configuration repository information.
+ */
+@@ -1242,13 +1244,11 @@ InitializePlatformRepository (
+ IN EDKII_PLATFORM_REPOSITORY_INFO * CONST PlatRepoInfo
+ )
+ {
+- NEOVERSEN1SOC_PLAT_INFO *PlatInfo;
+ UINT64 Dram2Size;
+ UINT64 RemoteDdrSize;
+
+ RemoteDdrSize = 0;
+
+- PlatInfo = (NEOVERSEN1SOC_PLAT_INFO *)NEOVERSEN1SOC_PLAT_INFO_STRUCT_BASE;
+ Dram2Size = ((PlatInfo->LocalDdrSize - 2) * SIZE_1GB);
+
+ PlatRepoInfo->MemAffInfo[LOCAL_DDR_REGION2].Length = Dram2Size;
+@@ -1512,7 +1512,6 @@ GetGicCInfo (
+ )
+ {
+ EDKII_PLATFORM_REPOSITORY_INFO * PlatformRepo;
+- NEOVERSEN1SOC_PLAT_INFO *PlatInfo;
+ UINT32 TotalObjCount;
+ UINT32 ObjIndex;
+
+@@ -1523,7 +1522,6 @@ GetGicCInfo (
+ }
+
+ PlatformRepo = This->PlatRepoInfo;
+- PlatInfo = (NEOVERSEN1SOC_PLAT_INFO *)NEOVERSEN1SOC_PLAT_INFO_STRUCT_BASE;
+
+ if (PlatInfo->MultichipMode == 1) {
+ TotalObjCount = PLAT_CPU_COUNT * 2;
+@@ -1623,7 +1621,6 @@ GetStandardNameSpaceObject (
+ {
+ EFI_STATUS Status;
+ EDKII_PLATFORM_REPOSITORY_INFO * PlatformRepo;
+- NEOVERSEN1SOC_PLAT_INFO *PlatInfo;
+ UINT32 AcpiTableCount;
+
+ if ((This == NULL) || (CmObject == NULL)) {
+@@ -1634,7 +1631,7 @@ GetStandardNameSpaceObject (
+
+ Status = EFI_NOT_FOUND;
+ PlatformRepo = This->PlatRepoInfo;
+- PlatInfo = (NEOVERSEN1SOC_PLAT_INFO *)NEOVERSEN1SOC_PLAT_INFO_STRUCT_BASE;
++
+ AcpiTableCount = ARRAY_SIZE (PlatformRepo->CmAcpiTableList);
+ if (PlatInfo->MultichipMode == 0)
+ AcpiTableCount -= 1;
+@@ -1697,7 +1694,6 @@ GetArmNameSpaceObject (
+ {
+ EFI_STATUS Status;
+ EDKII_PLATFORM_REPOSITORY_INFO * PlatformRepo;
+- NEOVERSEN1SOC_PLAT_INFO *PlatInfo;
+ UINT32 GicRedistCount;
+ UINT32 GicCpuCount;
+ UINT32 ProcHierarchyInfoCount;
+@@ -1718,8 +1714,6 @@ GetArmNameSpaceObject (
+ Status = EFI_NOT_FOUND;
+ PlatformRepo = This->PlatRepoInfo;
+
+- // Probe for multi chip information
+- PlatInfo = (NEOVERSEN1SOC_PLAT_INFO *)NEOVERSEN1SOC_PLAT_INFO_STRUCT_BASE;
+ if (PlatInfo->MultichipMode == 1) {
+ GicRedistCount = 2;
+ GicCpuCount = PLAT_CPU_COUNT * 2;
+@@ -2162,8 +2156,18 @@ ConfigurationManagerDxeInitialize (
+ IN EFI_SYSTEM_TABLE * SystemTable
+ )
+ {
++ VOID *PlatInfoHob;
+ EFI_STATUS Status;
+
++ PlatInfoHob = GetFirstGuidHob (&gArmNeoverseN1SocPlatformInfoDescriptorGuid);
++
++ if (PlatInfoHob == NULL) {
++ DEBUG ((DEBUG_ERROR, "Platform HOB is NULL\n"));
++ return EFI_NOT_FOUND;
++ }
++
++ PlatInfo = (NEOVERSEN1SOC_PLAT_INFO *)GET_GUID_HOB_DATA (PlatInfoHob);
++
+ // Initialize the Platform Configuration Repository before installing the
+ // Configuration Manager Protocol
+ Status = InitializePlatformRepository (
+diff --git a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf
+index 4f8e7f1302..fb59c29501 100644
+--- a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf
++++ b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf
+@@ -1,7 +1,7 @@
+ ## @file
+ # Configuration Manager Dxe
+ #
+-# Copyright (c) 2021, ARM Limited. All rights reserved.<BR>
++# Copyright (c) 2021 - 2022, ARM Limited. All rights reserved.<BR>
+ #
+ # SPDX-License-Identifier: BSD-2-Clause-Patent
+ #
+@@ -42,6 +42,7 @@
+
+ [LibraryClasses]
+ ArmPlatformLib
++ HobLib
+ PrintLib
+ UefiBootServicesTableLib
+ UefiDriverEntryPoint
+diff --git a/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h b/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h
+index 097160c7e2..63cebaf0e0 100644
+--- a/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h
++++ b/Silicon/ARM/NeoverseN1Soc/Include/NeoverseN1Soc.h
+@@ -1,6 +1,6 @@
+ /** @file
+ *
+-* Copyright (c) 2018 - 2020, ARM Limited. All rights reserved.
++* Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ *
+@@ -41,11 +41,6 @@
+ #define NEOVERSEN1SOC_EXP_PERIPH_BASE0 0x1C000000
+ #define NEOVERSEN1SOC_EXP_PERIPH_BASE0_SZ 0x1300000
+
+-// Base address to a structure of type NEOVERSEN1SOC_PLAT_INFO which is
+-// pre-populated by a earlier boot stage
+-#define NEOVERSEN1SOC_PLAT_INFO_STRUCT_BASE (NEOVERSEN1SOC_NON_SECURE_SRAM_BASE + \
+- 0x00008000)
+-
+ /*
+ * Platform information structure stored in Non-secure SRAM. Platform
+ * information are passed from the trusted firmware with the below structure
+@@ -55,12 +50,17 @@
+ typedef struct {
+ /*! 0 - Single Chip, 1 - Chip to Chip (C2C) */
+ UINT8 MultichipMode;
+- /*! Slave count in C2C mode */
+- UINT8 SlaveCount;
++ /*! Secondary chip count in C2C mode */
++ UINT8 SecondaryChipCount;
+ /*! Local DDR memory size in GigaBytes */
+ UINT8 LocalDdrSize;
+ /*! Remote DDR memory size in GigaBytes */
+ UINT8 RemoteDdrSize;
+ } NEOVERSEN1SOC_PLAT_INFO;
+
++// NT_FW_CONFIG DT structure
++typedef struct {
++ UINT64 NtFwConfigDtAddr;
++} NEOVERSEN1SOC_NT_FW_CONFIG_INFO_PPI;
++
+ #endif
+diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/AArch64/Helper.S b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/AArch64/Helper.S
+index 8d2069dea8..88ed640d29 100644
+--- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/AArch64/Helper.S
++++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/AArch64/Helper.S
+@@ -1,6 +1,6 @@
+ /** @file
+ *
+-* Copyright (c) 2019 - 2020, ARM Limited. All rights reserved.
++* Copyright (c) 2019 - 2022, ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ *
+@@ -25,6 +25,8 @@ GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
+ // the UEFI firmware through the CPU registers.
+ //
+ ASM_PFX(ArmPlatformPeiBootAction):
++ adr x10, NtFwConfigDtBlob
++ str x0, [x10]
+ ret
+
+ //
+diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.c b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.c
+index c0effd37f3..fabe902cd0 100644
+--- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.c
++++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.c
+@@ -1,6 +1,6 @@
+ /** @file
+
+- Copyright (c) 2018-2021, ARM Limited. All rights reserved.<BR>
++ Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+@@ -8,8 +8,12 @@
+
+ #include <Library/ArmPlatformLib.h>
+ #include <Library/BaseLib.h>
++#include <NeoverseN1Soc.h>
+ #include <Ppi/ArmMpCoreInfo.h>
+
++UINT64 NtFwConfigDtBlob;
++STATIC NEOVERSEN1SOC_NT_FW_CONFIG_INFO_PPI mNtFwConfigDtInfoPpi;
++
+ STATIC ARM_CORE_INFO mCoreInfoTable[] = {
+ { 0x0, 0x0 }, // Cluster 0, Core 0
+ { 0x0, 0x1 }, // Cluster 0, Core 1
+@@ -46,6 +50,7 @@ ArmPlatformInitialize (
+ IN UINTN MpId
+ )
+ {
++ mNtFwConfigDtInfoPpi.NtFwConfigDtAddr = NtFwConfigDtBlob;
+ return RETURN_SUCCESS;
+ }
+
+@@ -80,6 +85,11 @@ EFI_PEI_PPI_DESCRIPTOR gPlatformPpiTable[] = {
+ EFI_PEI_PPI_DESCRIPTOR_PPI,
+ &gArmMpCoreInfoPpiGuid,
+ &mMpCoreInfoPpi
++ },
++ {
++ EFI_PEI_PPI_DESCRIPTOR_PPI,
++ &gNtFwConfigDtInfoPpiGuid,
++ &mNtFwConfigDtInfoPpi
+ }
+ };
+
+diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf
+index 96e590cdd8..6f9c9d5ab6 100644
+--- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf
++++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLib.inf
+@@ -1,7 +1,7 @@
+ ## @file
+ # Platform Library for N1Sdp.
+ #
+-# Copyright (c) 2018-2021, ARM Limited. All rights reserved.<BR>
++# Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.<BR>
+ #
+ # SPDX-License-Identifier: BSD-2-Clause-Patent
+ #
+@@ -18,10 +18,14 @@
+ [Packages]
+ ArmPkg/ArmPkg.dec
+ ArmPlatformPkg/ArmPlatformPkg.dec
++ EmbeddedPkg/EmbeddedPkg.dec
+ MdeModulePkg/MdeModulePkg.dec
+ MdePkg/MdePkg.dec
+ Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec
+
++[LibraryClasses]
++ FdtLib
++
+ [Sources.common]
+ PlatformLibMem.c
+ PlatformLib.c
+@@ -59,7 +63,9 @@
+ gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
+
+ [Guids]
++ gArmNeoverseN1SocPlatformInfoDescriptorGuid
+ gEfiHobListGuid ## CONSUMES ## SystemTable
+
+ [Ppis]
+ gArmMpCoreInfoPpiGuid
++ gNtFwConfigDtInfoPpiGuid
+diff --git a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
+index 339fa07b32..b58bda4b76 100644
+--- a/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
++++ b/Silicon/ARM/NeoverseN1Soc/Library/PlatformLib/PlatformLibMem.c
+@@ -1,6 +1,6 @@
+ /** @file
+
+- Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.<BR>
++ Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+@@ -10,11 +10,95 @@
+ #include <Library/DebugLib.h>
+ #include <Library/HobLib.h>
+ #include <Library/MemoryAllocationLib.h>
++#include <Library/PeiServicesLib.h>
++#include <libfdt.h>
+ #include <NeoverseN1Soc.h>
+
+ // The total number of descriptors, including the final "end-of-table" descriptor.
+ #define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 19
+
++/** A helper function to locate the NtFwConfig PPI and get the base address of
++ NT_FW_CONFIG DT from which values are obtained using FDT helper functions.
++
++ @param [out] plat_info Pointer to the NeoverseN1Soc PLATFORM_INFO HOB
++
++ @retval EFI_SUCCESS Success.
++ returns EFI_INVALID_PARAMETER A parameter is invalid.
++**/
++EFI_STATUS
++GetNeoverseN1SocPlatInfo (
++ OUT NEOVERSEN1SOC_PLAT_INFO *plat_info
++ )
++{
++ CONST UINT32 *Property;
++ INT32 Offset;
++ CONST VOID *NtFwCfgDtBlob;
++ NEOVERSEN1SOC_NT_FW_CONFIG_INFO_PPI *NtFwConfigInfoPpi;
++ EFI_STATUS Status;
++
++ Status = PeiServicesLocatePpi (
++ &gNtFwConfigDtInfoPpiGuid,
++ 0,
++ NULL,
++ (VOID **)&NtFwConfigInfoPpi
++ );
++
++ if (EFI_ERROR (Status)) {
++ DEBUG ((
++ DEBUG_ERROR,
++ "PeiServicesLocatePpi failed with error %r\n",
++ Status
++ ));
++ return EFI_INVALID_PARAMETER;
++ }
++
++ NtFwCfgDtBlob = (VOID *)(UINTN)NtFwConfigInfoPpi->NtFwConfigDtAddr;
++ if (fdt_check_header (NtFwCfgDtBlob) != 0) {
++ DEBUG ((DEBUG_ERROR, "Invalid DTB file %p passed\n", NtFwCfgDtBlob));
++ return EFI_INVALID_PARAMETER;
++ }
++
++ Offset = fdt_subnode_offset (NtFwCfgDtBlob, 0, "platform-info");
++ if (Offset == -FDT_ERR_NOTFOUND) {
++ DEBUG ((DEBUG_ERROR, "Invalid DTB : platform-info node not found\n"));
++ return EFI_INVALID_PARAMETER;
++ }
++
++ Property = fdt_getprop (NtFwCfgDtBlob, Offset, "local-ddr-size", NULL);
++ if (Property == NULL) {
++ DEBUG ((DEBUG_ERROR, "local-ddr-size property not found\n"));
++ return EFI_INVALID_PARAMETER;
++ }
++
++ plat_info->LocalDdrSize = fdt32_to_cpu (*Property);
++
++ Property = fdt_getprop (NtFwCfgDtBlob, Offset, "remote-ddr-size", NULL);
++ if (Property == NULL) {
++ DEBUG ((DEBUG_ERROR, "remote-ddr-size property not found\n"));
++ return EFI_INVALID_PARAMETER;
++ }
++
++ plat_info->RemoteDdrSize = fdt32_to_cpu (*Property);
++
++ Property = fdt_getprop (NtFwCfgDtBlob, Offset, "secondary-chip-count", NULL);
++ if (Property == NULL) {
++ DEBUG ((DEBUG_ERROR, "secondary-chip-count property not found\n"));
++ return EFI_INVALID_PARAMETER;
++ }
++
++ plat_info->SecondaryChipCount = fdt32_to_cpu (*Property);
++
++ Property = fdt_getprop (NtFwCfgDtBlob, Offset, "multichip-mode", NULL);
++ if (Property == NULL) {
++ DEBUG ((DEBUG_ERROR, "multichip-mode property not found\n"));
++ return EFI_INVALID_PARAMETER;
++ }
++
++ plat_info->MultichipMode = fdt32_to_cpu (*Property);
++
++ return EFI_SUCCESS;
++}
++
+ /**
+ Returns the Virtual Memory Map of the platform.
+
+@@ -36,9 +120,24 @@ ArmPlatformGetVirtualMemoryMap (
+ NEOVERSEN1SOC_PLAT_INFO *PlatInfo;
+ UINT64 DramBlock2Size;
+ UINT64 RemoteDdrSize;
++ EFI_STATUS Status;
+
+ Index = 0;
+- PlatInfo = (NEOVERSEN1SOC_PLAT_INFO *)NEOVERSEN1SOC_PLAT_INFO_STRUCT_BASE;
++
++ // Create platform info HOB
++ PlatInfo = (NEOVERSEN1SOC_PLAT_INFO *)BuildGuidHob (
++ &gArmNeoverseN1SocPlatformInfoDescriptorGuid,
++ sizeof (NEOVERSEN1SOC_PLAT_INFO)
++ );
++
++ if (PlatInfo == NULL) {
++ DEBUG ((DEBUG_ERROR, "Platform HOB is NULL\n"));
++ ASSERT (FALSE);
++ return;
++ }
++
++ Status = GetNeoverseN1SocPlatInfo (PlatInfo);
++ ASSERT (Status == 0);
+ DramBlock2Size = ((UINT64)(PlatInfo->LocalDdrSize -
+ NEOVERSEN1SOC_DRAM_BLOCK1_SIZE / SIZE_1GB) *
+ (UINT64)SIZE_1GB);
+diff --git a/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec b/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec
+index d59f25a5b9..4dea8fe1e8 100644
+--- a/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec
++++ b/Silicon/ARM/NeoverseN1Soc/NeoverseN1Soc.dec
+@@ -1,7 +1,7 @@
+ ## @file
+ # Describes the entire platform configuration.
+ #
+-# Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.<BR>
++# Copyright (c) 2018 - 2022, ARM Limited. All rights reserved.<BR>
+ #
+ # SPDX-License-Identifier: BSD-2-Clause-Patent
+ #
+@@ -22,6 +22,8 @@
+ Include # Root include for the package
+
+ [Guids.common]
++ # ARM NeoverseN1Soc Platform Info descriptor
++ gArmNeoverseN1SocPlatformInfoDescriptorGuid = { 0x095cb024, 0x1e00, 0x4d6f, { 0xaa, 0x34, 0x4a, 0xf8, 0xaf, 0x0e, 0xad, 0x99 } }
+ gArmNeoverseN1SocTokenSpaceGuid = { 0xab93eb78, 0x60d7, 0x4099, { 0xac, 0xeb, 0x6d, 0xb5, 0x02, 0x58, 0x7c, 0x24 } }
+
+ [PcdsFixedAtBuild]
+@@ -83,3 +85,6 @@
+ gArmNeoverseN1SocTokenSpaceGuid.PcdRemotePcieMmio32Translation|0x40000000000|UINT64|0x0000004F
+ gArmNeoverseN1SocTokenSpaceGuid.PcdRemotePcieMmio64Translation|0x40000000000|UINT64|0x00000050
+ gArmNeoverseN1SocTokenSpaceGuid.PcdRemotePcieSegmentNumber|2|UINT32|0x00000051
++
++[Ppis]
++ gNtFwConfigDtInfoPpiGuid = { 0xb50dee0e, 0x577f, 0x47fb, { 0x83, 0xd0, 0x41, 0x78, 0x61, 0x8b, 0x33, 0x8a } }
+--
+2.17.1
+
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH kirkstone 5/5] arm-bsp/sdcard-image-n1sdp: Fix N1SDP dependencies
2022-07-27 15:56 [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot adam.johnston
` (3 preceding siblings ...)
2022-07-27 15:56 ` [PATCH kirkstone 4/5] arm-bsp/edk2-firmware: Add NT_FW_CONFIG to N1SDP to fix aborts when accessing virtual memory adam.johnston
@ 2022-07-27 15:56 ` adam.johnston
2022-07-27 21:36 ` [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot Jon Mason
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: adam.johnston @ 2022-07-27 15:56 UTC (permalink / raw)
To: meta-arm, Ross.Burton; +Cc: nd, Adam Johnston
From: Adam Johnston <adam.johnston@arm.com>
When enabling trusted boot, the UEFI binary was replaced with a FIP image (which
contains the UEFI binary), therefore the SD card image should depend on
trusted-firmware-a rather than edk2-firmware.
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
---
meta-arm-bsp/recipes-bsp/images/sdcard-image-n1sdp_0.1.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-arm-bsp/recipes-bsp/images/sdcard-image-n1sdp_0.1.bb b/meta-arm-bsp/recipes-bsp/images/sdcard-image-n1sdp_0.1.bb
index 84498a63..3ed71c57 100644
--- a/meta-arm-bsp/recipes-bsp/images/sdcard-image-n1sdp_0.1.bb
+++ b/meta-arm-bsp/recipes-bsp/images/sdcard-image-n1sdp_0.1.bb
@@ -2,7 +2,7 @@ SUMMARY = "Firmware image recipe for generating SD-Card artifacts."
inherit deploy nopackages
-DEPENDS = "edk2-firmware \
+DEPENDS = "trusted-firmware-a \
virtual/control-processor-firmware \
n1sdp-board-firmware"
--
2.17.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot
2022-07-27 15:56 [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot adam.johnston
` (4 preceding siblings ...)
2022-07-27 15:56 ` [PATCH kirkstone 5/5] arm-bsp/sdcard-image-n1sdp: Fix N1SDP dependencies adam.johnston
@ 2022-07-27 21:36 ` Jon Mason
2022-07-29 19:15 ` Jon Mason
2022-07-31 3:05 ` Jon Mason
7 siblings, 0 replies; 9+ messages in thread
From: Jon Mason @ 2022-07-27 21:36 UTC (permalink / raw)
To: meta-arm, adam.johnston, Ross.Burton; +Cc: nd
On Wed, 27 Jul 2022 16:56:38 +0100, adam.johnston@arm.com wrote:
> This patch re-configures the N1SDP for trusted boot, using the changes
> published by the Silicon Solutions team in N1SDP-2022.02.04 and up-streamed
> to trusted-firmware-a and scp-firmware.
>
> arm-bsp/trusted-firmware-a: For N1SDP only, upgraded to 2.7.0 and configured
> for trusted boot
>
> [...]
Applied, thanks!
[1/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot
commit: d9c6ff98c316da14d225290471c586da824797a2
[2/5] arm-bsp/scp-firmware: N1SDP trusted boot
commit: 1e13b8b419d119a133882aa6db9d5ab17e4cb96c
[3/5] arm-bsp/sdcard-image-n1sdp: N1SDP trusted boot
commit: 01aa5431d66c1dbcd5d8f87de16f49af5ccbb9ca
[4/5] arm-bsp/edk2-firmware: Add NT_FW_CONFIG to N1SDP to fix aborts when accessing virtual memory
commit: 2b392ebd3cf92cf1f62b53a13774649ca6be11dd
[5/5] arm-bsp/sdcard-image-n1sdp: Fix N1SDP dependencies
commit: 6301b32aec4ff3b1c1545df6a0a5247a15491d14
Best regards,
--
Jon Mason <jon.mason@arm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot
2022-07-27 15:56 [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot adam.johnston
` (5 preceding siblings ...)
2022-07-27 21:36 ` [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot Jon Mason
@ 2022-07-29 19:15 ` Jon Mason
2022-07-31 3:05 ` Jon Mason
7 siblings, 0 replies; 9+ messages in thread
From: Jon Mason @ 2022-07-29 19:15 UTC (permalink / raw)
To: meta-arm, adam.johnston, Ross.Burton; +Cc: nd
On Wed, 27 Jul 2022 16:56:38 +0100, adam.johnston@arm.com wrote:
> This patch re-configures the N1SDP for trusted boot, using the changes
> published by the Silicon Solutions team in N1SDP-2022.02.04 and up-streamed
> to trusted-firmware-a and scp-firmware.
>
> arm-bsp/trusted-firmware-a: For N1SDP only, upgraded to 2.7.0 and configured
> for trusted boot
>
> [...]
Applied, thanks!
[1/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot
commit: d9c6ff98c316da14d225290471c586da824797a2
[2/5] arm-bsp/scp-firmware: N1SDP trusted boot
commit: 1e13b8b419d119a133882aa6db9d5ab17e4cb96c
[3/5] arm-bsp/sdcard-image-n1sdp: N1SDP trusted boot
commit: 01aa5431d66c1dbcd5d8f87de16f49af5ccbb9ca
[4/5] arm-bsp/edk2-firmware: Add NT_FW_CONFIG to N1SDP to fix aborts when accessing virtual memory
commit: 2b392ebd3cf92cf1f62b53a13774649ca6be11dd
[5/5] arm-bsp/sdcard-image-n1sdp: Fix N1SDP dependencies
commit: 6301b32aec4ff3b1c1545df6a0a5247a15491d14
Best regards,
--
Jon Mason <jon.mason@arm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot
2022-07-27 15:56 [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot adam.johnston
` (6 preceding siblings ...)
2022-07-29 19:15 ` Jon Mason
@ 2022-07-31 3:05 ` Jon Mason
7 siblings, 0 replies; 9+ messages in thread
From: Jon Mason @ 2022-07-31 3:05 UTC (permalink / raw)
To: meta-arm, adam.johnston, Ross.Burton; +Cc: nd
On Wed, 27 Jul 2022 16:56:38 +0100, adam.johnston@arm.com wrote:
> This patch re-configures the N1SDP for trusted boot, using the changes
> published by the Silicon Solutions team in N1SDP-2022.02.04 and up-streamed
> to trusted-firmware-a and scp-firmware.
>
> arm-bsp/trusted-firmware-a: For N1SDP only, upgraded to 2.7.0 and configured
> for trusted boot
>
> [...]
Applied, thanks!
[1/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot
commit: d9c6ff98c316da14d225290471c586da824797a2
[2/5] arm-bsp/scp-firmware: N1SDP trusted boot
commit: 1e13b8b419d119a133882aa6db9d5ab17e4cb96c
[3/5] arm-bsp/sdcard-image-n1sdp: N1SDP trusted boot
commit: 01aa5431d66c1dbcd5d8f87de16f49af5ccbb9ca
[4/5] arm-bsp/edk2-firmware: Add NT_FW_CONFIG to N1SDP to fix aborts when accessing virtual memory
commit: 2b392ebd3cf92cf1f62b53a13774649ca6be11dd
[5/5] arm-bsp/sdcard-image-n1sdp: Fix N1SDP dependencies
commit: 6301b32aec4ff3b1c1545df6a0a5247a15491d14
Best regards,
--
Jon Mason <jon.mason@arm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2022-07-31 3:06 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-27 15:56 [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 1/5] " adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 2/5] arm-bsp/scp-firmware: " adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 3/5] arm-bsp/sdcard-image-n1sdp: " adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 4/5] arm-bsp/edk2-firmware: Add NT_FW_CONFIG to N1SDP to fix aborts when accessing virtual memory adam.johnston
2022-07-27 15:56 ` [PATCH kirkstone 5/5] arm-bsp/sdcard-image-n1sdp: Fix N1SDP dependencies adam.johnston
2022-07-27 21:36 ` [PATCH kirkstone 0/5] arm-bsp/trusted-firmware-a: N1SDP trusted boot Jon Mason
2022-07-29 19:15 ` Jon Mason
2022-07-31 3:05 ` Jon Mason
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.