Re: [PATCH v2 10/10] RISC-V: provide a Kconfig option to disable parsing "riscv,isa"

From: Conor Dooley
Date: Fri Jun 30 2023 - 09:20:23 EST


On Fri, Jun 30, 2023 at 09:46:48AM +0200, Andrew Jones wrote:
> On Thu, Jun 29, 2023 at 10:44:18PM +0100, Conor Dooley wrote:
> > On Thu, Jun 29, 2023 at 02:16:49PM -0700, Palmer Dabbelt wrote:
> > > On Thu, 29 Jun 2023 13:20:55 PDT (-0700), Conor Dooley wrote:
> ...
> > > > +bool __initdata riscv_isa_fallback_cmdline = false;
> > > > +static int __init riscv_isa_fallback_setup(char *__unused)
> > >
> > > Maybe it's better to support =true and =false here? Not sure it matters,
> > > we're already down a rabbit hole ;)
> >
> > Dunno, not implemented a cmdline param before. Seemed "cleaner" to check
> > for presence, don't really care so I'll adapt to w/e.
> >
>
> I don't have a strong preference here, but to throw in more food for
> thought, I see this DT-v1 vs. DT-v2 choice to be a bit analogous to the
> DT vs. ACPI choice. The 'acpi' command line parameter, for RISC-V, can
> be 'off', 'on', and 'force', where
>
> off -- disable ACPI if default was on
> on -- enable ACPI but allow fallback to DT
> force -- enable ACPI if default was off
>
> So, if the default of the isa fallback command line option will depend on
> Kconfig, then we may also want a 'force'.

I'm not sure that I understand what "force" would give us.
There's 4 cases:
- CONFIG_RISCV_ISA_FALLBACK is enabled, cmdline option is present:
cmdline option is ignored, fallback is taken if needed.
crash if neither are present.

- CONFIG_RISCV_ISA_FALLBACK is enabled, cmdline option is not present:
cmdline option is ignored, fallback is taken if needed.
crash if neither are present.

- CONFIG_RISCV_ISA_FALLBACK is disabled, cmdline option is present:
cmdline option takes priority, fallback is taken if needed.
crash if neither are present.

- CONFIG_RISCV_ISA_FALLBACK is disabled, cmdline option is not present:
fallback is never taken
crash if new properties aren't present.

I don't really see the value in having an equivalent to acpi=off,
because the order of precedence is, to use your naming, "DT-v2" falling
back to "DT-v1" & the default value concerns the use of the fallback.
For ACPI, it is the other way around & the option controls the use of
"DT-v2"'s analogue. Trying to slot in that logic:

- CONFIG_RISCV_ISA_FALLBACK is enabled, cmdline option "=on":
cmdline option is ignored, fallback is taken if needed.
crash if neither are present.

- CONFIG_RISCV_ISA_FALLBACK is enabled, cmdline option "=off":
cmdline option is prioritised, fallback is taken if needed.
crash if new properties aren't present.

- CONFIG_RISCV_ISA_FALLBACK is disabled, cmdline option "=on":
cmdline option is prioritised, fallback is taken if needed.
crash if neither are present.

- CONFIG_RISCV_ISA_FALLBACK is disabled, cmdline option "=off":
fallback is never taken
crash if new properties aren't present.

I think I prefer the behaviour of what I currently have & I don't really
get where the "force" option is supposed to fit in either?

Cheers,
Conor.

Attachment: signature.asc
Description: PGP signature