From: Yu-Chien Peter Lin <peter.lin@sifive.com>
To: opensbi@lists.infradead.org
Cc: zong.li@sifive.com, greentime.hu@sifive.com,
samuel.holland@sifive.com,
Yu-Chien Peter Lin <peter.lin@sifive.com>
Subject: [RFC PATCH v3 0/6] Extend the reserved PMP entries
Date: Sun, 30 Nov 2025 19:16:37 +0800 [thread overview]
Message-ID: <20251130111643.1291462-1-peter.lin@sifive.com> (raw)
This series extends OpenSBI to support multiple reserved PMP entries
that platforms can configure for critical memory protection needs.
Key characteristics of reserved PMP entries:
- Have highest priority
- Available in ToR mode for platform-specific use cases
- Persistent across domain context switches (cannot be disabled)
- Support runtime allocation through a dedicated allocator API
Motivation:
Reserved PMP entries address the need to protect memory regions that
cannot be covered by domain-managed PMP entries. For example, platforms
can enforce PMA_UNSAFE regions [1] parsed from the device tree. These
regions often cannot be precisely covered by one or two NAPOT entries,
so using reserved entries allocated in ToR mode optimizes PMP usage.
Additionally, reserved entries remain unchanged across domain transitions
and persist until hart reset, ensure consistent protections.
Use case demonstration:
This series includes a demonstration on the SiFive FU540 platform, which
uses a reserved PMP entry to protect the memory region at 0x0-0x1000
during early boot. This serves as a reference implementation showing how
platforms can leverage the reserved PMP allocator.
Changes v2->v3:
- Instead of using reserved-pmp-count DT property, this version adds
sbi_platform_reserved_pmp_count() to determine the reserved PMP count
[1] https://lore.kernel.org/all/20251113014656.2605447-20-samuel.holland@sifive.com/
Yu-Chien Peter Lin (6):
include: sbi: sbi_platform: add sbi_platform_reserved_pmp_count()
lib: sbi_init: print total and reserved PMP counts
lib: sbi: riscv_asm: support reserved PMP allocator
lib: sbi: sbi_hart: extend PMP handling to support multiple reserved
entries
lib: sbi: sbi_init: call sbi_hart_init() earlier
[TEMP] demonstrate hole protection using reserved PMP
include/sbi/riscv_asm.h | 6 +++
include/sbi/sbi_hart.h | 15 ------
include/sbi/sbi_platform.h | 35 +++++++++++++
lib/sbi/riscv_asm.c | 92 +++++++++++++++++++++++++++++++++
lib/sbi/sbi_domain_context.c | 6 ++-
lib/sbi/sbi_hart.c | 57 ++++++++++++++------
lib/sbi/sbi_init.c | 15 +++---
platform/generic/sifive/fu540.c | 56 ++++++++++++++++++++
8 files changed, 243 insertions(+), 39 deletions(-)
--
2.39.3
--
opensbi mailing list
opensbi@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/opensbi
next reply other threads:[~2025-11-30 11:17 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-30 11:16 Yu-Chien Peter Lin [this message]
2025-11-30 11:16 ` [RFC PATCH v3 1/6] include: sbi: sbi_platform: add sbi_platform_reserved_pmp_count() Yu-Chien Peter Lin
2025-11-30 11:16 ` [RFC PATCH v3 2/6] lib: sbi_init: print total and reserved PMP counts Yu-Chien Peter Lin
2025-11-30 11:16 ` [RFC PATCH v3 3/6] lib: sbi: riscv_asm: support reserved PMP allocator Yu-Chien Peter Lin
2025-11-30 11:16 ` [RFC PATCH v3 4/6] lib: sbi: sbi_hart: extend PMP handling to support multiple reserved entries Yu-Chien Peter Lin
2025-11-30 11:16 ` [RFC PATCH v3 5/6] lib: sbi: sbi_init: call sbi_hart_init() earlier Yu-Chien Peter Lin
2025-11-30 11:16 ` [RFC PATCH v3 6/6] [TEMP] demonstrate hole protection using reserved PMP Yu-Chien Peter Lin
2026-02-11 15:29 ` [RFC PATCH v3 0/6] Extend the reserved PMP entries Anup Patel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251130111643.1291462-1-peter.lin@sifive.com \
--to=peter.lin@sifive.com \
--cc=greentime.hu@sifive.com \
--cc=opensbi@lists.infradead.org \
--cc=samuel.holland@sifive.com \
--cc=zong.li@sifive.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox