[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAMuHMdVJ7bhPka0acgw2wAZmsgDP2+tbqS7fO2A=_BOmv+8+HA@mail.gmail.com>
Date: Fri, 15 Jul 2022 09:47:58 +0200
From: Geert Uytterhoeven <geert@...ux-m68k.org>
To: Palmer Dabbelt <palmer@...osinc.com>
Cc: linux-riscv <linux-riscv@...ts.infradead.org>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
Randy Dunlap <rdunlap@...radead.org>,
Arnd Bergmann <arnd@...db.de>,
Anup Patel <anup@...infault.org>,
Alexandre Ghiti <alexandre.ghiti@...onical.com>,
Damien Le Moal <damien.lemoal@...nsource.wdc.com>,
Atish Patra <atishp@...osinc.com>,
Jens Axboe <axboe@...nel.dk>, Guo Ren <guoren@...nel.org>,
mchitale@...tanamicro.com,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux@...osinc.com
Subject: Re: [PATCH v3] RISC-V: Add CONFIG_{NON,}PORTABLE
Hi Palmer,
On Sat, May 21, 2022 at 10:49 PM Palmer Dabbelt <palmer@...osinc.com> wrote:
> From: Palmer Dabbelt <palmer@...osinc.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@...osinc.com>
> Reviewed-by: Arnd Bergmann <arnd@...db.de>
> Signed-off-by: Palmer Dabbelt <palmer@...osinc.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@...ux-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
Powered by blists - more mailing lists