* [PATCH 1/6] CI: use core-image-base for faster boot
@ 2026-03-31 13:06 Jon Mason
2026-03-31 13:06 ` [PATCH 2/6] Revert "arm/execstack: remove, no longer needed" Jon Mason
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Jon Mason @ 2026-03-31 13:06 UTC (permalink / raw)
To: meta-arm
Signed-off-by: Jon Mason <jon.mason@arm.com>
---
ci/fvp.yml | 2 +-
ci/sgi575.yml | 3 ---
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/ci/fvp.yml b/ci/fvp.yml
index 62ff0d29c905..0dc1e2602ab1 100644
--- a/ci/fvp.yml
+++ b/ci/fvp.yml
@@ -12,4 +12,4 @@ local_conf_header:
TEST_SUITES:remove = "opkg dnf"
target:
- - core-image-full-cmdline
+ - core-image-base
diff --git a/ci/sgi575.yml b/ci/sgi575.yml
index a2555a84b8b7..d6e33894e890 100644
--- a/ci/sgi575.yml
+++ b/ci/sgi575.yml
@@ -12,6 +12,3 @@ local_conf_header:
COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:sgi575 = "sgi575"
machine: sgi575
-
-target:
- - core-image-base
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/6] Revert "arm/execstack: remove, no longer needed"
2026-03-31 13:06 [PATCH 1/6] CI: use core-image-base for faster boot Jon Mason
@ 2026-03-31 13:06 ` Jon Mason
2026-03-31 13:06 ` [PATCH 3/6] arm/fvps: rename rdv3-r1 Jon Mason
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Jon Mason @ 2026-03-31 13:06 UTC (permalink / raw)
To: meta-arm
Some of the soon-to-be-added FVPs have the execute issue still. So,
re-add this until it can be resolved. Also, address S issue that
changed upstream between the original removal and now.
---
.../recipes-devtools/fvp/execstack-native.bb | 23 ++++++++++++++++
.../recipes-devtools/fvp/remove-execstack.inc | 26 +++++++++++++++++++
2 files changed, 49 insertions(+)
create mode 100644 meta-arm/recipes-devtools/fvp/execstack-native.bb
create mode 100644 meta-arm/recipes-devtools/fvp/remove-execstack.inc
diff --git a/meta-arm/recipes-devtools/fvp/execstack-native.bb b/meta-arm/recipes-devtools/fvp/execstack-native.bb
new file mode 100644
index 000000000000..0bd8f6f33d07
--- /dev/null
+++ b/meta-arm/recipes-devtools/fvp/execstack-native.bb
@@ -0,0 +1,23 @@
+SUMMARY = "execstack tool"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+DEPENDS = "binutils-native elfutils-native"
+
+SRC_URI = "git://git.yoctoproject.org/prelink-cross;protocol=https;branch=master"
+SRCREV = "ff2561c02ade96c5d4d56ddd4e27ff064840a176"
+PV = "1.0+git${SRCPV}"
+
+# The last tagged release was 20151030. Track this as a git tree to
+# see if there are any updates
+UPSTREAM_CHECK_COMMITS = "1"
+
+inherit autotools native
+
+do_compile() {
+ oe_runmake -C ${B}/src execstack
+}
+
+do_install() {
+ oe_runmake -C ${B}/src install-binPROGRAMS DESTDIR="${D}"
+}
diff --git a/meta-arm/recipes-devtools/fvp/remove-execstack.inc b/meta-arm/recipes-devtools/fvp/remove-execstack.inc
new file mode 100644
index 000000000000..7f02b5027b27
--- /dev/null
+++ b/meta-arm/recipes-devtools/fvp/remove-execstack.inc
@@ -0,0 +1,26 @@
+# Clear the executable stack flag on named shared libraries. This are typically
+# not needed, and glibc 2.41 will refuse to dlopen() a library that expects
+# an executable stack.
+#
+# The stack permissions can be checked with readelf -lW <.so> | grep GNU_STACK.
+# RW is read/write, RWE is read/write/execute.
+
+DEPENDS += "execstack-native"
+
+REMOVE_EXECSTACKS ?= ""
+
+do_install:append() {
+ for SO in ${REMOVE_EXECSTACKS}; do
+ NAME=$(basename $SO)
+ SO=${D}$SO
+
+ test -f $SO || bbfatal remove-execstack: cannot find $SO
+
+ if execstack --query $SO | grep -q ^X; then
+ bbnote "Stripping executable stack bit on $NAME"
+ execstack --clear-execstack $SO
+ else
+ bbwarn "Executable stack stripping no longer required for $NAME, remove"
+ fi
+ done
+}
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/6] arm/fvps: rename rdv3-r1
2026-03-31 13:06 [PATCH 1/6] CI: use core-image-base for faster boot Jon Mason
2026-03-31 13:06 ` [PATCH 2/6] Revert "arm/execstack: remove, no longer needed" Jon Mason
@ 2026-03-31 13:06 ` Jon Mason
2026-03-31 13:07 ` [PATCH 4/6] arm-bsp/rdv1: add support Jon Mason
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Jon Mason @ 2026-03-31 13:06 UTC (permalink / raw)
To: meta-arm
Rename rdv3-r1 to be more consistent with other machines and match
documentation/website.
Signed-off-by: Jon Mason <jon.mason@arm.com>
---
ci/fvps.yml | 4 ++--
.../recipes-devtools/fvp/{fvp-rd-v3-r1.bb => fvp-rdv3-r1.bb} | 0
2 files changed, 2 insertions(+), 2 deletions(-)
rename meta-arm/recipes-devtools/fvp/{fvp-rd-v3-r1.bb => fvp-rdv3-r1.bb} (100%)
diff --git a/ci/fvps.yml b/ci/fvps.yml
index f64885a35c9a..8ec22a30f6af 100644
--- a/ci/fvps.yml
+++ b/ci/fvps.yml
@@ -32,8 +32,8 @@ target:
- nativesdk-fvp-rd1-ae
# Infrastructure FVPs
- - fvp-rd-v3-r1
- - nativesdk-fvp-rd-v3-r1
+ - fvp-rdv3-r1
+ - nativesdk-fvp-rdv3-r1
# These are x86 only... :(
- nativesdk-fvp-sgi575
diff --git a/meta-arm/recipes-devtools/fvp/fvp-rd-v3-r1.bb b/meta-arm/recipes-devtools/fvp/fvp-rdv3-r1.bb
similarity index 100%
rename from meta-arm/recipes-devtools/fvp/fvp-rd-v3-r1.bb
rename to meta-arm/recipes-devtools/fvp/fvp-rdv3-r1.bb
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/6] arm-bsp/rdv1: add support
2026-03-31 13:06 [PATCH 1/6] CI: use core-image-base for faster boot Jon Mason
2026-03-31 13:06 ` [PATCH 2/6] Revert "arm/execstack: remove, no longer needed" Jon Mason
2026-03-31 13:06 ` [PATCH 3/6] arm/fvps: rename rdv3-r1 Jon Mason
@ 2026-03-31 13:07 ` Jon Mason
2026-03-31 13:07 ` [PATCH 5/6] arm-bsp/rdn2: " Jon Mason
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Jon Mason @ 2026-03-31 13:07 UTC (permalink / raw)
To: meta-arm
Add support for Neoverse Reference Design version 1
Signed-off-by: Jon Mason <jon.mason@arm.com>
---
.gitlab-ci.yml | 9 +++
ci/fvps.yml | 1 +
ci/rdv1.yml | 14 ++++
meta-arm-bsp/conf/machine/rdv1.conf | 67 +++++++++++++++++++
.../runtime/cases/parselogs-ignores-rdv1.txt | 3 +
.../scp-firmware/scp-firmware-rdv1.inc | 7 ++
.../scp-firmware/scp-firmware_%.bbappend | 1 +
.../trusted-firmware-a-rdv1.inc | 19 ++++++
.../trusted-firmware-a_%.bbappend | 1 +
.../recipes-bsp/uefi/edk2-firmware-rdv1.inc | 7 ++
.../recipes-bsp/uefi/edk2-firmware_%.bbappend | 1 +
.../linux/linux-arm-platforms.inc | 8 +++
meta-arm/recipes-devtools/fvp/fvp-rdv1.bb | 14 ++++
13 files changed, 152 insertions(+)
create mode 100644 ci/rdv1.yml
create mode 100644 meta-arm-bsp/conf/machine/rdv1.conf
create mode 100644 meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdv1.txt
create mode 100644 meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv1.inc
create mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdv1.inc
create mode 100644 meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv1.inc
create mode 100644 meta-arm/recipes-devtools/fvp/fvp-rdv1.bb
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a1e40e365d7c..20b3998e787b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -306,6 +306,15 @@ qemuarmv5:
- DISTRO: poky-tiny
TESTING: testimage
+rdv1:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: testimage
+ # FVP binary is x86-only
+ tags:
+ - x86_64
+
sbsa-ref:
extends: .build
parallel:
diff --git a/ci/fvps.yml b/ci/fvps.yml
index 8ec22a30f6af..db49b3e979a9 100644
--- a/ci/fvps.yml
+++ b/ci/fvps.yml
@@ -35,6 +35,7 @@ target:
- fvp-rdv3-r1
- nativesdk-fvp-rdv3-r1
# These are x86 only... :(
+ - nativesdk-fvp-rdv1
- nativesdk-fvp-sgi575
# IoT FVPs
diff --git a/ci/rdv1.yml b/ci/rdv1.yml
new file mode 100644
index 000000000000..52cc4b32ad2b
--- /dev/null
+++ b/ci/rdv1.yml
@@ -0,0 +1,14 @@
+# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
+
+header:
+ version: 14
+ includes:
+ - ci/base.yml
+ - ci/fvp.yml
+
+local_conf_header:
+ sshpregen: |
+ # Allow the use of the pregen keys as this is CI so safe
+ COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:rdv1 = "rdv1"
+
+machine: rdv1
diff --git a/meta-arm-bsp/conf/machine/rdv1.conf b/meta-arm-bsp/conf/machine/rdv1.conf
new file mode 100644
index 000000000000..e3b6ce736ece
--- /dev/null
+++ b/meta-arm-bsp/conf/machine/rdv1.conf
@@ -0,0 +1,67 @@
+# Configuration for Arm Neoverse v1 Reference Design development board
+
+#@TYPE: Machine
+#@NAME: RD V1
+#@DESCRIPTION: Machine configuration for RD V1
+
+require conf/machine/include/arm/arch-armv8-4a.inc
+
+EXTRA_IMAGEDEPENDS += "virtual/control-processor-firmware"
+EXTRA_IMAGEDEPENDS += "trusted-firmware-a"
+
+# 2.13.0 removes support for rdv1
+PREFERRED_VERSION_trusted-firmware-a ?= "2.12.%"
+
+KERNEL_IMAGETYPE ?= "Image"
+PREFERRED_PROVIDER_virtual/kernel:forcevariable = "linux-yocto"
+SERIAL_CONSOLES = "115200;ttyAMA0 115200;ttyAMA1"
+
+EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
+MACHINE_FEATURES += "efi"
+
+IMAGE_FSTYPES:forcevariable = "cpio.gz wic"
+IMAGE_NAME_SUFFIX = ""
+IMAGE_CLASSES += "fvpboot"
+
+WKS_FILE ?= "efi-disk.wks.in"
+WKS_FILE_DEPENDS:append = " ${EXTRA_IMAGEDEPENDS}"
+
+# testimage config
+TEST_TARGET = "OEFVPTarget"
+TEST_TARGET_IP = "127.0.0.1:2222"
+DEFAULT_TEST_SUITES:append = " fvp_boot fvp_devices"
+TEST_FVP_DEVICES ?= "watchdog networking"
+
+# FVP Config
+FVP_PROVIDER ?= "fvp-rdv1-native"
+FVP_EXE ?= "FVP_RD_V1"
+
+FVP_CONFIG[css.cmn_650.force_rnsam_internal] ?= "true"
+FVP_DATA ?= "css.scp.armcortexm7ct=scp-firmware/scp_ramfw.bin@0x0BD80000 \
+ css.mcp.armcortexm7ct=scp-firmware/mcp_ramfw.bin@0x0BF80000"
+
+FVP_CONFIG[css.mcp.ROMloader.fname] ?= "scp-firmware/mcp_romfw.bin"
+FVP_CONFIG[css.scp.ROMloader.fname] ?= "scp-firmware/scp_romfw.bin"
+
+FVP_CONFIG[css.trustedBootROMloader.fname] ?= "trusted-firmware-a/bl1.bin"
+FVP_CONFIG[board.flashloader0.fname] ?= "trusted-firmware-a/fip.bin"
+
+FVP_CONSOLES[default] = "terminal_uart_ap"
+FVP_TERMINALS[css.scp.terminal_uart_aon] ?= "SCP Console"
+FVP_TERMINALS[css.mcp.terminal_uart0] ?= ""
+FVP_TERMINALS[css.mcp.terminal_uart1] ?= ""
+FVP_TERMINALS[css.terminal_uart_ap] ?= "Console"
+FVP_TERMINALS[css.terminal_uart1_ap] ?= ""
+FVP_TERMINALS[soc.terminal_s0] ?= ""
+FVP_TERMINALS[soc.terminal_s1] ?= ""
+FVP_TERMINALS[soc.terminal_mcp] ?= ""
+FVP_TERMINALS[board.terminal_0] ?= ""
+FVP_TERMINALS[board.terminal_1] ?= ""
+
+FVP_CONFIG[css.gic_distributor.ITS-device-bits] ?= "20"
+
+# Virtio configuration
+FVP_CONFIG[board.virtio_net.enabled] ?= "1"
+FVP_CONFIG[board.virtio_net.hostbridge.userNetworking] ?= "1"
+FVP_CONFIG[board.virtio_net.hostbridge.userNetPorts] = "2222=22"
+FVP_CONFIG[board.virtioblockdevice.image_path] ?= "${IMAGE_NAME}.wic"
diff --git a/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdv1.txt b/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdv1.txt
new file mode 100644
index 000000000000..ff8db8d52e7c
--- /dev/null
+++ b/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdv1.txt
@@ -0,0 +1,3 @@
+can't derive routing for PCI INT A
+jitterentropy: Initialization failed with host not compliant with requirements: 2
+PCI: OF: of_root node is NULL, cannot create PCI host bridge node
diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv1.inc b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv1.inc
new file mode 100644
index 000000000000..ccd77f6bff2a
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv1.inc
@@ -0,0 +1,7 @@
+# RD V1 specific SCP configurations and build instructions
+
+COMPATIBLE_MACHINE:rdv1 = "rdv1"
+SCP_PRODUCT_GROUP = "neoverse-rd"
+SCP_PLATFORM = "rdv1"
+
+SCP_LOG_LEVEL = "INFO"
diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend
index bf0af54a671b..4b1bd09e0417 100644
--- a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend
@@ -3,6 +3,7 @@
MACHINE_SCP_REQUIRE ?= ""
MACHINE_SCP_REQUIRE:juno = "scp-firmware-juno.inc"
+MACHINE_SCP_REQUIRE:rdv1 = "scp-firmware-rdv1.inc"
MACHINE_SCP_REQUIRE:sgi575 = "scp-firmware-sgi575.inc"
require ${MACHINE_SCP_REQUIRE}
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdv1.inc b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdv1.inc
new file mode 100644
index 000000000000..ccd4362d7751
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdv1.inc
@@ -0,0 +1,19 @@
+# RD V1 specific TFA support
+
+COMPATIBLE_MACHINE = "rdv1"
+TFA_PLATFORM = "rdv1"
+TFA_BUILD_TARGET = "all fip"
+TFA_INSTALL_TARGET = "bl1 fip"
+TFA_DEBUG = "1"
+TFA_MBEDTLS = "1"
+TFA_UBOOT = "0"
+TFA_UEFI = "1"
+
+EXTRA_OEMAKE += "TRUSTED_BOARD_BOOT=1 GENERATE_COT=1 ARM_ROTPK_LOCATION=devel_rsa \
+ ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem"
+
+# If GENERATE_COT is set, then tf-a will try to use local poetry install
+# to run the python cot-dt2c command. Disable the local poetry and use
+# the provided cot-dt2c.
+EXTRA_OEMAKE += "POETRY=''"
+DEPENDS += "cot-dt2c-native"
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
index 5b4043e87bea..7e39487c49cf 100644
--- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
@@ -4,6 +4,7 @@ MACHINE_TFA_REQUIRE ?= ""
MACHINE_TFA_REQUIRE:corstone1000 = "trusted-firmware-a-corstone1000.inc"
MACHINE_TFA_REQUIRE:fvp-base = "trusted-firmware-a-fvp-base.inc"
MACHINE_TFA_REQUIRE:juno = "trusted-firmware-a-juno.inc"
+MACHINE_TFA_REQUIRE:rdv1 = "trusted-firmware-a-rdv1.inc"
MACHINE_TFA_REQUIRE:sbsa-ref = "trusted-firmware-a-sbsa-ref.inc"
MACHINE_TFA_REQUIRE:sgi575 = "trusted-firmware-a-sgi575.inc"
diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv1.inc b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv1.inc
new file mode 100644
index 000000000000..7301a101975a
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv1.inc
@@ -0,0 +1,7 @@
+# RD V1 specific EDK2 configurations
+EDK2_BUILD_RELEASE = "0"
+EDK2_PLATFORM = "RdV1"
+EDK2_PLATFORM_DSC = "Platform/ARM/SgiPkg/RdV1/RdV1.dsc"
+EDK2_BIN_NAME = "BL33_AP_UEFI.fd"
+
+COMPATIBLE_MACHINE = "rdv1"
diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend
index 76ffa55521b3..17a2d23c9cda 100644
--- a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend
@@ -4,6 +4,7 @@ MACHINE_EDK2_REQUIRE ?= ""
MACHINE_EDK2_REQUIRE:fvp-base = "edk2-firmware-fvp-base.inc"
MACHINE_EDK2_REQUIRE:juno = "edk2-firmware-juno.inc"
+MACHINE_EDK2_REQUIRE:rdv1 = "edk2-firmware-rdv1.inc"
MACHINE_EDK2_REQUIRE:sbsa-ref = "edk2-firmware-sbsa-ref.inc"
MACHINE_EDK2_REQUIRE:sgi575 = "edk2-firmware-sgi575.inc"
diff --git a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
index a0c4128fca7d..a70de61d78e9 100644
--- a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
+++ b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
@@ -110,6 +110,14 @@ FILESEXTRAPATHS:prepend:juno := "${ARMBSPFILESPATHS}"
COMPATIBLE_MACHINE:musca-b1 = "(^$)"
COMPATIBLE_MACHINE:musca-s1 = "(^$)"
+#
+# RDV1 KMACHINE
+#
+COMPATIBLE_MACHINE:rdv1 = "rdv1"
+KBUILD_DEFCONFIG:rdv1 = "defconfig"
+KCONFIG_MODE:rdv1 = "--alldefconfig"
+KCONF_BSP_AUDIT_LEVEL:rdv1 = "0"
+
#
# SGI575 KMACHINE
#
diff --git a/meta-arm/recipes-devtools/fvp/fvp-rdv1.bb b/meta-arm/recipes-devtools/fvp/fvp-rdv1.bb
new file mode 100644
index 000000000000..23804bf3fef4
--- /dev/null
+++ b/meta-arm/recipes-devtools/fvp/fvp-rdv1.bb
@@ -0,0 +1,14 @@
+require fvp-ecosystem.inc
+
+MODEL = "RD-V1"
+MODEL_CODE = "FVP_RD_V1"
+PV = "11.17.29"
+
+SRC_URI = "https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Neoverse-Infrastructure/${MODEL}/${MODEL_CODE}_${PV_URL}_${FVP_ARCH}.tgz;subdir=${BP};name=fvp-${HOST_ARCH}"
+SRC_URI[fvp-x86_64.sha256sum] = "715c0e0264fc3df961a0b9ff4c4399d55e4ccf4efb0944a412141d97873027a3"
+
+# The CSS used in the FVP homepage make it too difficult to query with the tooling currently in Yocto
+UPSTREAM_VERSION_UNKNOWN = "1"
+
+LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \
+ file://license_terms/third_party_licenses.txt;md5=41029e71051b1c786bae3112a29905a7"
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 5/6] arm-bsp/rdn2: add support
2026-03-31 13:06 [PATCH 1/6] CI: use core-image-base for faster boot Jon Mason
` (2 preceding siblings ...)
2026-03-31 13:07 ` [PATCH 4/6] arm-bsp/rdv1: add support Jon Mason
@ 2026-03-31 13:07 ` Jon Mason
2026-03-31 13:07 ` [PATCH 6/6] arm-bsp/rdv2: " Jon Mason
2026-03-31 18:42 ` [PATCH 1/6] CI: use core-image-base for faster boot Jon Mason
5 siblings, 0 replies; 7+ messages in thread
From: Jon Mason @ 2026-03-31 13:07 UTC (permalink / raw)
To: meta-arm
Add support for Neoverse Reference Design N2
Use the rdinfra sources to get it booting
Signed-off-by: Jon Mason <jon.mason@arm.com>
---
.gitlab-ci.yml | 6 ++
ci/fvps.yml | 2 +
ci/rdn2.yml | 14 +++++
meta-arm-bsp/conf/machine/rdn2.conf | 58 +++++++++++++++++++
.../runtime/cases/parselogs-ignores-rdn2.txt | 2 +
.../scp-firmware/scp-firmware-rdn2.inc | 14 +++++
.../scp-firmware/scp-firmware_%.bbappend | 1 +
.../trusted-firmware-a-rdn2.inc | 29 ++++++++++
.../trusted-firmware-a_%.bbappend | 1 +
.../recipes-bsp/uefi/edk2-firmware-rdn2.inc | 17 ++++++
.../recipes-bsp/uefi/edk2-firmware_%.bbappend | 1 +
.../linux/linux-arm-platforms.inc | 8 +++
meta-arm/recipes-devtools/fvp/fvp-rdn2.bb | 20 +++++++
13 files changed, 173 insertions(+)
create mode 100644 ci/rdn2.yml
create mode 100644 meta-arm-bsp/conf/machine/rdn2.conf
create mode 100644 meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdn2.txt
create mode 100644 meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdn2.inc
create mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdn2.inc
create mode 100644 meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdn2.inc
create mode 100644 meta-arm/recipes-devtools/fvp/fvp-rdn2.bb
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 20b3998e787b..a07b82abb85d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -306,6 +306,12 @@ qemuarmv5:
- DISTRO: poky-tiny
TESTING: testimage
+rdn2:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: testimage
+
rdv1:
extends: .build
parallel:
diff --git a/ci/fvps.yml b/ci/fvps.yml
index db49b3e979a9..185a4f3de846 100644
--- a/ci/fvps.yml
+++ b/ci/fvps.yml
@@ -34,6 +34,8 @@ target:
# Infrastructure FVPs
- fvp-rdv3-r1
- nativesdk-fvp-rdv3-r1
+ - fvp-rdn2
+ - nativesdk-fvp-rdn2
# These are x86 only... :(
- nativesdk-fvp-rdv1
- nativesdk-fvp-sgi575
diff --git a/ci/rdn2.yml b/ci/rdn2.yml
new file mode 100644
index 000000000000..16e9c1629738
--- /dev/null
+++ b/ci/rdn2.yml
@@ -0,0 +1,14 @@
+# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
+
+header:
+ version: 14
+ includes:
+ - ci/base.yml
+ - ci/fvp.yml
+
+local_conf_header:
+ sshpregen: |
+ # Allow the use of the pregen keys as this is CI so safe
+ COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:rdn2 = "rdn2"
+
+machine: rdn2
diff --git a/meta-arm-bsp/conf/machine/rdn2.conf b/meta-arm-bsp/conf/machine/rdn2.conf
new file mode 100644
index 000000000000..cc9ba06c179e
--- /dev/null
+++ b/meta-arm-bsp/conf/machine/rdn2.conf
@@ -0,0 +1,58 @@
+# Configuration for Arm Neoverse N2 Reference Design development board
+
+#@TYPE: Machine
+#@NAME: RD N2
+#@DESCRIPTION: Machine configuration for RD N2
+
+require conf/machine/include/arm/armv9a/tune-neoversen2.inc
+
+EXTRA_IMAGEDEPENDS += "virtual/control-processor-firmware"
+EXTRA_IMAGEDEPENDS += "trusted-firmware-a"
+
+KERNEL_IMAGETYPE ?= "Image"
+PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
+SERIAL_CONSOLES = "115200;ttyAMA2"
+EXTRA_IMAGEDEPENDS += "edk2-firmware"
+
+EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
+MACHINE_FEATURES += "efi"
+
+IMAGE_FSTYPES:forcevariable = "cpio.gz wic"
+IMAGE_NAME_SUFFIX = ""
+IMAGE_CLASSES += "fvpboot"
+
+WKS_FILE ?= "efi-disk.wks.in"
+WKS_FILE_DEPENDS:append = " ${EXTRA_IMAGEDEPENDS}"
+
+# testimage config
+TEST_TARGET = "OEFVPTarget"
+TEST_TARGET_IP = "127.0.0.1:2222"
+DEFAULT_TEST_SUITES:append = " fvp_boot fvp_devices"
+TEST_FVP_DEVICES ?= "watchdog networking"
+
+# FVP Config
+FVP_PROVIDER ?= "fvp-rdn2-native"
+FVP_EXE ?= "FVP_RD_N2"
+
+FVP_DATA ?= "css.scp.armcortexm7ct=scp-firmware/scp_ramfw.bin@0x0BD80000 \
+ css.mcp.armcortexm7ct=scp-firmware/mcp_ramfw.bin@0x0BF80000"
+
+FVP_CONFIG[css.gic_distributor.ITS-device-bits] ?= "20"
+FVP_CONFIG[css.mcp.ROMloader.fname] ?= "scp-firmware/mcp_romfw.bin"
+FVP_CONFIG[css.scp.ROMloader.fname] ?= "scp-firmware/scp_romfw.bin"
+FVP_CONFIG[css.trustedBootROMloader.fname] ?= "trusted-firmware-a/bl1.bin"
+FVP_CONFIG[board.flashloader0.fname] ?= "trusted-firmware-a/fip.bin"
+
+FVP_CONFIG[board.dram_size] ?= "0x200000000"
+
+# Virtio configuration
+FVP_CONFIG[board.virtio_net.enabled] ?= "1"
+FVP_CONFIG[board.virtio_net.hostbridge.userNetworking] ?= "1"
+FVP_CONFIG[board.virtio_net.hostbridge.userNetPorts] = "2222=22"
+FVP_CONFIG[board.virtioblockdevice.image_path] ?= "${IMAGE_NAME}.wic"
+
+FVP_CONSOLES[default] = "terminal_ns_uart_ap"
+FVP_TERMINALS[css.scp.terminal_uart_scp] ?= "SCP Console"
+FVP_TERMINALS[css.mcp.terminal_uart_mcp] ?= "MCP Console"
+FVP_TERMINALS[css.terminal_ns_uart_ap] ?= "NS Console"
+FVP_TERMINALS[css.terminal_s_uart_ap] ?= "S Console"
diff --git a/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdn2.txt b/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdn2.txt
new file mode 100644
index 000000000000..7b55e8ea61f0
--- /dev/null
+++ b/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdn2.txt
@@ -0,0 +1,2 @@
+arch_timer: Failed to initialize memory-mapped timer.
+PCI: OF: of_root node is NULL, cannot create PCI host bridge node
diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdn2.inc b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdn2.inc
new file mode 100644
index 000000000000..b4e0437b20c3
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdn2.inc
@@ -0,0 +1,14 @@
+# RD N2 specific SCP configurations and build instructions
+
+COMPATIBLE_MACHINE:rdn2 = "rdn2"
+SCP_PRODUCT_GROUP = "neoverse-rd"
+SCP_PLATFORM = "rdn2"
+
+EXTRA_OECMAKE += "-D SCP_PLATFORM_VARIANT=0"
+
+SCP_LOG_LEVEL = "DEBUG"
+
+SRC_URI_SCP_FIRMWARE = "gitsm://gitlab.arm.com/infra-solutions/reference-design/platsw/scp-firmware.git;protocol=https"
+SRCBRANCH = "refinfra-bmc"
+# Use the RD-INFRA-2024.12.20 tag
+SRCREV = "62bc3f079d1ae5780df1459d4c66de2dbee54359"
diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend
index 4b1bd09e0417..222bee5e52e1 100644
--- a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend
@@ -3,6 +3,7 @@
MACHINE_SCP_REQUIRE ?= ""
MACHINE_SCP_REQUIRE:juno = "scp-firmware-juno.inc"
+MACHINE_SCP_REQUIRE:rdn2 = "scp-firmware-rdn2.inc"
MACHINE_SCP_REQUIRE:rdv1 = "scp-firmware-rdv1.inc"
MACHINE_SCP_REQUIRE:sgi575 = "scp-firmware-sgi575.inc"
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdn2.inc b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdn2.inc
new file mode 100644
index 000000000000..0c09818c9024
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdn2.inc
@@ -0,0 +1,29 @@
+# RD N2 specific TFA support
+
+COMPATIBLE_MACHINE = "rdn2"
+TFA_PLATFORM = "rdn2"
+TFA_BUILD_TARGET = "all fip"
+TFA_INSTALL_TARGET = "bl1 fip"
+TFA_DEBUG = "1"
+TFA_MBEDTLS = "1"
+TFA_UBOOT = "0"
+TFA_UEFI = "1"
+
+EXTRA_OEMAKE += "TRUSTED_BOARD_BOOT=1 GENERATE_COT=1 ARM_ROTPK_LOCATION=devel_rsa \
+ ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem"
+
+# If GENERATE_COT is set, then tf-a will try to use local poetry install
+# to run the python cot-dt2c command. Disable the local poetry and use
+# the provided cot-dt2c.
+EXTRA_OEMAKE += "POETRY=''"
+DEPENDS += "cot-dt2c-native"
+
+SRC_URI_TRUSTED_FIRMWARE_A = "git://gitlab.arm.com/infra-solutions/reference-design/platsw/trusted-firmware-a.git;protocol=https"
+SRCBRANCH = "refinfra"
+# SHA not in any branches. so use RD-INFRA-2025.07.03
+SRCREV_tfa = "a4b376b128bb5b91771002f7808566f53c8d9f3a"
+
+# FIXME - hacking around using the 2.14 based recipe
+SRC_URI:remove = "file://0001-feat-build-add-HOSTLDFLAGS-to-pass-flags-to-host-lin.patch"
+LIC_FILES_CHKSUM:remove = "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e"
+LIC_FILES_CHKSUM += "file://docs/license.rst;md5=1118e32884721c0be33267bd7ae11130"
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
index 7e39487c49cf..9a5d4aa54fd1 100644
--- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
@@ -4,6 +4,7 @@ MACHINE_TFA_REQUIRE ?= ""
MACHINE_TFA_REQUIRE:corstone1000 = "trusted-firmware-a-corstone1000.inc"
MACHINE_TFA_REQUIRE:fvp-base = "trusted-firmware-a-fvp-base.inc"
MACHINE_TFA_REQUIRE:juno = "trusted-firmware-a-juno.inc"
+MACHINE_TFA_REQUIRE:rdn2 = "trusted-firmware-a-rdn2.inc"
MACHINE_TFA_REQUIRE:rdv1 = "trusted-firmware-a-rdv1.inc"
MACHINE_TFA_REQUIRE:sbsa-ref = "trusted-firmware-a-sbsa-ref.inc"
MACHINE_TFA_REQUIRE:sgi575 = "trusted-firmware-a-sgi575.inc"
diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdn2.inc b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdn2.inc
new file mode 100644
index 000000000000..ef069c789055
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdn2.inc
@@ -0,0 +1,17 @@
+# RD N2 specific EDK2 configurations
+EDK2_BUILD_RELEASE = "0"
+EDK2_PLATFORM = "RdN2"
+EDK2_PLATFORM_DSC = "Platform/ARM/SgiPkg/RdN2/RdN2.dsc"
+EDK2_BIN_NAME = "BL33_AP_UEFI.fd"
+
+COMPATIBLE_MACHINE = "rdn2"
+
+SRC_URI_EDK2 = "gitsm://gitlab.arm.com/infra-solutions/reference-design/platsw/edk2.git;protocol=https"
+SRC_URI_EDK2_PLATFORMS = "git://gitlab.arm.com/infra-solutions/reference-design/platsw/edk2-platforms.git;protocol=https"
+
+SRCBRANCH_edk2 = "refinfra"
+SRCBRANCH_edk2_platforms = "refinfra"
+
+# Use the RD-INFRA-2024.12.20 tag
+SRCREV_edk2 = "dd25905d63ec72d6e06804155fda1098d10da19e"
+SRCREV_edk2-platforms = "f6ed3b0f92eeaf380638f77d8b5ace805facb301"
diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend
index 17a2d23c9cda..3bb1319d1545 100644
--- a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend
@@ -4,6 +4,7 @@ MACHINE_EDK2_REQUIRE ?= ""
MACHINE_EDK2_REQUIRE:fvp-base = "edk2-firmware-fvp-base.inc"
MACHINE_EDK2_REQUIRE:juno = "edk2-firmware-juno.inc"
+MACHINE_EDK2_REQUIRE:rdn2 = "edk2-firmware-rdn2.inc"
MACHINE_EDK2_REQUIRE:rdv1 = "edk2-firmware-rdv1.inc"
MACHINE_EDK2_REQUIRE:sbsa-ref = "edk2-firmware-sbsa-ref.inc"
MACHINE_EDK2_REQUIRE:sgi575 = "edk2-firmware-sgi575.inc"
diff --git a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
index a70de61d78e9..c537c352f78b 100644
--- a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
+++ b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
@@ -110,6 +110,14 @@ FILESEXTRAPATHS:prepend:juno := "${ARMBSPFILESPATHS}"
COMPATIBLE_MACHINE:musca-b1 = "(^$)"
COMPATIBLE_MACHINE:musca-s1 = "(^$)"
+#
+# RDN2 KMACHINE
+#
+COMPATIBLE_MACHINE:rdn2 = "rdn2"
+KBUILD_DEFCONFIG:rdn2 = "defconfig"
+KCONFIG_MODE:rdn2 = "--alldefconfig"
+KCONF_BSP_AUDIT_LEVEL:rdn2 = "0"
+
#
# RDV1 KMACHINE
#
diff --git a/meta-arm/recipes-devtools/fvp/fvp-rdn2.bb b/meta-arm/recipes-devtools/fvp/fvp-rdn2.bb
new file mode 100644
index 000000000000..73848bfbc4cf
--- /dev/null
+++ b/meta-arm/recipes-devtools/fvp/fvp-rdn2.bb
@@ -0,0 +1,20 @@
+require fvp-ecosystem.inc
+
+MODEL = "RD-N2"
+MODEL_CODE = "FVP_RD_N2"
+PV = "11.25.23"
+
+SRC_URI = "https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Neoverse-Infrastructure/${MODEL}/${MODEL_CODE}_${PV_URL}_${FVP_ARCH}.tgz;subdir=${BP};name=fvp-${HOST_ARCH}"
+SRC_URI[fvp-aarch64.sha256sum] = "ae3a3e85ae307dffcc1221d0f30efbb6bc22b61fd508305b984f294407659bdd"
+SRC_URI[fvp-x86_64.sha256sum] = "89c6d5a784d0b76168fb187e366de35f7de5aa7583a148b206b2aee2bc486da2"
+
+# The CSS used in the FVP homepage make it too difficult to query with the tooling currently in Yocto
+UPSTREAM_VERSION_UNKNOWN = "1"
+
+LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \
+ file://license_terms/third_party_licenses/third_party_licenses.txt;md5=b9005e55057311e41efe02ccfea8ea72"
+
+COMPATIBLE_HOST = "(aarch64|x86_64).*-linux"
+
+require remove-execstack.inc
+REMOVE_EXECSTACKS:x86-64 = "${FVPDIR}/models/${FVP_ARCH_DIR}*/libarmctmodel.so"
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 6/6] arm-bsp/rdv2: add support
2026-03-31 13:06 [PATCH 1/6] CI: use core-image-base for faster boot Jon Mason
` (3 preceding siblings ...)
2026-03-31 13:07 ` [PATCH 5/6] arm-bsp/rdn2: " Jon Mason
@ 2026-03-31 13:07 ` Jon Mason
2026-03-31 18:42 ` [PATCH 1/6] CI: use core-image-base for faster boot Jon Mason
5 siblings, 0 replies; 7+ messages in thread
From: Jon Mason @ 2026-03-31 13:07 UTC (permalink / raw)
To: meta-arm
Add support for Neoverse Reference Design version 2
Signed-off-by: Jon Mason <jon.mason@arm.com>
---
.gitlab-ci.yml | 6 ++
ci/fvps.yml | 2 +
ci/rdv2.yml | 14 +++++
meta-arm-bsp/conf/machine/rdv2.conf | 60 +++++++++++++++++++
.../runtime/cases/parselogs-ignores-rdv2.txt | 2 +
.../scp-firmware/scp-firmware-rdv2.inc | 14 +++++
.../scp-firmware/scp-firmware_%.bbappend | 1 +
.../trusted-firmware-a-rdv2.inc | 29 +++++++++
.../trusted-firmware-a_%.bbappend | 1 +
.../recipes-bsp/uefi/edk2-firmware-rdv2.inc | 17 ++++++
.../recipes-bsp/uefi/edk2-firmware_%.bbappend | 1 +
.../linux/linux-arm-platforms.inc | 8 +++
meta-arm/recipes-devtools/fvp/fvp-rdv2.bb | 20 +++++++
13 files changed, 175 insertions(+)
create mode 100644 ci/rdv2.yml
create mode 100644 meta-arm-bsp/conf/machine/rdv2.conf
create mode 100644 meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdv2.txt
create mode 100644 meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv2.inc
create mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdv2.inc
create mode 100644 meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv2.inc
create mode 100644 meta-arm/recipes-devtools/fvp/fvp-rdv2.bb
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a07b82abb85d..09a5423f5141 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -321,6 +321,12 @@ rdv1:
tags:
- x86_64
+rdv2:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: testimage
+
sbsa-ref:
extends: .build
parallel:
diff --git a/ci/fvps.yml b/ci/fvps.yml
index 185a4f3de846..5370402c9f17 100644
--- a/ci/fvps.yml
+++ b/ci/fvps.yml
@@ -34,6 +34,8 @@ target:
# Infrastructure FVPs
- fvp-rdv3-r1
- nativesdk-fvp-rdv3-r1
+ - fvp-rdv2
+ - nativesdk-fvp-rdv2
- fvp-rdn2
- nativesdk-fvp-rdn2
# These are x86 only... :(
diff --git a/ci/rdv2.yml b/ci/rdv2.yml
new file mode 100644
index 000000000000..7fa62b8309eb
--- /dev/null
+++ b/ci/rdv2.yml
@@ -0,0 +1,14 @@
+# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json
+
+header:
+ version: 14
+ includes:
+ - ci/base.yml
+ - ci/fvp.yml
+
+local_conf_header:
+ sshpregen: |
+ # Allow the use of the pregen keys as this is CI so safe
+ COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:rdv2 = "rdv2"
+
+machine: rdv2
diff --git a/meta-arm-bsp/conf/machine/rdv2.conf b/meta-arm-bsp/conf/machine/rdv2.conf
new file mode 100644
index 000000000000..2c306f26316c
--- /dev/null
+++ b/meta-arm-bsp/conf/machine/rdv2.conf
@@ -0,0 +1,60 @@
+# Configuration for Arm Neoverse V2 Reference Design development board
+
+#@TYPE: Machine
+#@NAME: RD V2
+#@DESCRIPTION: Machine configuration for RD V2
+
+#FIXME - doesn't boot with armv9 tunes
+#require conf/machine/include/arm/arch-armv9a.inc
+require conf/machine/include/arm/arch-armv8a.inc
+
+EXTRA_IMAGEDEPENDS += "virtual/control-processor-firmware"
+EXTRA_IMAGEDEPENDS += "trusted-firmware-a"
+
+KERNEL_IMAGETYPE ?= "Image"
+PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
+SERIAL_CONSOLES = "115200;ttyAMA2"
+EXTRA_IMAGEDEPENDS += "edk2-firmware"
+
+EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
+MACHINE_FEATURES += "efi"
+
+IMAGE_FSTYPES:forcevariable = "cpio.gz wic"
+IMAGE_NAME_SUFFIX = ""
+IMAGE_CLASSES += "fvpboot"
+
+WKS_FILE ?= "efi-disk.wks.in"
+WKS_FILE_DEPENDS:append = " ${EXTRA_IMAGEDEPENDS}"
+
+# testimage config
+TEST_TARGET = "OEFVPTarget"
+TEST_TARGET_IP = "127.0.0.1:2222"
+DEFAULT_TEST_SUITES:append = " fvp_boot fvp_devices"
+TEST_FVP_DEVICES ?= "watchdog networking"
+
+# FVP Config
+FVP_PROVIDER ?= "fvp-rdv2-native"
+FVP_EXE ?= "FVP_RD_V2"
+
+FVP_DATA ?= "css.scp.armcortexm7ct=scp-firmware/scp_ramfw.bin@0x0BD80000 \
+ css.mcp.armcortexm7ct=scp-firmware/mcp_ramfw.bin@0x0BF80000"
+
+FVP_CONFIG[css.gic_distributor.ITS-device-bits] ?= "20"
+FVP_CONFIG[css.mcp.ROMloader.fname] ?= "scp-firmware/mcp_romfw.bin"
+FVP_CONFIG[css.scp.ROMloader.fname] ?= "scp-firmware/scp_romfw.bin"
+FVP_CONFIG[css.trustedBootROMloader.fname] ?= "trusted-firmware-a/bl1.bin"
+FVP_CONFIG[board.flashloader0.fname] ?= "trusted-firmware-a/fip.bin"
+
+FVP_CONFIG[board.dram_size] ?= "0x200000000"
+
+# Virtio configuration
+FVP_CONFIG[board.virtio_net.enabled] ?= "1"
+FVP_CONFIG[board.virtio_net.hostbridge.userNetworking] ?= "1"
+FVP_CONFIG[board.virtio_net.hostbridge.userNetPorts] = "2222=22"
+FVP_CONFIG[board.virtioblockdevice.image_path] ?= "${IMAGE_NAME}.wic"
+
+FVP_CONSOLES[default] = "terminal_ns_uart_ap"
+FVP_TERMINALS[css.scp.terminal_uart_scp] ?= "SCP Console"
+FVP_TERMINALS[css.mcp.terminal_uart_mcp] ?= "MCP Console"
+FVP_TERMINALS[css.terminal_ns_uart_ap] ?= "NS Console"
+FVP_TERMINALS[css.terminal_s_uart_ap] ?= "S Console"
diff --git a/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdv2.txt b/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdv2.txt
new file mode 100644
index 000000000000..7b55e8ea61f0
--- /dev/null
+++ b/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-rdv2.txt
@@ -0,0 +1,2 @@
+arch_timer: Failed to initialize memory-mapped timer.
+PCI: OF: of_root node is NULL, cannot create PCI host bridge node
diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv2.inc b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv2.inc
new file mode 100644
index 000000000000..e36c7b60f407
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv2.inc
@@ -0,0 +1,14 @@
+# RD V2 specific SCP configurations and build instructions
+
+COMPATIBLE_MACHINE:rdv2 = "rdv2"
+SCP_PRODUCT_GROUP = "neoverse-rd"
+SCP_PLATFORM = "rdn2"
+
+EXTRA_OECMAKE += "-D SCP_PLATFORM_VARIANT=0"
+
+SCP_LOG_LEVEL = "DEBUG"
+
+SRC_URI_SCP_FIRMWARE = "gitsm://gitlab.arm.com/infra-solutions/reference-design/platsw/scp-firmware.git;protocol=https"
+SRCBRANCH = "refinfra-bmc"
+# Use the RD-INFRA-2024.12.20 tag
+SRCREV = "62bc3f079d1ae5780df1459d4c66de2dbee54359"
diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend
index 222bee5e52e1..011090e72351 100644
--- a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware_%.bbappend
@@ -5,6 +5,7 @@ MACHINE_SCP_REQUIRE ?= ""
MACHINE_SCP_REQUIRE:juno = "scp-firmware-juno.inc"
MACHINE_SCP_REQUIRE:rdn2 = "scp-firmware-rdn2.inc"
MACHINE_SCP_REQUIRE:rdv1 = "scp-firmware-rdv1.inc"
+MACHINE_SCP_REQUIRE:rdv2 = "scp-firmware-rdv2.inc"
MACHINE_SCP_REQUIRE:sgi575 = "scp-firmware-sgi575.inc"
require ${MACHINE_SCP_REQUIRE}
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdv2.inc b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdv2.inc
new file mode 100644
index 000000000000..796011576e1d
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-rdv2.inc
@@ -0,0 +1,29 @@
+# RD V2 specific TFA support
+
+COMPATIBLE_MACHINE = "rdv2"
+TFA_PLATFORM = "rdn2"
+TFA_BUILD_TARGET = "all fip"
+TFA_INSTALL_TARGET = "bl1 fip"
+TFA_DEBUG = "1"
+TFA_MBEDTLS = "1"
+TFA_UBOOT = "0"
+TFA_UEFI = "1"
+
+EXTRA_OEMAKE += "TRUSTED_BOARD_BOOT=1 GENERATE_COT=1 ARM_ROTPK_LOCATION=devel_rsa \
+ ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem"
+
+# If GENERATE_COT is set, then tf-a will try to use local poetry install
+# to run the python cot-dt2c command. Disable the local poetry and use
+# the provided cot-dt2c.
+EXTRA_OEMAKE += "POETRY=''"
+DEPENDS += "cot-dt2c-native"
+
+SRC_URI_TRUSTED_FIRMWARE_A = "git://gitlab.arm.com/infra-solutions/reference-design/platsw/trusted-firmware-a.git;protocol=https"
+SRCBRANCH = "refinfra"
+# SHA not in any branches. so use RD-INFRA-2025.07.03
+SRCREV_tfa = "a4b376b128bb5b91771002f7808566f53c8d9f3a"
+
+# FIXME - hacking around using the 2.14 based recipe
+SRC_URI:remove = "file://0001-feat-build-add-HOSTLDFLAGS-to-pass-flags-to-host-lin.patch"
+LIC_FILES_CHKSUM:remove = "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e"
+LIC_FILES_CHKSUM += "file://docs/license.rst;md5=1118e32884721c0be33267bd7ae11130"
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
index 9a5d4aa54fd1..6f7a6e857cfd 100644
--- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
@@ -6,6 +6,7 @@ MACHINE_TFA_REQUIRE:fvp-base = "trusted-firmware-a-fvp-base.inc"
MACHINE_TFA_REQUIRE:juno = "trusted-firmware-a-juno.inc"
MACHINE_TFA_REQUIRE:rdn2 = "trusted-firmware-a-rdn2.inc"
MACHINE_TFA_REQUIRE:rdv1 = "trusted-firmware-a-rdv1.inc"
+MACHINE_TFA_REQUIRE:rdv2 = "trusted-firmware-a-rdv2.inc"
MACHINE_TFA_REQUIRE:sbsa-ref = "trusted-firmware-a-sbsa-ref.inc"
MACHINE_TFA_REQUIRE:sgi575 = "trusted-firmware-a-sgi575.inc"
diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv2.inc b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv2.inc
new file mode 100644
index 000000000000..c2fd6fecfd32
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv2.inc
@@ -0,0 +1,17 @@
+# RD V2 specific EDK2 configurations
+EDK2_BUILD_RELEASE = "0"
+EDK2_PLATFORM = "RdN2"
+EDK2_PLATFORM_DSC = "Platform/ARM/SgiPkg/RdN2/RdN2.dsc"
+EDK2_BIN_NAME = "BL33_AP_UEFI.fd"
+
+COMPATIBLE_MACHINE = "rdv2"
+
+SRC_URI_EDK2 = "gitsm://gitlab.arm.com/infra-solutions/reference-design/platsw/edk2.git;protocol=https"
+SRC_URI_EDK2_PLATFORMS = "git://gitlab.arm.com/infra-solutions/reference-design/platsw/edk2-platforms.git;protocol=https"
+
+SRCBRANCH_edk2 = "refinfra"
+SRCBRANCH_edk2_platforms = "refinfra"
+
+# Use the RD-INFRA-2024.12.20 tag
+SRCREV_edk2 = "dd25905d63ec72d6e06804155fda1098d10da19e"
+SRCREV_edk2-platforms = "f6ed3b0f92eeaf380638f77d8b5ace805facb301"
diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend
index 3bb1319d1545..7dd87303c5ec 100644
--- a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend
+++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend
@@ -6,6 +6,7 @@ MACHINE_EDK2_REQUIRE:fvp-base = "edk2-firmware-fvp-base.inc"
MACHINE_EDK2_REQUIRE:juno = "edk2-firmware-juno.inc"
MACHINE_EDK2_REQUIRE:rdn2 = "edk2-firmware-rdn2.inc"
MACHINE_EDK2_REQUIRE:rdv1 = "edk2-firmware-rdv1.inc"
+MACHINE_EDK2_REQUIRE:rdv2 = "edk2-firmware-rdv2.inc"
MACHINE_EDK2_REQUIRE:sbsa-ref = "edk2-firmware-sbsa-ref.inc"
MACHINE_EDK2_REQUIRE:sgi575 = "edk2-firmware-sgi575.inc"
diff --git a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
index c537c352f78b..bc1ea28cb70c 100644
--- a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
+++ b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
@@ -126,6 +126,14 @@ KBUILD_DEFCONFIG:rdv1 = "defconfig"
KCONFIG_MODE:rdv1 = "--alldefconfig"
KCONF_BSP_AUDIT_LEVEL:rdv1 = "0"
+#
+# RDV2 KMACHINE
+#
+COMPATIBLE_MACHINE:rdv2 = "rdv2"
+KBUILD_DEFCONFIG:rdv2 = "defconfig"
+KCONFIG_MODE:rdv2 = "--alldefconfig"
+KCONF_BSP_AUDIT_LEVEL:rdv2 = "0"
+
#
# SGI575 KMACHINE
#
diff --git a/meta-arm/recipes-devtools/fvp/fvp-rdv2.bb b/meta-arm/recipes-devtools/fvp/fvp-rdv2.bb
new file mode 100644
index 000000000000..3da7075abcd0
--- /dev/null
+++ b/meta-arm/recipes-devtools/fvp/fvp-rdv2.bb
@@ -0,0 +1,20 @@
+require fvp-ecosystem.inc
+
+MODEL = "RD-V2"
+MODEL_CODE = "FVP_RD_V2"
+PV = "11.24.12"
+
+SRC_URI = "https://developer.arm.com/-/cdn-downloads/permalink/FVPs-Neoverse-Infrastructure/${MODEL}/${MODEL_CODE}_${PV_URL}_${FVP_ARCH}.tgz;subdir=${BP};name=fvp-${HOST_ARCH}"
+SRC_URI[fvp-aarch64.sha256sum] = "fa43cc506e3799afb73c646f93c2ea509dc1081c0e993c4a7bf83b082b896e5f"
+SRC_URI[fvp-x86_64.sha256sum] = "74199d4766e96ed86b071bf343a0a60d876accef83be41be3dbb9557b4455635"
+
+# The CSS used in the FVP homepage make it too difficult to query with the tooling currently in Yocto
+UPSTREAM_VERSION_UNKNOWN = "1"
+
+LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \
+ file://license_terms/third_party_licenses/third_party_licenses.txt;md5=b9005e55057311e41efe02ccfea8ea72"
+
+COMPATIBLE_HOST = "(aarch64|x86_64).*-linux"
+
+require remove-execstack.inc
+REMOVE_EXECSTACKS:x86-64 = "${FVPDIR}/models/${FVP_ARCH_DIR}*/libarmctmodel.so"
--
2.50.1 (Apple Git-155)
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/6] CI: use core-image-base for faster boot
2026-03-31 13:06 [PATCH 1/6] CI: use core-image-base for faster boot Jon Mason
` (4 preceding siblings ...)
2026-03-31 13:07 ` [PATCH 6/6] arm-bsp/rdv2: " Jon Mason
@ 2026-03-31 18:42 ` Jon Mason
5 siblings, 0 replies; 7+ messages in thread
From: Jon Mason @ 2026-03-31 18:42 UTC (permalink / raw)
To: meta-arm, Jon Mason
On Tue, 31 Mar 2026 09:06:57 -0400, Jon Mason wrote:
>
Applied, thanks!
[1/6] CI: use core-image-base for faster boot
commit: 4379b78bd6a8302e0a55823cb15b62d57678b3f4
[2/6] Revert "arm/execstack: remove, no longer needed"
commit: 4eec974baed18d4321cf9ca37c1da0b7cd624a26
[3/6] arm/fvps: rename rdv3-r1
commit: f86d9c4f227de4419f7147fa9f3a94f258b1c323
[4/6] arm-bsp/rdv1: add support
commit: b5f3f7a6e2062464ab91f48ec81a90b9184d1188
[5/6] arm-bsp/rdn2: add support
commit: f9d0ecbe25341c35b01e1319b3b0a36c033d5f32
[6/6] arm-bsp/rdv2: add support
commit: 43c2bcfed58878613044ee424542cc0067893e1c
Best regards,
--
Jon Mason <jon.mason@arm.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-03-31 18:42 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-31 13:06 [PATCH 1/6] CI: use core-image-base for faster boot Jon Mason
2026-03-31 13:06 ` [PATCH 2/6] Revert "arm/execstack: remove, no longer needed" Jon Mason
2026-03-31 13:06 ` [PATCH 3/6] arm/fvps: rename rdv3-r1 Jon Mason
2026-03-31 13:07 ` [PATCH 4/6] arm-bsp/rdv1: add support Jon Mason
2026-03-31 13:07 ` [PATCH 5/6] arm-bsp/rdn2: " Jon Mason
2026-03-31 13:07 ` [PATCH 6/6] arm-bsp/rdv2: " Jon Mason
2026-03-31 18:42 ` [PATCH 1/6] CI: use core-image-base for faster boot 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.