[PATCH 0/7] Make PMP encoding usable for non-hart PMPs

Nicholas Piggin npiggin at gmail.com
Wed Apr 29 21:55:17 PDT 2026


The Tenstorrent RISC-V IOMMU implements PMPs with MMRs in the same
format as specified in the RISC-V ISA for the hart CSRs. This series
splits out the PMP encoding functions so it can be shared by both
users.

I moved this series out of the Tenstorrent Atlantis platform series
that included IOMMU support, tried to do better at splitting it up,
tidied and improved code.

The new user of the API can be seen here for reference (will not
quite compile with this new series):

https://lore.kernel.org/opensbi/20260310005000.3837512-4-npiggin@gmail.com/

I will post that one out again after the base Atlantis platform and
this series is merged.

Thanks,
Nick

Nicholas Piggin (7):
  lib: sbi: Introduce pmp_t type
  lib: sbi: split PMP encoding and CSR access
  lib: sbi: Move RISC-V PMP encoding functions to sbi_pmp.c
  lib: sbi: Add PMP CSR read and write accessors
  lib: sbi: Add pmp_is_enabled() helper
  lib: sbi: Add hart_ prefix to PMP functions
  lib: sbi: Move hart PMP functions to sbi_hart_pmp.c

 include/sbi/riscv_asm.h          |  12 ---
 include/sbi/sbi_hart_pmp.h       |  12 +++
 include/sbi/sbi_pmp.h            |  23 +++++
 lib/sbi/objects.mk               |   1 +
 lib/sbi/riscv_asm.c              | 162 +------------------------------
 lib/sbi/sbi_hart_pmp.c           | 128 ++++++++++++++++++++++--
 lib/sbi/sbi_pmp.c                | 105 ++++++++++++++++++++
 platform/generic/eswin/eic770x.c |  36 +++----
 8 files changed, 279 insertions(+), 200 deletions(-)
 create mode 100644 include/sbi/sbi_pmp.h
 create mode 100644 lib/sbi/sbi_pmp.c

-- 
2.53.0




More information about the opensbi mailing list