[PATCH] RISC-V: Don't include Zicsr or Zifencei in I from ACPI
Palmer Dabbelt
palmer at rivosinc.com
Wed Jul 12 10:05:39 PDT 2023
On Tue, 11 Jul 2023 15:52:56 PDT (-0700), Conor Dooley wrote:
> On Tue, Jul 11, 2023 at 03:46:00PM -0700, Palmer Dabbelt wrote:
>> ACPI ISA strings are based on a specification after Zicsr and Zifencei
>> were split out of I, so we shouldn't be treating them as part of I. We
>> haven't release an ACPI-based kernel yet, so we don't need to worry
>> about compatibility with the old ISA strings.
>>
>> Fixes: 396c018332a1 ("RISC-V: cpufeature: Add ACPI support in riscv_fill_hwcap()")
>
> I think, if anything, this is actually:
> Fixes: 07edc32779e3 ("RISC-V: always report presence of extensions formerly part of the base ISA")
>
> Although my rationale was that if we get as far as here, then Zicsr and
> Zifencei are going to be enabled anyway so there is no harm in setting
> it for both. I probably should have been less of a cute hoor though.
> Reviewed-by: Conor Dooley <conor.dooley at microchip.com>
I think there's no way to get here without the extensions, not 100% sure
though. I'm mainly trying to avoid going down the same rabbit hole of
ISA string compatibility hacks in ACPI that we have for DT, though --
I'm sure we'll end up with a mess as soon as we release, but might as
well catch as much as we can.
>
> Cheers,
> Conor.
>
>> Signed-off-by: Palmer Dabbelt <palmer at rivosinc.com>
>> ---
>> arch/riscv/kernel/cpufeature.c | 9 ++-------
>> 1 file changed, 2 insertions(+), 7 deletions(-)
>>
>> diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
>> index bdcf460ea53d..a8f66c015229 100644
>> --- a/arch/riscv/kernel/cpufeature.c
>> +++ b/arch/riscv/kernel/cpufeature.c
>> @@ -317,19 +317,14 @@ void __init riscv_fill_hwcap(void)
>> #undef SET_ISA_EXT_MAP
>> }
>>
>> - /*
>> - * Linux requires the following extensions, so we may as well
>> - * always set them.
>> - */
>> - set_bit(RISCV_ISA_EXT_ZICSR, isainfo->isa);
>> - set_bit(RISCV_ISA_EXT_ZIFENCEI, isainfo->isa);
>> -
>> /*
>> * These ones were as they were part of the base ISA when the
>> * port & dt-bindings were upstreamed, and so can be set
>> * unconditionally where `i` is in riscv,isa on DT systems.
>> */
>> if (acpi_disabled) {
>> + set_bit(RISCV_ISA_EXT_ZICSR, isainfo->isa);
>> + set_bit(RISCV_ISA_EXT_ZIFENCEI, isainfo->isa);
>> set_bit(RISCV_ISA_EXT_ZICNTR, isainfo->isa);
>> set_bit(RISCV_ISA_EXT_ZIHPM, isainfo->isa);
>> }
>> --
>> 2.40.1
>>
>>
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv
More information about the linux-riscv
mailing list