[PATCH] RISC-V: Add support for Smpmpmt v0.6 extension

Kito Cheng kito.cheng@gmail.com
Wed Nov 5 03:38:47 GMT 2025


Although it’s frozen, but the version is still at 0.6, so I’d suggest
deferring it until RVIA declares it as 1.0.

On Wed, Nov 5, 2025 at 11:27 AM Jerry Zhang Jian via Binutils
<binutils@sourceware.org> wrote:
>
> This implements the Smpmpmt (PMP-based Memory Types) extension,
> version 0.6[1].
>
> The Smpmpmt extension provides a mechanism to control memory
> attributes at the granularity of PMP regions, analogous to Svpbmt
> but associated with PMP registers rather than page-table entries.
>
> The extension is currently in frozen state[2].
>
> [1] https://github.com/riscv/riscv-isa-manual/blob/smpmpmt/src/smpmpmt.adoc
> [2] https://riscv.atlassian.net/browse/RVS-2948
>
> bfd/ChangeLog:
>
>         * elfxx-riscv.c: Add Smpmpmt v0.6 extension.
>
> gas/ChangeLog:
>
>         * NEWS: Updated.
>         * testsuite/gas/riscv/march-help.l: Ditto.
>
> Signed-off-by: Jerry Zhang Jian <jerry.zhangjian@sifive.com>
> ---
>  bfd/elfxx-riscv.c                    | 1 +
>  gas/NEWS                             | 6 +++---
>  gas/testsuite/gas/riscv/march-help.l | 1 +
>  3 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
> index 085d77923a0..1134d671063 100644
> --- a/bfd/elfxx-riscv.c
> +++ b/bfd/elfxx-riscv.c
> @@ -1569,6 +1569,7 @@ static const struct riscv_supported_ext riscv_supported_std_s_ext[] =
>    {"smcntrpmf",                ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"smctr",            ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"smepmp",           ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> +  {"smpmpmt",          ISA_SPEC_CLASS_DRAFT,           0, 6, 0 },
>    {"smrnmi",           ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"smstateen",                ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
>    {"smdbltrp",         ISA_SPEC_CLASS_DRAFT,           1, 0, 0 },
> diff --git a/gas/NEWS b/gas/NEWS
> index 4bd3d747aa5..fdbd3d90f1b 100644
> --- a/gas/NEWS
> +++ b/gas/NEWS
> @@ -48,9 +48,9 @@ Changes in 2.45:
>    .bfloat16 directive.
>
>  * Add support for RISC-V standard extensions:
> -  ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0, supm v1.0,
> -  sha v1.0, zce v1.0, smcdeleg v1.0, ssccfg v1.0, svvptc v1.0, zilsd v1.0,
> -  zclsd v1.0, smrnmi v1.0 instruction.
> +  smpmpmt v0.6, ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0,
> +  supm v1.0, sha v1.0, zce v1.0, smcdeleg v1.0, ssccfg v1.0, svvptc v1.0,
> +  zilsd v1.0, zclsd v1.0, smrnmi v1.0 instruction.
>
>  * Add support for RISC-V vendor extensions:
>    T-Head: xtheadvdot v1.0.
> diff --git a/gas/testsuite/gas/riscv/march-help.l b/gas/testsuite/gas/riscv/march-help.l
> index 0ce2f896735..99608b21d0c 100644
> --- a/gas/testsuite/gas/riscv/march-help.l
> +++ b/gas/testsuite/gas/riscv/march-help.l
> @@ -124,6 +124,7 @@ All available -march extensions for RISC-V:
>         smcntrpmf                               1.0
>         smctr                                   1.0
>         smepmp                                  1.0
> +       smpmpmt                                 0.6
>         smrnmi                                  1.0
>         smstateen                               1.0
>         smdbltrp                                1.0
> --
> 2.51.1
>


More information about the Binutils mailing list