-
Notifications
You must be signed in to change notification settings - Fork 7.3k
Add cva6 boards to twister and rectify minor issues found when testing with twister #88511
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
Merged
kartben
merged 6 commits into
zephyrproject-rtos:main
from
WorldofJARcraft:openhwgroup-cv64a6-twister-fix
Apr 18, 2025
Merged
Add cva6 boards to twister and rectify minor issues found when testing with twister #88511
kartben
merged 6 commits into
zephyrproject-rtos:main
from
WorldofJARcraft:openhwgroup-cv64a6-twister-fix
Apr 18, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The device tree entry for cva6 is currently missing a device tree node for the mtime and mtimecmp registers in the core-local interrupt controllers. This causes the RISC-V machine timer driver not to be built, causing build failures as the system clock is missing. This commit rectifies this by adding the corresponding device tree entry. Signed-off-by: Eric Ackermann <[email protected]>
8f8d2c5
to
445b600
Compare
4dd4447
to
60df346
Compare
fkokosinski
reviewed
Apr 17, 2025
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.
Looks good, left minor questions/nitpicks
In hardware, cva6 currently only provides global disable/enable functions for the Dcache and Icache. Disabling and re-enabling them also has the effect of flushing and invalidating the cache. Future cva6 SoCs will add support RISC-V's standardized cache management operations. This commit provides a default implementation for all methods currently part of the cache API. These implementations can be overwritten at board or SoC level, as they use weak linking. Signed-off-by: Eric Ackermann <[email protected]>
This commit adds the necessary configurations for building and testing cva6 boards (cv64a6_genesys_2, cv32a6_genesys_2) with twister. This has been validated against commit 8a9d7a832b7121dd6f9be61a380d1d89ebf2a5f3 of the cva6 hardware project. Signed-off-by: Eric Ackermann <[email protected]>
The original commit uses the incorrect value 42 for CONFIG_MAX_IRQ_PER_AGGREGATOR for the cva6 family of SoCs, which is the total number of IRQs in the system. This commit corrects this to 30, the number of IRQs for the PLIC. Signed-off-by: Eric Ackermann <[email protected]>
The nullpointer address (0x0) is mapped to the debug module in cva6, making it a valid address. Thus, in the coredump test, trigger an exception using k_panic() instead. Signed-off-by: Eric Ackermann <[email protected]>
In the default configuration, cv32a6 does not have an FPU and does not implement RISC-V's F and D extensions. Hence, the FPU flags should not be added. In the future, a second SoC for cv32a6 systems with FPU can be added. Signed-off-by: Eric Ackermann <[email protected]>
60df346
to
8cbe476
Compare
fkokosinski
approved these changes
Apr 17, 2025
kartben
approved these changes
Apr 18, 2025
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.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds twister support for the current cva6 boards (cv64a6, cv32a6).
It also rectifies two issues found with cva6's configuration:
This configuration has been tested using
twister --device-testing
on the hardware.