mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-04-18 10:49:45 +00:00
arm-bsp/rdv2: add support
Add support for Neoverse Reference Design version 2 Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
@@ -321,6 +321,12 @@ rdv1:
|
||||
tags:
|
||||
- x86_64
|
||||
|
||||
rdv2:
|
||||
extends: .build
|
||||
parallel:
|
||||
matrix:
|
||||
- TESTING: testimage
|
||||
|
||||
sbsa-ref:
|
||||
extends: .build
|
||||
parallel:
|
||||
|
||||
@@ -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... :(
|
||||
|
||||
14
ci/rdv2.yml
Normal file
14
ci/rdv2.yml
Normal file
@@ -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
|
||||
60
meta-arm-bsp/conf/machine/rdv2.conf
Normal file
60
meta-arm-bsp/conf/machine/rdv2.conf
Normal file
@@ -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"
|
||||
@@ -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
|
||||
14
meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv2.inc
Normal file
14
meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-rdv2.inc
Normal file
@@ -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"
|
||||
@@ -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}
|
||||
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
|
||||
|
||||
17
meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv2.inc
Normal file
17
meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-rdv2.inc
Normal file
@@ -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"
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -127,6 +127,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
|
||||
#
|
||||
|
||||
20
meta-arm/recipes-devtools/fvp/fvp-rdv2.bb
Normal file
20
meta-arm/recipes-devtools/fvp/fvp-rdv2.bb
Normal file
@@ -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"
|
||||
Reference in New Issue
Block a user