diff options
author | Marc Zyngier <maz@kernel.org> | 2021-02-08 10:57:21 +0100 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2021-02-09 14:47:50 +0100 |
commit | f6f0c4362f070cab4a0cec432e82428d702ce0a6 (patch) | |
tree | 1d3182a21a793a5151038f7f533fcf90ad878665 /arch/arm64/kernel/setup.c | |
parent | arm64: cpufeature: Use IDreg override in __read_sysreg_by_encoding() (diff) | |
download | linux-f6f0c4362f070cab4a0cec432e82428d702ce0a6.tar.xz linux-f6f0c4362f070cab4a0cec432e82428d702ce0a6.zip |
arm64: Extract early FDT mapping from kaslr_early_init()
As we want to parse more options very early in the kernel lifetime,
let's always map the FDT early. This is achieved by moving that
code out of kaslr_early_init().
No functional change expected.
Signed-off-by: Marc Zyngier <maz@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: David Brazdil <dbrazdil@google.com>
Link: https://lore.kernel.org/r/20210208095732.3267263-13-maz@kernel.org
[will: Ensue KASAN is enabled before running C code]
Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'arch/arm64/kernel/setup.c')
-rw-r--r-- | arch/arm64/kernel/setup.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index c18aacde8bb0..61845c0821d9 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -168,6 +168,21 @@ static void __init smp_build_mpidr_hash(void) pr_warn("Large number of MPIDR hash buckets detected\n"); } +static void *early_fdt_ptr __initdata; + +void __init *get_early_fdt_ptr(void) +{ + return early_fdt_ptr; +} + +asmlinkage void __init early_fdt_map(u64 dt_phys) +{ + int fdt_size; + + early_fixmap_init(); + early_fdt_ptr = fixmap_remap_fdt(dt_phys, &fdt_size, PAGE_KERNEL); +} + static void __init setup_machine_fdt(phys_addr_t dt_phys) { int size; |