openhwgroup / cva6

The CORE-V CVA6 is an Application class 6-stage RISC-V CPU capable of booting Linux
https://docs.openhwgroup.org/projects/cva6-user-manual/
Other
2.29k stars 694 forks source link

[TASK] zephyr RTOS support on Ariane SDK #2480

Open WorldofJARcraft opened 2 months ago

WorldofJARcraft commented 2 months ago

Is there an existing CVA6 task for this?

Task Description

Hello all, I wanted to let you know that I am working on adding support for the CVA6 CPU in the zephyr RTOS.

Required Changes

No hardware changes are needed, but I would like to add a link to the board directory, instructions etc. in the CVA6 README once zephyr accepts my pull requests.

Current Status

I have created three draft pull requests in zephyr:

  1. https://github.com/zephyrproject-rtos/zephyr/pull/77792 adds support for the CVA6 SoC on the GenesysII board that is contained in this repository.
  2. https://github.com/zephyrproject-rtos/zephyr/pull/77734 adds support for my forked CVA6 SoC with Xilinx AXI Ethernet.
  3. https://github.com/zephyrproject-rtos/zephyr/pull/77792 adds support for running zephyr in the cva6 test harness. I have added examples that demonstrate how to indicate success/failure from within zephyr to the testbench.

I have tested 1. and 3. extensively, and I will test 2. with a recent build of the CVA6 project ASAP.

Risks

The zephyr configuration might go out of sync if devices are removed from the SoC or registers or other hardware configurations change, rendering the zephyr configuration unusable. In order to combat this, I can document the CVA6 tag that I last tested with zephyr on the zephyr side.

Prerequisites

None as this is only documentation.

KPI (KEY Performance Indicators)

None

Description of Done

Once zephyr has accepted my PRs, a link to the boards in zephyr should be added to the CVA6 README.

Associated PRs

See above

WorldofJARcraft commented 2 months ago

I have also sent PRs with drivers for the Xilinx AXI ethernet system to zephyr. As my board configurations depend on these drivers, and the PRs for the drivers are not merged yet, it might take a while for the PRs I have linked above to be merged.

JeanRochCoulon commented 2 months ago

Hello, Your proposal seems interesting. Maybe @jquevremont can help.

jquevremont commented 2 months ago

Hi Erik, FYI, Thales has added Zephyr on CVA6, but not in the Zephyr repo: https://github.com/ThalesGroup/cva6-softcore-contest/tree/cv32a6_contest_2022. I will mention your contribution in the "ecosystem/resources" document that I have started preparing also mentioning your Xilinx/Ethernet 2.5G design. I need to find some time to come to a publishable version. Thanks for your patience.

jquevremont commented 2 months ago

Hi @WorldofJARcraft. When the PR is merged, can you ping me so that I can complete the upcoming RESOURCES documentt with the links (https://github.com/openhwgroup/cva6/pull/2514)?

WorldofJARcraft commented 1 month ago

I will let you know when the PR in zephyr is merged.

github-actions[bot] commented 4 weeks ago

πŸ‘‹ Hi there!

This issue seems inactive. Need more help? Feel free to update us. If there are no updates within the next few days, we'll go ahead and close this issue. 😊

jquevremont commented 4 weeks ago

Hi @WorldofJARcraft, any progress on the (external) PR merging?

WorldofJARcraft commented 4 weeks ago

My PR for zephyr also includes an option for supporting the Xilinx AXI Ethernet subsystem. I have also contributed PRs for these drivers to zephyr, which have not been merged yet. I plan to merge board support after merging the drivers, so this might take a few more weeks.

jquevremont commented 4 weeks ago

Thanks. Please keep us updated.