Message ID | 20220624150651.1358849-1-ardb@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | arm64: refactor boot flow | expand |
On Fri, 24 Jun 2022 17:06:30 +0200, Ard Biesheuvel wrote: > This series aims to streamline the boot flow with respect to cache > maintenance and redundant copying of data in memory. > > Additionally, this series removes the little dance we do to create a > kernel mapping, relocate the kernel, run the KASLR init code, tear down > the old mapping and create a new one, relocate the kernel again, and > finally enter the kernel proper. Instead, it invokes a minimal C > function 'kaslr_early_init()' while running from the ID map which > includes a temporary mapping of the FDT. This change represents a > substantial chunk of the diffstat, as it requires some work to > instantiate code that can run safely from an arbitrary load address. > > [...] Applied to arm64 (for-next/boot), thanks! [01/21] arm64: head: move kimage_vaddr variable into C file https://git.kernel.org/arm64/c/475031b6ed43 [02/21] arm64: mm: make vabits_actual a build time constant if possible https://git.kernel.org/arm64/c/0d9b1ffefabe [03/21] arm64: head: move assignment of idmap_t0sz to C code https://git.kernel.org/arm64/c/e8d13cced5c5 [04/21] arm64: head: drop idmap_ptrs_per_pgd https://git.kernel.org/arm64/c/ebd9aea1f27e [05/21] arm64: head: simplify page table mapping macros (slightly) https://git.kernel.org/arm64/c/53519ddf5894 [06/21] arm64: head: switch to map_memory macro for the extended ID map https://git.kernel.org/arm64/c/50fcd39d24c2 [07/21] arm64: head: split off idmap creation code https://git.kernel.org/arm64/c/e42ade29e3bc [08/21] arm64: kernel: drop unnecessary PoC cache clean+invalidate https://git.kernel.org/arm64/c/2e945851e268 [09/21] arm64: head: pass ID map root table address to __enable_mmu() https://git.kernel.org/arm64/c/723d3a8ed172 [10/21] arm64: mm: provide idmap pointer to cpu_replace_ttbr1() https://git.kernel.org/arm64/c/1682c45b9206 [11/21] arm64: head: add helper function to remap regions in early page tables https://git.kernel.org/arm64/c/b013c1e1c659 [12/21] arm64: head: cover entire kernel image in initial ID map https://git.kernel.org/arm64/c/c3cee924bd85 [13/21] arm64: head: use relative references to the RELA and RELR tables https://git.kernel.org/arm64/c/d7bea550279d [14/21] arm64: head: create a temporary FDT mapping in the initial ID map https://git.kernel.org/arm64/c/f70b3a23324a [15/21] arm64: idreg-override: use early FDT mapping in ID map https://git.kernel.org/arm64/c/a004393f45d9 [16/21] arm64: head: factor out TTBR1 assignment into a macro https://git.kernel.org/arm64/c/c0be8f18a3bf [17/21] arm64: head: populate kernel page tables with MMU and caches on https://git.kernel.org/arm64/c/6495b9ba6271 [18/21] arm64: head: record CPU boot mode after enabling the MMU https://git.kernel.org/arm64/c/005e12676af0 [19/21] arm64: kaslr: defer initialization to initcall where permitted https://git.kernel.org/arm64/c/fc5a89f75d2a [20/21] arm64: head: avoid relocating the kernel twice for KASLR https://git.kernel.org/arm64/c/aacd149b6238 [21/21] arm64: setup: drop early FDT pointer helpers https://git.kernel.org/arm64/c/7559d9f97581 Cheers,