[PATCH v3] RISC-V: Add CONFIG_{NON,}PORTABLE
Geert Uytterhoeven
geert at linux-m68k.org
Fri Jul 15 00:47:58 PDT 2022
Hi Palmer,
On Sat, May 21, 2022 at 10:49 PM Palmer Dabbelt <palmer at rivosinc.com> wrote:
> From: Palmer Dabbelt <palmer at rivosinc.com>
>
> The RISC-V port has collected a handful of options that are
> fundamentally non-portable. To prevent users from shooting themselves
> in the foot, hide them all behind a config entry that explicitly calls
> out that non-portable binaries may be produced.
>
> Signed-off-by: Palmer Dabbelt <palmer at rivosinc.com>
> Reviewed-by: Arnd Bergmann <arnd at arndb.de>
> Signed-off-by: Palmer Dabbelt <palmer at rivosinc.com>
Thanks for your patch, which is now commit 44c1e84a38a03175 ("RISC-V:
Add CONFIG_{NON,}PORTABLE") in riscv/for-next
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -222,6 +222,21 @@ source "arch/riscv/Kconfig.erratas"
>
> menu "Platform type"
>
> +config NONPORTABLE
> + bool "Allow configurations that result in non-portable kernels"
> + help
> + RISC-V kernel binaries are compatible between all known systems
> + whenever possible, but there are some use cases that can only be
> + satisfied by configurations that result in kernel binaries that are
> + not portable between systems.
> +
> + Selecting N does not guarantee kernels will be portable to all known
> + systems. Selecting any of the options guarded by NONPORTABLE will
> + result in kernel binaries that are unlikely to be portable between
> + systems.
> +
> + If unsure, say N.
Doing it this way means allmodconfig will enable NONPORTABLE, which
may not be what we want?
> +
> choice
> prompt "Base ISA"
> default ARCH_RV64I
> @@ -554,7 +571,7 @@ config PHYS_RAM_BASE
>
> config XIP_KERNEL
> bool "Kernel Execute-In-Place from ROM"
> - depends on MMU && SPARSEMEM
> + depends on MMU && SPARSEMEM && NONPORTABLE
Nice! Would we get something like this on arm32 past rmk?
> # This prevents XIP from being enabled by all{yes,mod}config, which
> # fail to build since XIP doesn't support large kernels.
> depends on !COMPILE_TEST
> @@ -594,9 +611,16 @@ endmenu
>
> config BUILTIN_DTB
> bool
> - depends on OF
> + depends on OF && NONPORTABLE
> default y if XIP_KERNEL
>
> +config PORTABLE
> + bool
> + default !NONPORTABLE
> + select EFI
> + select OF
> + select MMU
> +
> menu "Power management options"
>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
More information about the linux-riscv
mailing list