Skip to content

Add support for Versal Gen 2 SOC RPU Processor #88667

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

kedareswararao
Copy link

@kedareswararao kedareswararao commented Apr 15, 2025

Add support for the RPU, real-time processing unit on Versal Gen 2 SoC. It is based on Cortext-R52 processor.

The patch contains initial wiring and configuration for generic board with OCM(1MB) and DDR(2G) memories, cpu, interrupt controller, global timer and UART.

versal2.dtsi contains common peripherals integrated into Versal Gen 2 SoC, and versal2_r52.dtsi has peripherals which are private to Cortex-R52 processor.


/ {
model = "Versal Gen 2 RPU";
cpus {
Copy link
Collaborator

Choose a reason for hiding this comment

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

newline

Copy link
Author

Choose a reason for hiding this comment

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

sure will fix

interrupt-parent = <&gic>;
status = "okay";
};

Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change

Copy link
Author

Choose a reason for hiding this comment

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

will fix

gic: interrupt-controller@e2000000 {
compatible = "arm,gic-v3", "arm,gic";
reg = <0xe2000000 0x10000>,
<0xe2100000 0x80000>;
Copy link
Collaborator

Choose a reason for hiding this comment

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

alignment is off

Copy link
Author

Choose a reason for hiding this comment

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

will fix

#interrupt-cells = <4>;
status = "okay";
};

Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change

Copy link
Author

Choose a reason for hiding this comment

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

will fix

# Copyright (c) 2025 Advanced Micro Devices, Inc.
#

if(EXISTS "${BOARD_DIR}/${BOARD}-qemu.dts")
Copy link
Collaborator

Choose a reason for hiding this comment

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

why would the file not exist?

Copy link
Collaborator

Choose a reason for hiding this comment

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

This is generic rule and this is generic Versal Gen 2 board but under the same folder specific boards can be added. We have it internally for covering tests which are not possible to emulate on QEMU. That's why rule is taken when that file exists only.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Note that files should not be overlayed in the folder, boards should instead be extended https://docs.zephyrproject.org/latest/hardware/porting/board_porting.html#board-extensions

This part needs 2 space indent inside the if()

Copy link
Collaborator

Choose a reason for hiding this comment

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

ad Note) I can't see any upstream board which uses it. (git grep "extend:" upstream/main) but will look at.

ad 2 space) yes this should be fixed. Thanks.

Copy link
Collaborator

Choose a reason for hiding this comment

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

No upstream board would use it in-tree because it is for out of tree usage only but it is used out of tree by several users

Copy link
Collaborator

Choose a reason for hiding this comment

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

Good to know thanks.

@kedareswararao kedareswararao changed the title Add support for Versal2 SOC RPU Processor Add support for Versal Gen 2 SOC RPU Processor Apr 17, 2025
Add support for the RPU, real-time processing unit on Versal Gen 2 SoC.
It is based on Cortext-R52 processor.

The patch contains initial wiring and configuration for generic board
with OCM(1MB) and DDR(2G) memories, cpu, interrupt controller, global
timer and UART.

versal2.dtsi contains common peripherals integrated into Versal Gen 2
SoC, and versal2_r52.dtsi has peripherals which are private to
Cortex-R52 processor.

Signed-off-by: Appana Durga Kedareswara rao <[email protected]>
Add generic board support for the RPU, real-time processing
unit on Versal Gen 2 SoC. It is based on Cortext-R52 processor.

Signed-off-by: Appana Durga Kedareswara rao <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants