Skip to content
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

Os fixes6 #29

Draft
wants to merge 117 commits into
base: master
Choose a base branch
from
Draft

Os fixes6 #29

wants to merge 117 commits into from

Conversation

mohammadshahidzade
Copy link

This PR includes initial changes that will be necessary to run an operating system on multicore CVA5.
In addition to clarity and QoL changes, this primarily includes:

  • Full support for the 20240411 RISC-V privileged architecture (previously a draft spec from ~2017-2019 was mostly supported)
  • New separate TLB's for instructions and data
  • Support for Sv32 virtual memory
  • Many significant bugfixes for interrupt and exception handling (can close Interrupts can lead to MEPC inconsistent with register state / actually retired operations or pointing to entirely illegal instructions #19)
  • Support for the RISC-V atomic extension (can close State of AMO support #21)
  • Simulation support for the latest version of Verilator
  • Multicore support with cache snooping, validated with configurations of 1, 2, and 4 cores.
  • Optimized PLIC and CLINT implementation required for full multicore Linux support.
  • Backward compatibility verified with both the LiteX framework and Vivado block design, ensuring seamless operation across both environments.
  • Validated on multiple FPGA boards, including the VCU118 and Digilent Nexys.
  • Performance: Achieves up to 250 MHz on the VCU118 for a single core.
  • Software compatibility tested with Linux 5.18.0 and OpenSBI v0.8-2-ga9ce3ad.
  • Ability to configure it back to the original bare-metal system by only changing the CPU configurations.

CKeilbar

This comment was marked as outdated.

@CKeilbar CKeilbar marked this pull request as draft February 26, 2025 20:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants