About

Add MMU support in EDK2.

  • First phase will support basic Sv39, Sv48, Sv57 phage-based Virtual-Memory system and upstream its code.

Project Scope and Timelines

Primarily, changes to CpuDxeRiscV64 to enable MMU, adding support library for configuring MMU registers.

Changes slated for Q3 2023.

Components and Repos

Upstream edk2 - https://github.com/tianocore/edk2

Stakeholders and Partners

  • RISE
    • Intel - Andrei Warkentin
    • Ventana - Tuan Phan, Sunil
  • Community

Dependencies

  • None

Measure of Success

  • A basic version accepted and tested design and implementation by end of Q3 2023 (slated for merging).

RISE Requirements

None (not accounting any of existing engineering investment against RISE resources).

Status

Dependency



Development

 COMPLETED

URL: https://github.com/pttuan/edk2/tree/tphan/riscv_mmu

Development Timeline

Q3 2023


Upstreaming

 COMPLETED

URL:

Upstream version

Contacts

Tuan Phan (Ventana)

Updates

  • Project reported as priority for 2H23


6 Comments

  1. Does this include Svpbmt?

  2. Tuan Phan : Could you please update this page with MMU design and other details in similar format of other pages (ex: EDK2_00_07 - CLANG support)

  3. UEFI mandates a 1:1 mapping between the physical address and the virtual address. How to deal with the situation where the mapping between the two fails to meet the above prerequisites.

    Take Sv39 for example, if the 38-bit of a device's physical address is 1, e.g. 0x40 0000 0000, the mapped virtual address is 0xFFFF FFFC 0000 0000 according to RISC-V Privileged Spec.