Message ID | 20250115184316.2344583-3-dbarboza@ventanamicro.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/riscv: RVA23 profile support | expand |
On Thu, Jan 16, 2025 at 4:45 AM Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote: > > From the time we added RVA22U64 until now the spec didn't declare 'RVB' > as a dependency, using zba/zbb/zbs instead. Since then the RVA22 spec > [1] added the following in the 'RVA22U64 Mandatory Extensions' section: > > "B Bit-manipulation instructions > > Note: The B extension comprises the Zba, Zbb, and Zbs extensions. At the > time of RVA22U64's ratification, the B extension had not yet been > defined, and so RVA22U64 explicitly mandated Zba, Zbb, and Zbs instead. > Mandating B is equivalent." > > It is also equivalent to QEMU (see riscv_cpu_validate_b() in > target/riscv/tcg/tcg-cpu.c). > > Finally, RVA23U64 [2] directly mentions RVB as a mandatory extension, > not citing zba/zbb/zbs. > > To make it clear that RVA23U64 will extend RVA22U64 (i.e. RVA22 is a > parent of RVA23), use RVB in RVA22U64 as well. > > (bios-tables-test change: RVB added to riscv,isa) > > [1] https://github.com/riscv/riscv-profiles/blob/main/src/profiles.adoc#61-rva22u64-profile > [2] https://github.com/riscv/riscv-profiles/blob/main/src/rva23-profile.adoc#rva23u64-profile > > Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/cpu.c | 2 +- > tests/data/acpi/riscv64/virt/RHCT | Bin 398 -> 400 bytes > 2 files changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c > index b187ef2e4b..6fb4d5f374 100644 > --- a/target/riscv/cpu.c > +++ b/target/riscv/cpu.c > @@ -2351,7 +2351,7 @@ static const PropertyInfo prop_marchid = { > static RISCVCPUProfile RVA22U64 = { > .parent = NULL, > .name = "rva22u64", > - .misa_ext = RVI | RVM | RVA | RVF | RVD | RVC | RVU, > + .misa_ext = RVI | RVM | RVA | RVF | RVD | RVC | RVB | RVU, > .priv_spec = RISCV_PROFILE_ATTR_UNUSED, > .satp_mode = RISCV_PROFILE_ATTR_UNUSED, > .ext_offsets = { > diff --git a/tests/data/acpi/riscv64/virt/RHCT b/tests/data/acpi/riscv64/virt/RHCT > index b14ec15e553200760a63aad65586913d31ea2edc..13c8025b868051485be5ba62974a22971a07bc6a 100644 > GIT binary patch > delta 53 > zcmeBUp1{l%<l!7LfsuiM@#{n`13^7TMg~>JqB1j+%-qDZl;ot1UQ&#clNpsc(ij;S > I3K$s}0ARKZK>z>% > > delta 52 > zcmbQh+{ern<l!9B$H>6Im@tvcKtP9)kwJyAsLaeHGdD3UC3&N_6yxMHMkS6EMh1pF > HMg|4|IwT82 > > -- > 2.47.1 > >
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index b187ef2e4b..6fb4d5f374 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2351,7 +2351,7 @@ static const PropertyInfo prop_marchid = { static RISCVCPUProfile RVA22U64 = { .parent = NULL, .name = "rva22u64", - .misa_ext = RVI | RVM | RVA | RVF | RVD | RVC | RVU, + .misa_ext = RVI | RVM | RVA | RVF | RVD | RVC | RVB | RVU, .priv_spec = RISCV_PROFILE_ATTR_UNUSED, .satp_mode = RISCV_PROFILE_ATTR_UNUSED, .ext_offsets = {