Skip to content

Commit f0cafe9

Browse files
author
Appana Durga Kedareswara rao
committed
boards: amd: versalnet_apu: Add SMP board variant support
Add a new board variant versalnet_apu/amd_versalnet_apu/smp to support Symmetric Multi-Processing (SMP) configuration for AMD Versal NET APU. This commit introduces: - SMP board variant with 4-core configuration (CONFIG_MP_MAX_NUM_CPUS=4) - PSCI support for CPU power management operations - ARM64 40-bit virtual and physical address space support - Non-secure world execution (EL1 NS) configuration - Compatible with Xilinx ARM Trusted Firmware boot flow The SMP variant enables out-of-box multicore support for applications that require parallel processing capabilities on the Versal NET APU platform. Usage: west build -b versalnet_apu/amd_versalnet_apu/smp <application> Boot Flow: Boot PDI -> TF-A -> Zephyr (SMP) Files added: - boards/amd/versalnet_apu/versalnet_apu_amd_versalnet_apu_smp.yaml - boards/amd/versalnet_apu/versalnet_apu_amd_versalnet_apu_smp.dts - boards/amd/versalnet_apu/versalnet_apu_amd_versalnet_apu_smp_defconfig Files modified: - boards/amd/versalnet_apu/board.yml (added smp variant)
1 parent ff3284f commit f0cafe9

File tree

5 files changed

+62
-2
lines changed

5 files changed

+62
-2
lines changed

boards/amd/versalnet_apu/board.cmake

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,15 @@ set(QEMU_FLAGS_${ARCH}
1818
-m 2g
1919
)
2020

21+
# Add SMP support if configured
22+
if(CONFIG_SMP AND CONFIG_MP_MAX_NUM_CPUS GREATER 1)
23+
list(APPEND QEMU_SMP_FLAGS -smp cpus=${CONFIG_MP_MAX_NUM_CPUS},maxcpus=20)
24+
endif()
25+
2126
# Set TF-A platform for ARM Trusted Firmware builds
2227
if(CONFIG_BUILD_WITH_TFA)
2328
set(TFA_PLAT "versal_net")
24-
# Add Versal NET specific TF-A build parameters
25-
set(TFA_EXTRA_ARGS "TFA_NO_PM=1;PRELOADED_BL33_BASE=0x0")
29+
set(TFA_EXTRA_ARGS "RESET_TO_BL31=1;PRELOADED_BL33_BASE=0x0;TFA_NO_PM=1;VERSAL_NET_ATF_MEM_BASE=0xf000000;VERSAL_NET_ATF_MEM_SIZE=0x50000")
2630
if(CONFIG_TFA_MAKE_BUILD_TYPE_DEBUG)
2731
set(BUILD_FOLDER "debug")
2832
else()

boards/amd/versalnet_apu/board.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ board:
44
vendor: amd
55
socs:
66
- name: amd_versalnet_apu
7+
variants:
8+
- name: smp
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/*
2+
* Copyright (c) 2025, Advanced Micro Devices, Inc.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
#include "versalnet_apu.dts"
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
identifier: versalnet_apu/amd_versalnet_apu/smp
2+
name: AMD Development board for Versal NET APU
3+
arch: arm
4+
toolchain:
5+
- zephyr
6+
testing:
7+
ignore_tags:
8+
- net
9+
- bluetooth
10+
- fpu
11+
vendor: amd
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# The Zephyr build from this defconfig is expected to boot from
2+
# Xilinx Arm Trusted Firmware (ATF).
3+
# Boot Flow is: Boot PDI -> TF-A -> Zephyr
4+
CONFIG_BUILD_WITH_TFA=y
5+
6+
CONFIG_ARM64_VA_BITS_40=y
7+
CONFIG_ARM64_PA_BITS_40=y
8+
CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME=y
9+
10+
# Enable UART driver
11+
CONFIG_SERIAL=y
12+
13+
# Enable console
14+
CONFIG_CONSOLE=y
15+
CONFIG_UART_CONSOLE=y
16+
17+
# Enable serial port
18+
CONFIG_UART_PL011=y
19+
20+
# This should be commented in order to test at EL1 S (EL1 Secure)
21+
CONFIG_ARMV8_A_NS=y
22+
23+
# Enable Clock Manager
24+
CONFIG_CLOCK_CONTROL=y
25+
26+
# Reset Manager
27+
CONFIG_RESET=y
28+
29+
# PSCI support Enable
30+
CONFIG_PM_CPU_OPS=y
31+
CONFIG_PM_CPU_OPS_PSCI=y
32+
33+
# Enable SMP support
34+
CONFIG_SMP=y
35+
CONFIG_MP_MAX_NUM_CPUS=4

0 commit comments

Comments
 (0)