Re: [PATCH v5 00/21] arm64: refactor boot flow

Will Deacon
2022-06-24T17:15:52Z

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,
--
Will