Skip to content

Conversation

kedareswararao
Copy link

This pull request updates the versalnet_apu board support to build TF-A alongside the Zephyr application.
By default, the APU runs at EL1-Non Secure, and QEMU requires a secure OS to configure GIC-V3 and other secure settings. Integrating TF-A with the Zephyr build ensures the necessary secure initialization is performed before the Zephyr application runs.

Copy link
Contributor

@michalsimek michalsimek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am expecting that commit message say some information about s/3DD/3EE/ qemu command line change.

if(CONFIG_BUILD_WITH_TFA)
set(TFA_PLAT "versal_net")
# Add Versal NET specific TF-A build parameters
set(TFA_EXTRA_ARGS "TFA_NO_PM=1;PRELOADED_BL33_BASE=0x0")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that ; is not needed. It should be enough to pass it as one big string which is used on command line.

Copy link
Author

@kedareswararao kedareswararao Oct 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@michalsimek : Thanks for the review.
We need to pass the ; otherwise CMake treats this as a single string, and when it gets expanded in the make command, it becomes
make ... TFA_NO_PM=1\ PRELOADED_BL33_BASE=0x0 which is causing compilation error

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO this should be set(TFA_EXTRA_ARGS "TFA_NO_PM=1;PRELOADED_BL33_BASE=${CONFIG_SRAM_BASE_ADDRESS}")

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the review fixed in the updated pull request

@kedareswararao
Copy link
Author

I am expecting that commit message say some information about s/3DD/3EE/ qemu command line change.

Thanks for the review
will update the commit message.

Appana Durga Kedareswara rao added 2 commits October 7, 2025 12:19
Enhance the TF-A build system to support board-specific build parameters
through TFA_EXTRA_ARGS mechanism.

Changes:
- Add TFA_EXTRA_ARGS variable support for board-specific parameters
- Implement proper string-to-list conversion for make argument expansion

This allows individual board configurations to specify platform-specific
TF-A build parameters without modifying the core TF-A build logic.

Signed-off-by: Appana Durga Kedareswara rao <[email protected]>
Enable ARM Trusted Firmware support for Versal NET APU board with
platform-specific optimizations.

Changes:
- Add TF-A platform configuration (PLAT=versal_net)
- Configure board-specific TF-A parameters (TFA_NO_PM, PRELOADED_BL33_BASE)
- Add automatic TF-A module selection in Kconfig
- Update QEMU kernel loading to use TF-A bl31.elf
- Update the data value that QEMU expects(0x3EE) at the specified memory
  address for proper board emulation.
- Modified data address configuration to match QEMU implementation

The board now automatically builds ARM Trusted Firmware during Zephyr
application compilation with Versal NET specific optimizations.

Boot flow: Boot PDI -> TF-A -> Zephyr

Signed-off-by: Appana Durga Kedareswara rao <[email protected]>
Copy link

sonarqubecloud bot commented Oct 7, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Boards/SoCs area: TF-A ARM Trusted Firmware-A (TF-A) platform: Xilinx Xilinx
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants