This series introduces bugs fixes that were found while bringing up CI
support for the HiFive Premier P550 board with a basic smoke test. The
board-support series itself will follow separately as it depends on
PLIC/vPLIC and dom0less support that have not been upstreamed yet. This
series carries only the independent fixes found along the way, none of them
need the board-support series to apply.
This series:
- Stop requiring Zihintpause and Svpbmt at boot
Both are already gated at some call sites that care, drop them
from required_extensions[] so hardware without them still boots.
- Preset A/D bits in G-stage and in Xen's own page-table mappings
Avoids an unhandled page fault on Svade/Svadu-less hardware on both
mapping path.
- Add the missing SFENCE.VMA after enabling paging in turn_on_mmu()
Required per the Privileged spec when ASID 0 is reused across the satp
CI pipeline:
https://gitlab.com/xen-project/people/baptleduc/xen/-/pipelines/2796673417
Baptiste Le Duc (5):
xen/riscv: always set A/D bits at boot time
xen/riscv: preset A/D bits in Xen's own page-table mappings
xen/riscv: make Svpbmt no longer a required extension
xen/riscv: make Zihintpause no longer a required extension
xen/riscv: add SFENCE.VMA after enabling paging
xen/arch/riscv/cpufeature.c | 2 -
xen/arch/riscv/include/asm/page.h | 22 ++++++----
xen/arch/riscv/mm.c | 7 ++-
xen/arch/riscv/p2m.c | 72 ++++++++++++++++++-------------
xen/arch/riscv/riscv64/head.S | 1 +
5 files changed, 61 insertions(+), 43 deletions(-)