boards: arm: Create unified fvp_base_revc_2xaem board structure
Create unified board configuration to replace verbose board naming with shorter hierarchical structure. This board works with the new unified fvp_aem SOC series and supports the v8a architecture variant. This enables board targets like: - fvp_base_revc_2xaem/v8a (basic ARMv8-A) - fvp_base_revc_2xaem/v8a/smp (ARMv8-A SMP) - fvp_base_revc_2xaem/v8a/smp/ns (ARMv8-A SMP non-secure) This structure replaces the existing overly verbose board designations with a cleaner, more maintainable organization and provides a foundation for adding v9a variants. Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
This commit is contained in:
committed by
Anas Nashif
parent
934e61bb61
commit
c01e0943c0
@@ -1,9 +1,9 @@
|
||||
# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if BOARD_FVP_BASE_REVC_2XAEMV8A
|
||||
if BOARD_FVP_BASE_REVC_2XAEM
|
||||
|
||||
config BUILD_OUTPUT_BIN
|
||||
default y
|
||||
|
||||
endif # BOARD_FVP_BASE_REVC_2XAEMV8A
|
||||
endif # BOARD_FVP_BASE_REVC_2XAEM
|
||||
@@ -1,5 +1,5 @@
|
||||
# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_FVP_BASE_REVC_2XAEMV8A
|
||||
config BOARD_FVP_BASE_REVC_2XAEM
|
||||
select SOC_V8A
|
||||
10
boards/arm/fvp_base_revc_2xaem/board.yml
Normal file
10
boards/arm/fvp_base_revc_2xaem/board.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
board:
|
||||
name: fvp_base_revc_2xaem
|
||||
full_name: BASE RevC 2xAEM (Architectural Envelope Model) Fixed Virtual Platform
|
||||
vendor: arm
|
||||
socs:
|
||||
- name: v8a
|
||||
variants:
|
||||
- name: smp
|
||||
variants:
|
||||
- name: ns
|
||||
@@ -1,16 +1,16 @@
|
||||
.. _fvp_base_revc_2xaemv8a:
|
||||
.. zephyr:board:: fvp_base_revc_2xaem
|
||||
|
||||
ARM BASE RevC AEMv8A Fixed Virtual Platforms
|
||||
############################################
|
||||
Arm BASE RevC 2xAEM Fixed Virtual Platforms
|
||||
###########################################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
This board configuration will use ARM Fixed Virtual Platforms(FVP) to emulate
|
||||
a generic Armv8-A 64-bit hardware platform.
|
||||
This board configuration will use Arm Fixed Virtual Platforms(FVP) to emulate
|
||||
a generic AEM (Architectural Envelope Model) hardware platform supporting both
|
||||
ARMv8-A and ARMv9-A architectures.
|
||||
|
||||
This configuration provides support for a generic Armv8-A 64-bit CPU and
|
||||
these devices:
|
||||
This configuration provides support for generic AEM CPUs and these devices:
|
||||
|
||||
* GICv3 interrupt controller
|
||||
* ARM architected (Generic) timer
|
||||
@@ -38,6 +38,16 @@ The following hardware features are supported:
|
||||
|
||||
The kernel currently does not support other hardware features on this platform.
|
||||
|
||||
Board Variants
|
||||
==============
|
||||
|
||||
The following board targets are available:
|
||||
|
||||
* ``fvp_base_revc_2xaem/v8a`` - ARMv8-A (64-bit)
|
||||
* ``fvp_base_revc_2xaem/v8a/smp`` - ARMv8-A SMP (4 cores)
|
||||
* ``fvp_base_revc_2xaem/v8a/smp/ns`` - ARMv8-A SMP Non-Secure
|
||||
* ``fvp_base_revc_2xaem/v9a`` - ARMv9-A (64-bit) [Future]
|
||||
|
||||
Devices
|
||||
========
|
||||
|
||||
@@ -72,24 +82,40 @@ Programming
|
||||
===========
|
||||
|
||||
Use this configuration to build basic Zephyr applications and kernel tests in the
|
||||
ARM FVP emulated environment, for example, with the :zephyr:code-sample:`synchronization` sample:
|
||||
Arm FVP emulated environment, for example, with the :zephyr:code-sample:`synchronization` sample:
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/synchronization
|
||||
:host-os: unix
|
||||
:board: fvp_base_revc_2xaemv8a
|
||||
:board: fvp_base_revc_2xaem/v8a
|
||||
:goals: build
|
||||
|
||||
This will build an image with the synchronization sample app.
|
||||
This will build an image with the synchronization sample app for ARMv8-A.
|
||||
Then you can run it with ``west build -t run``.
|
||||
|
||||
For SMP variants:
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/synchronization
|
||||
:host-os: unix
|
||||
:board: fvp_base_revc_2xaem/v8a/smp
|
||||
:goals: build
|
||||
|
||||
For SMP Non-Secure variants with TF-A:
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/synchronization
|
||||
:host-os: unix
|
||||
:board: fvp_base_revc_2xaem/v8a/smp/ns
|
||||
:goals: build
|
||||
|
||||
Running Zephyr at EL1NS
|
||||
***********************
|
||||
|
||||
In order to run Zephyr as EL1NS with ``CONFIG_ARMV8_A_NS``, you'll need a proper
|
||||
Trusted Firmware loaded in the FVP model.
|
||||
|
||||
The ARM TF-A for FVP can be used to run Zephyr as preloaded BL33 payload.
|
||||
The Arm TF-A for FVP can be used to run Zephyr as preloaded BL33 payload.
|
||||
|
||||
Checkout and Build the TF-A:
|
||||
|
||||
@@ -111,14 +137,8 @@ Debugging
|
||||
|
||||
Refer to the detailed overview about :ref:`application_debugging`.
|
||||
|
||||
Networking
|
||||
==========
|
||||
|
||||
References
|
||||
**********
|
||||
|
||||
.. target-notes::
|
||||
|
||||
1. (ID070919) Arm® Architecture Reference Manual - Armv8, for Armv8-A architecture profile
|
||||
2. AArch64 Exception and Interrupt Handling
|
||||
3. https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
|
||||
- `Arm Architecture Reference Manual - Armv8 <https://developer.arm.com/documentation/ddi0487/latest>`_
|
||||
- `Fixed Virtual Platforms <https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms>`_
|
||||
@@ -10,12 +10,12 @@
|
||||
#include <zephyr/dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
/ {
|
||||
model = "FVP Base RevC 2xAEMv8A";
|
||||
model = "FVP Base RevC 2xAEM ARMv8-A";
|
||||
|
||||
chosen {
|
||||
/*
|
||||
* The SRAM node is actually located in the
|
||||
* DRAM region of the FVP Base RevC 2xAEMv8A.
|
||||
* DRAM region of the FVP Base RevC 2xAEM.
|
||||
*/
|
||||
zephyr,sram = &dram0;
|
||||
zephyr,flash = &flash0;
|
||||
21
boards/arm/fvp_base_revc_2xaem/fvp_base_revc_2xaem_v8a.yaml
Normal file
21
boards/arm/fvp_base_revc_2xaem/fvp_base_revc_2xaem_v8a.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
identifier: fvp_base_revc_2xaem/v8a
|
||||
name: FVP Base RevC 2xAEM ARMv8-A
|
||||
arch: arm64
|
||||
type: sim
|
||||
simulation:
|
||||
- name: armfvp
|
||||
exec: FVP_Base_RevC-2xAEMvA
|
||||
toolchain:
|
||||
- zephyr
|
||||
- cross-compile
|
||||
ram: 2048
|
||||
flash: 64
|
||||
vendor: arm
|
||||
supported:
|
||||
- gpio
|
||||
- uart
|
||||
- smp
|
||||
testing:
|
||||
ignore_tags:
|
||||
- net
|
||||
- bluetooth
|
||||
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "fvp_base_revc_2xaem_v8a.dts"
|
||||
@@ -1,8 +1,8 @@
|
||||
# Copyright (c) 2025 BayLibre SAS
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
identifier: fvp_base_revc_2xaemv8a/fvp_base_revc_2xaemv8a/smp
|
||||
name: FVP Emulation FVP_Base_RevC-2xAEMvA (SMP)
|
||||
identifier: fvp_base_revc_2xaem/v8a/smp
|
||||
name: FVP Base RevC 2xAEM ARMv8-A (SMP)
|
||||
arch: arm64
|
||||
type: sim
|
||||
simulation:
|
||||
@@ -14,3 +14,11 @@ toolchain:
|
||||
ram: 2048
|
||||
flash: 64
|
||||
vendor: arm
|
||||
supported:
|
||||
- gpio
|
||||
- uart
|
||||
- smp
|
||||
testing:
|
||||
ignore_tags:
|
||||
- net
|
||||
- bluetooth
|
||||
@@ -3,4 +3,4 @@
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "fvp_base_revc_2xaemv8a.dts"
|
||||
#include "fvp_base_revc_2xaem_v8a.dts"
|
||||
@@ -1,8 +1,8 @@
|
||||
# Copyright (c) 2022 Arm Limited (or its affiliates). All rights reserved.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
identifier: fvp_base_revc_2xaemv8a/fvp_base_revc_2xaemv8a/smp/ns
|
||||
name: FVP Emulation FVP_Base_RevC-2xAEMvA (SMP)
|
||||
identifier: fvp_base_revc_2xaem/v8a/smp/ns
|
||||
name: FVP Base RevC 2xAEM ARMv8-A (SMP Non-Secure)
|
||||
arch: arm64
|
||||
type: sim
|
||||
simulation:
|
||||
@@ -1,10 +0,0 @@
|
||||
board:
|
||||
name: fvp_base_revc_2xaemv8a
|
||||
full_name: BASE RevC AEMv8A Fixed Virtual Platforms
|
||||
vendor: arm
|
||||
socs:
|
||||
- name: v8a
|
||||
variants:
|
||||
- name: smp
|
||||
variants:
|
||||
- name: ns
|
||||
@@ -1,16 +0,0 @@
|
||||
# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
identifier: fvp_base_revc_2xaemv8a
|
||||
name: FVP Emulation FVP_Base_RevC-2xAEMvA
|
||||
arch: arm64
|
||||
type: sim
|
||||
simulation:
|
||||
- name: armfvp
|
||||
exec: FVP_Base_RevC-2xAEMvA
|
||||
toolchain:
|
||||
- zephyr
|
||||
- cross-compile
|
||||
ram: 2048
|
||||
flash: 64
|
||||
vendor: arm
|
||||
@@ -1,6 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2025 BayLibre SAS
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "fvp_base_revc_2xaemv8a.dts"
|
||||
@@ -196,7 +196,7 @@ Arm FVP
|
||||
========
|
||||
|
||||
* :zephyr:board:`fvp_baser_aemv8r`
|
||||
* :ref:`fvp_base_revc_2xaemv8a`
|
||||
* :zephyr:board:`fvp_base_revc_2xaem`
|
||||
|
||||
This sample application running on Arm FVP board can negotiate IP
|
||||
address from DHCPv4 server running on Arm FVP, so there is no extra
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
tests:
|
||||
arch.arm64.gicv3_its:
|
||||
build_only: true
|
||||
platform_allow: fvp_base_revc_2xaemv8a
|
||||
platform_allow: fvp_base_revc_2xaem/v8a
|
||||
skip: true
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
tests:
|
||||
arch.arm64.smc_call.smc:
|
||||
platform_allow: fvp_base_revc_2xaemv8a/fvp_base_revc_2xaemv8a/smp/ns
|
||||
platform_allow: fvp_base_revc_2xaem/v8a/smp/ns
|
||||
tags:
|
||||
- arm
|
||||
- smc
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
#define BUF_SIZE 32
|
||||
|
||||
#if defined(CONFIG_BOARD_FVP_BASE_REVC_2XAEMV8A)
|
||||
#if defined(CONFIG_BOARD_FVP_BASE_REVC_2XAEM)
|
||||
#define SLEEP_MS_LONG 30000
|
||||
#elif defined(CONFIG_BOARD_INTEL_ADSP_ACE30_PTL_SIM) || \
|
||||
defined(CONFIG_BOARD_INTEL_ADSP_ACE40_NVL_SIM)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
tests:
|
||||
message_bus.zbus.dyn_channel.static_and_dynamic_channels:
|
||||
platform_exclude: fvp_base_revc_2xaemv8a/fvp_base_revc_2xaemv8a/smp/ns
|
||||
platform_exclude: fvp_base_revc_2xaem/v8a/smp/ns
|
||||
tags: zbus
|
||||
integration_platforms:
|
||||
- native_sim
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
tests:
|
||||
message_bus.zbus.hlp_priority_boost:
|
||||
platform_exclude:
|
||||
- fvp_base_revc_2xaemv8a/fvp_base_revc_2xaemv8a/smp/ns
|
||||
- fvp_base_revc_2xaem/v8a/smp/ns
|
||||
# All Intel Audio DSP platforms have non-coherent cache
|
||||
# between CPUs. So the zbus_channel struct data goes
|
||||
# out-of-sync between CPUs with multiple producer and
|
||||
|
||||
@@ -5,7 +5,7 @@ tests:
|
||||
- qemu_cortex_a9
|
||||
- hifive_unleashed/fu540/e51
|
||||
- hifive_unleashed/fu540/u54
|
||||
- fvp_base_revc_2xaemv8a/fvp_base_revc_2xaemv8a/smp/ns
|
||||
- fvp_base_revc_2xaem/v8a/smp/ns
|
||||
tags: zbus
|
||||
integration_platforms:
|
||||
- native_sim
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
tests:
|
||||
message_bus.zbus.general_unittests:
|
||||
platform_exclude: fvp_base_revc_2xaemv8a/fvp_base_revc_2xaemv8a/smp/ns
|
||||
platform_exclude: fvp_base_revc_2xaem/v8a/smp/ns
|
||||
tags: zbus
|
||||
integration_platforms:
|
||||
- native_sim
|
||||
@@ -13,7 +13,7 @@ tests:
|
||||
extra_configs:
|
||||
- CONFIG_CMAKE_LINKER_GENERATOR=y
|
||||
message_bus.zbus.general_unittests_without_priority_boost:
|
||||
platform_exclude: fvp_base_revc_2xaemv8a/fvp_base_revc_2xaemv8a/smp/ns
|
||||
platform_exclude: fvp_base_revc_2xaem/v8a/smp/ns
|
||||
tags: zbus
|
||||
integration_platforms:
|
||||
- native_sim
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
tests:
|
||||
message_bus.zbus.user_data.channel_user_data:
|
||||
platform_exclude: fvp_base_revc_2xaemv8a/fvp_base_revc_2xaemv8a/smp/ns
|
||||
platform_exclude: fvp_base_revc_2xaem/v8a/smp/ns
|
||||
tags: zbus
|
||||
integration_platforms:
|
||||
- native_sim
|
||||
|
||||
@@ -134,7 +134,7 @@ __no_optimization static void trigger_fault_divide_zero(void)
|
||||
defined(CONFIG_ARMV6_M_ARMV8_M_BASELINE) || \
|
||||
defined(CONFIG_BOARD_QEMU_CORTEX_R5) || \
|
||||
defined(CONFIG_ARMV8_R) || defined(CONFIG_AARCH32_ARMV8_R) || \
|
||||
defined(CONFIG_BOARD_FVP_BASE_REVC_2XAEMV8A) || \
|
||||
defined(CONFIG_BOARD_FVP_BASE_REVC_2XAEM) || \
|
||||
defined(CONFIG_SOC_NSIM_EM11D)
|
||||
ztest_test_skip();
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user