-
Notifications
You must be signed in to change notification settings - Fork 47
feat. Add Rockchip RK3588 support #149
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for the Rockchip RK3588 SoC and improves hypervisor compatibility across various platforms. Key changes include new board configurations with CPU counts and memory settings, updates to Cargo feature flags, and adjustments to linker and UART configurations.
Reviewed Changes
Copilot reviewed 30 out of 42 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| platform/aarch64/zcu102/board.rs | Added BOARD_NCPUS constant for zcu102 board |
| platform/aarch64/rk3588/cargo/config.template.toml | Added new target configuration for RK3588 |
| platform/aarch64/rk3588/board.rs | Added board definitions for RK3588 including memory regions and IRQ configurations |
| platform/aarch64/rk3568/board.rs | Added BOARD_NCPUS constant for RK3568 board |
| platform/aarch64/qemu-gicv3/board.rs | Added BOARD_NCPUS constant for QEMU board; note potential typo in board name |
| platform/aarch64/qemu-gicv2/board.rs | Added BOARD_NCPUS constant for QEMU board |
| platform/aarch64/imx8mp/board.rs | Added BOARD_NCPUS constant for imx8mp board |
| Cargo.toml | Introduced new feature flags to support the updated board configurations |
Files not reviewed (12)
- Makefile: Language not supported
- platform/aarch64/imx8mp/cargo/features: Language not supported
- platform/aarch64/qemu-gicv2/cargo/features: Language not supported
- platform/aarch64/qemu-gicv3/cargo/features: Language not supported
- platform/aarch64/rk3568/cargo/features: Language not supported
- platform/aarch64/rk3588/cargo/features: Language not supported
- platform/aarch64/rk3588/configs/zone1-linux-virtio.json: Language not supported
- platform/aarch64/rk3588/configs/zone1-linux.json: Language not supported
- platform/aarch64/rk3588/image/Makefile: Language not supported
- platform/aarch64/rk3588/image/zone1-linux.dts: Language not supported
- platform/aarch64/rk3588/linker.ld: Language not supported
- platform/aarch64/rk3588/platform.mk: Language not supported
Comments suppressed due to low confidence (1)
platform/aarch64/qemu-gicv3/board.rs:18
- The board name appears to have a typo. Consider renaming 'qemu-givc3' to 'qemu-gicv3' for consistency with the file name and naming conventions.
pub const BOARD_NAME: &str = "qemu-givc3";
KouweiLee
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have tested on rk3588, it runs well. I think if other boards are okay, this pr can be merged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Although the latest dev still has some problems running rk3568, I am still sure that the modification of entry.rs does not work on rk3568. I tested this file separately on the branch that can run correctly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After resolving the issue with the dev branch code failing to start, a full test was conducted, and the RK3568 is now able to boot normally with pr149.
rk3568 cannot correctly apply changes to entry.rs
src/arch/aarch64/ipi.rs
Outdated
| @@ -1,3 +1,4 @@ | |||
| use crate::arch::cpu; | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should make sure that the copyright texts are at top
|
the PR labeler ci has been fixed: #153 |
Why did ci still fail? |
This PR introduces RK3588 SoC support and enhances hypervisor reliability on Rockchip platforms:
RK3588 Platform Integration
- Board configs, memory maps, prebuilt DTs
- UART base address handling
- Platform-specific linker scripts
Critical U-Boot Compatibility
- Insert NOP at binary offset 10
- Prevents Rockchip U-Boot relocation bug ([email protected]:670)
Core Architecture Improvements
- Unified mpidr_rockchip CPU identification
- Explicit CPU core management via no_autodetect_ncpus
- Removed legacy boot page table code