Skip to content

board: arm64: Add suport for ROC-RK3588-PC #94288

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

KouweiLee
Copy link

@KouweiLee KouweiLee commented Aug 9, 2025

Add initial support for the ROC-RK3588-PC AArch64 board.
It features a quad-core Cortex-A55 CPU based on the ARMv8.2 architecture.
This commit also enables SMP, allowing all four cores to run the synchronization sample.

In future, we will add support for the AArch32-mode zephyr on RK3588-PC. Zephyr will run as an aarch32 guest vm on the aarch64 hypervisor.

@zephyrbot zephyrbot added the area: ARM64 ARM (64-bit) Architecture label Aug 9, 2025
Copy link

github-actions bot commented Aug 9, 2025

Hello @KouweiLee, and thank you very much for your first pull request to the Zephyr project!
Our Continuous Integration pipeline will execute a series of checks on your Pull Request commit messages and code, and you are expected to address any failures by updating the PR. Please take a look at our commit message guidelines to find out how to format your commit messages, and at our contribution workflow to understand how to update your Pull Request. If you haven't already, please make sure to review the project's Contributor Expectations and update (by amending and force-pushing the commits) your pull request if necessary.
If you are stuck or need help please join us on Discord and ask your question there. Additionally, you can escalate the review when applicable. 😊

@kartben
Copy link
Contributor

kartben commented Aug 13, 2025

(apologies for the misclick and inadvertent merge)

@KouweiLee
Copy link
Author

(apologies for the misclick and inadvertent merge)

I have fixed problems reported by CI

@KouweiLee
Copy link
Author

Sorry, I have fixed problems again and when I run ./scripts/ci/check_compliance.py -c upstream/main.., the output is this:
image
It seems that I don't have to fix these issues?

@KouweiLee KouweiLee requested a review from nordicjm August 14, 2025 08:38
Copy link
Contributor

@kartben kartben left a comment

Choose a reason for hiding this comment

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

Documentation can be tidied up and, more importantly, would really recommend going for "ROC-RK3588-PC" since it doesn't look like "ROC-RK3588" is an actual product, but I might have missed something. Thanks for the PR!

Comment on lines 88 to 99

This will build an image with the synchronization sample app, boot it and
display the following ram console output:

.. code-block:: console

*** Booting Zephyr OS build v4.1.0-2356-gfe6366b8045a ***
thread_a: Hello World from cpu 0 on roc_rk3588!
thread_b: Hello World from cpu 0 on roc_rk3588!
thread_a: Hello World from cpu 0 on roc_rk3588!
thread_b: Hello World from cpu 0 on roc_rk3588!

Copy link
Contributor

Choose a reason for hiding this comment

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

drop as this can easily become stale

Suggested change
This will build an image with the synchronization sample app, boot it and
display the following ram console output:
.. code-block:: console
*** Booting Zephyr OS build v4.1.0-2356-gfe6366b8045a ***
thread_a: Hello World from cpu 0 on roc_rk3588!
thread_b: Hello World from cpu 0 on roc_rk3588!
thread_a: Hello World from cpu 0 on roc_rk3588!
thread_b: Hello World from cpu 0 on roc_rk3588!

Comment on lines 109 to 128

This will build an image with the shell_module sample app, boot it and
display the following ram console output:

.. code-block:: console

*** Booting Zephyr OS build v4.1.0-2356-gfe6366b8045a ***
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
Secondary CPU core 1 (MPID:0x100) is up
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
Secondary CPU core 2 (MPID:0x200) is up
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot
Secondary CPU core 3 (MPID:0x300) is up
thread_a: Hello World from cpu 0 on roc_rk3588!
thread_b: Hello World from cpu 1 on roc_rk3588!
thread_a: Hello World from cpu 0 on roc_rk3588!
thread_b: Hello World from cpu 1 on roc_rk3588!
Copy link
Contributor

Choose a reason for hiding this comment

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

ditto (in this case it's actually referring to shell_module app, too...)

@@ -0,0 +1,8 @@
board:
name: roc_rk3588
Copy link
Contributor

Choose a reason for hiding this comment

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

I think it should be roc_rk3588_pc?? (and reflected everywhere, folder names, full name of the board ("ROC-RK3588-PC"), documentation page, etc.)
You don't want to have a board that's not exactly reflecting the name of your product imo, especially when we're talking about only 3 additional letters to type

Add initial device tree support for the Rockchip RK3588 SoC.
The DTS describes:
- Four Cortex-A55 cores with PSCI enable-method
- GICv3 interrupt controller
- ARMv8 timer
- UART2 and UART3 (disabled by default)

Signed-off-by: Guowei Li <[email protected]>
@KouweiLee
Copy link
Author

Documentation can be tidied up and, more importantly, would really recommend going for "ROC-RK3588-PC" since it doesn't look like "ROC-RK3588" is an actual product, but I might have missed something. Thanks for the PR!

ok, I have changed ROC-RK3588 to ROC-RK3588-PC in all related files and removed the contents you mentioned in doc. Thanks for advise!

@KouweiLee KouweiLee changed the title board: arm64: Add suport for ROC-RK3588 board: arm64: Add suport for ROC-RK3588-PC Aug 15, 2025
Add initial support for the ROC-RK3588-PC AArch64 board.
It features a quad-core Cortex-A55 CPU based on the ARMv8.2 architecture.
This commit also enables SMP, allowing all four cores to run the
synchronization sample.

Signed-off-by: Guowei Li <[email protected]>
Copy link

@kartben
Copy link
Contributor

kartben commented Aug 15, 2025

FWIW you may want to add a board image but this can be done as a follow up

@KouweiLee
Copy link
Author

FWIW you may want to add a board image but this can be done as a follow up

ok, in next pr I will do it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: ARM64 ARM (64-bit) Architecture
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants