SE_01_011 - QEMU RVA22 profiles support

About

A 'profile' consists on a set of extensions, some mandatory and some optional, aiming to facilitate application support and interoperability in RISC-V chips. Instead of an user application claim support to a certain set of specific extensions, it can claim support for the 'RVA22U64' and 'RVA22S64' profile. This means that any chip that has support for these profiles will be compatible with it.

Implementing profiles in QEMU will give users a more robust environment to test and develop applications, relieving users from having to track which extensions flags they need to enable in QEMU to make their applications work.

We'll start with RVA22U64 profile support since all its extensions are already implemented in QEMU. We have plans to keep adding more profiles as times goes by.

It's also expected that tooling such as libvirt will rely on enabling profiles, instead of enabling/disabling extensions, since it'll give users immediate value without the need of implementing support for each standalone extension.

Project Scope and Timelines

The project will take place during the QEMU 8.2 development cycle. Changes will be centered around target/riscv/cpu.c.

Components and Repos

Upstream Qemu.

Stakeholders and Partners

Other QEMU for RISC-V contributors, including:

  • RISE
    • Daniel Henrique Barboza
  • External
    • Alistair Francis (QEMU for RISC-V maintainer)

Dependencies

No dependencies.

Measure of Success

An accepted and tested design and implementation by end of 2H23 (slated for merging).

RISE Requirements

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

Status

The table below is rolled up to the Simulator WG status page Simulator/Emulator 2023 Projects .


Development

COMPLETED


Development Timeline

2H23


Dependencies

SE_01_009


Upstreaming

COMPLETED


Upstream Version


Target 8.2

Contacts