]> www.infradead.org Git - users/hch/block.git/commitdiff
arm64: Add the arm64.no32bit_el0 command line option
authorAndrea della Porta <andrea.porta@suse.com>
Mon, 29 Apr 2024 10:28:33 +0000 (12:28 +0200)
committerWill Deacon <will@kernel.org>
Fri, 3 May 2024 12:08:06 +0000 (13:08 +0100)
Introducing the field 'el0' to the idreg-override for register
ID_AA64PFR0_EL1. This field is also aliased to the new kernel
command line option 'arm64.no32bit_el0' as a more recognizable
and mnemonic name to disable the execution of 32 bit userspace
applications (i.e. avoid Aarch32 execution state in EL0) from
kernel command line.

Link: https://lore.kernel.org/all/20240207105847.7739-1-andrea.porta@suse.com/
Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
Link: https://lore.kernel.org/r/20240429102833.6426-1-andrea.porta@suse.com
Signed-off-by: Will Deacon <will@kernel.org>
Documentation/admin-guide/kernel-parameters.txt
arch/arm64/kernel/pi/idreg-override.c

index 623fce7d5fcd0c4392432908e21aaba5134e3aa0..afd6fcc1e8b94cba4918c812d40d20bc660be25e 100644 (file)
        arcrimi=        [HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards
                        Format: <io>,<irq>,<nodeID>
 
+       arm64.no32bit_el0 [ARM64] Unconditionally disable the execution of
+                       32 bit applications.
+
        arm64.nobti     [ARM64] Unconditionally disable Branch Target
                        Identification support
 
index aad399796e812180aa4e8e244d30a97fb29950d9..48c1aa456af9054c51eae6dfae1b002c63fc478c 100644 (file)
@@ -108,6 +108,7 @@ static const struct ftr_set_desc pfr0 __prel64_initconst = {
        .override       = &id_aa64pfr0_override,
        .fields         = {
                FIELD("sve", ID_AA64PFR0_EL1_SVE_SHIFT, pfr0_sve_filter),
+               FIELD("el0", ID_AA64PFR0_EL1_EL0_SHIFT, NULL),
                {}
        },
 };
@@ -223,6 +224,7 @@ static const struct {
        { "nokaslr",                    "arm64_sw.nokaslr=1" },
        { "rodata=off",                 "arm64_sw.rodataoff=1" },
        { "arm64.nolva",                "id_aa64mmfr2.varange=0" },
+       { "arm64.no32bit_el0",          "id_aa64pfr0.el0=1" },
 };
 
 static int __init parse_hexdigit(const char *p, u64 *v)