diff mbox series

[3/6] arm-bsp:corstone1000: Create a standalone corstone1000-a320-fvp machine

Message ID 20260518184425.10215-4-hugues.kambampiana@arm.com
State New
Headers show
Series corstone1000: Add standalone Cortex-A320 FVP support and documentation | expand

Commit Message

Hugues KAMBA MPIANA May 18, 2026, 6:44 p.m. UTC
From: Alex Chapman <alex.chapman@arm.com>

Add `corstone1000-a320-fvp` as a dedicated machine instead of enabling
the Cortex-A320 variant through a kas overlay on `corstone1000-fvp`.

Move the A320-specific machine features, overrides, FVP executable
selection, and Ethos-U85 configuration into the new machine
configuration. Keep the generic `corstone1000-fvp` machine focused on
the base FVP platform.

Update the A320 kas to use `corstone1000-a320-fvp` directly, and
allow pregenerated SSH host keys for the new virtual machine.

Signed-off-by: Alex Chapman <alex.chapman@arm.com>
Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
---
 .../corstone1000-a320-fvp.yml                 |  7 +++---
 kas/corstone1000-a320-fvp.yml                 | 22 +++++++++++++++++++
 .../conf/machine/corstone1000-a320-fvp.conf   | 17 ++++++++++++++
 .../conf/machine/corstone1000-fvp.conf        |  5 -----
 .../machine/include/corstone1000-a320.inc     |  7 +++---
 .../ssh-pregen-hostkeys_%.bbappend            |  3 ++-
 6 files changed, 48 insertions(+), 13 deletions(-)
 rename kas/corstone1000-a320.yml => ci/corstone1000-a320-fvp.yml (57%)
 create mode 100644 kas/corstone1000-a320-fvp.yml
 create mode 100644 meta-arm-bsp/conf/machine/corstone1000-a320-fvp.conf
diff mbox series

Patch

diff --git a/kas/corstone1000-a320.yml b/ci/corstone1000-a320-fvp.yml
similarity index 57%
rename from kas/corstone1000-a320.yml
rename to ci/corstone1000-a320-fvp.yml
index b11af510..d522a9dd 100644
--- a/kas/corstone1000-a320.yml
+++ b/ci/corstone1000-a320-fvp.yml
@@ -2,8 +2,7 @@ 
 
 header:
   version: 14
+  includes:
+    - ci/corstone1000-fvp.yml
 
-local_conf_header:
-  a320: |
-    MACHINE_FEATURES += "cortexa320"
-    OVERRIDES .= ":cortexa320"
+machine: corstone1000-a320-fvp
diff --git a/kas/corstone1000-a320-fvp.yml b/kas/corstone1000-a320-fvp.yml
new file mode 100644
index 00000000..7c22edfb
--- /dev/null
+++ b/kas/corstone1000-a320-fvp.yml
@@ -0,0 +1,22 @@ 
+header:
+  version: 14
+  includes:
+    - kas/corstone1000-base.yml
+    - kas/corstone1000-image-configuration.yml
+    - kas/corstone1000-firmware-only.yml
+    - kas/fvp-eula.yml
+
+env:
+  DISPLAY:
+  WAYLAND_DISPLAY:
+  XAUTHORITY:
+
+local_conf_header:
+  testimagefvp: |
+    IMAGE_CLASSES += "fvpboot"
+
+  mass-storage: |
+    # Ensure the Mass Storage device is absent
+    FVP_CONFIG[board.msd_mmc.p_mmc_file] = "invalid.dat"
+
+machine: corstone1000-a320-fvp
diff --git a/meta-arm-bsp/conf/machine/corstone1000-a320-fvp.conf b/meta-arm-bsp/conf/machine/corstone1000-a320-fvp.conf
new file mode 100644
index 00000000..5baca37a
--- /dev/null
+++ b/meta-arm-bsp/conf/machine/corstone1000-a320-fvp.conf
@@ -0,0 +1,17 @@ 
+#@TYPE: Machine
+#@NAME: corstone1000-a320-fvp machine
+#@DESCRIPTION: Machine configuration for Corstone1000 64-bit FVP with A320 CPU
+
+require conf/machine/include/corstone1000-a320.inc
+require conf/machine/corstone1000-fvp.conf
+
+# Ethos-U85 FVP configuration
+ETHOSU_NUM_MACS ?= "256"
+FVP_CONFIG[host.ethosu.num_macs] = "${ETHOSU_NUM_MACS}"
+
+# Reuse FVP recipe overrides
+MACHINEOVERRIDES .= ":corstone1000-fvp"
+
+# Override FVP executable provider and executable name.
+FVP_PROVIDER:corstone1000-a320-fvp ??= "fvp-corstone1000-a320-native"
+FVP_EXE:corstone1000-a320-fvp = "FVP_Corstone-1000-A320"
diff --git a/meta-arm-bsp/conf/machine/corstone1000-fvp.conf b/meta-arm-bsp/conf/machine/corstone1000-fvp.conf
index e447b56e..d541782a 100644
--- a/meta-arm-bsp/conf/machine/corstone1000-fvp.conf
+++ b/meta-arm-bsp/conf/machine/corstone1000-fvp.conf
@@ -6,9 +6,6 @@  require conf/machine/include/corstone1000.inc
 require ${@bb.utils.contains('MACHINE_FEATURES', 'corstone1000-extsys', \
     'conf/machine/include/corstone1000-extsys.inc', '', d)}
 
-require ${@bb.utils.contains('MACHINE_FEATURES', 'cortexa320', \
-    'conf/machine/include/corstone1000-a320.inc', '', d)}
-
 TFA_TARGET_PLATFORM = "fvp"
 
 TFM_PLATFORM_IS_FVP = "TRUE"
@@ -24,9 +21,7 @@  DEFAULT_TEST_SUITES:append = " fvp_boot fvp_devices"
 
 # FVP Config
 FVP_PROVIDER ?= "fvp-corstone1000-native"
-FVP_PROVIDER:cortexa320 ?= "fvp-corstone1000-a320-native"
 FVP_EXE ?= "FVP_Corstone-1000"
-FVP_EXE:cortexa320 = "FVP_Corstone-1000-A320"
 FVP_CONSOLES[default] = "host_terminal_0"
 FVP_CONSOLES[tf-a] = "host_terminal_1"
 FVP_CONSOLES[se] = "secenc_terminal"
diff --git a/meta-arm-bsp/conf/machine/include/corstone1000-a320.inc b/meta-arm-bsp/conf/machine/include/corstone1000-a320.inc
index 69813000..f089afd1 100644
--- a/meta-arm-bsp/conf/machine/include/corstone1000-a320.inc
+++ b/meta-arm-bsp/conf/machine/include/corstone1000-a320.inc
@@ -1,3 +1,4 @@ 
-ETHOSU_NUM_MACS ?= "256"
-
-FVP_CONFIG[host.ethosu.num_macs] = "${ETHOSU_NUM_MACS}"
+# Cortex-A320 variant of the Corstone-1000 platform.
+MACHINEOVERRIDES =. "corstone1000-a320:"
+MACHINE_FEATURES += "cortexa320"
+OVERRIDES .= ":cortexa320"
diff --git a/meta-arm-bsp/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_%.bbappend b/meta-arm-bsp/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_%.bbappend
index 039a8479..f1c97176 100644
--- a/meta-arm-bsp/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_%.bbappend
+++ b/meta-arm-bsp/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_%.bbappend
@@ -1,6 +1,7 @@ 
 # These machines cannot run in product as they are virtual
 # platforms, so allow ssh-pregen-hostkeys to be used.
 
-COMPATIBLE_MACHINE:corstone1000-fvp = "corstone1000-fvp"
+COMPATIBLE_MACHINE:corstone1000 = "corstone1000-fvp"
+COMPATIBLE_MACHINE:corstone1000:cortexa320 = "corstone1000-a320-fvp"
 COMPATIBLE_MACHINE:fvp-base = "fvp-base"
 COMPATIBLE_MACHINE:sbsa-ref = "sbsa-ref"