[PATCH v8 00/43] arm64: Add support for LPA2 and WXN at stage 1

Catalin Marinas catalin.marinas at arm.com
Fri Feb 16 09:35:34 PST 2024


On Wed, 14 Feb 2024 13:28:46 +0100, Ard Biesheuvel wrote:
> This v8 covers the remaining changes that implement support for LPA2 and
> WXN at stage 1, now that some of the prerequisites are in place.
> 
> v4: https://lore.kernel.org/r/20230912141549.278777-63-ardb@google.com/
> v5: https://lore.kernel.org/r/20231124101840.944737-41-ardb@google.com/
> v6: https://lore.kernel.org/r/20231129111555.3594833-43-ardb@google.com/
> v7: https://lore.kernel.org/r/20240123145258.1462979-52-ardb%2Bgit%40google.com/
> 
> [...]

I queued this series via the arm64 tree (for-next/stage1-lpa2). I tried
a couple of releases ago but for some reason my tests started failing at
it was very close to the merging window, so dropped. This time around,
if anything goes wrong, we have a bit of time to fix (it might as well
have been my test scripts and nothing to do with these patches).

The last patch introducing WXN has ABI implications but it's default
off. I think we should keep the patch as certain markets will likely
turn it on.

Surprisingly, there are no conflicts with Ryan's contpte series AFAICT
(I did a merge locally).

Thanks.

[01/43] arm64: kernel: Manage absolute relocations in code built under pi/
        https://git.kernel.org/arm64/c/48157aa39286
[02/43] arm64: kernel: Don't rely on objcopy to make code under pi/ __init
        https://git.kernel.org/arm64/c/a86aa72eb3b0
[03/43] arm64: head: move relocation handling to C code
        https://git.kernel.org/arm64/c/734958ef0b54
[04/43] arm64: idreg-override: Move to early mini C runtime
        https://git.kernel.org/arm64/c/e223a4491255
[05/43] arm64: kernel: Remove early fdt remap code
        https://git.kernel.org/arm64/c/9c4cd2a7d12c
[06/43] arm64: head: Clear BSS and the kernel page tables in one go
        https://git.kernel.org/arm64/c/aa99aad798a8
[07/43] arm64: Move feature overrides into the BSS section
        https://git.kernel.org/arm64/c/30687dec5ed5
[08/43] arm64: head: Run feature override detection before mapping the kernel
        https://git.kernel.org/arm64/c/dcfe969a6419
[09/43] arm64: head: move dynamic shadow call stack patching into early C runtime
        https://git.kernel.org/arm64/c/8a6e40e1f68e
[10/43] arm64: cpufeature: Add helper to test for CPU feature overrides
        https://git.kernel.org/arm64/c/35876f35f482
[11/43] arm64: kaslr: Use feature override instead of parsing the cmdline again
        https://git.kernel.org/arm64/c/af73b9a2dd39
[12/43] arm64: idreg-override: Create a pseudo feature for rodata=off
        https://git.kernel.org/arm64/c/9ddd9baa42a0
[13/43] arm64: Add helpers to probe local CPU for PAC and BTI support
        https://git.kernel.org/arm64/c/a669c6a49356
[14/43] arm64: head: allocate more pages for the kernel mapping
        https://git.kernel.org/arm64/c/8d47b8e5c74a
[15/43] arm64: head: move memstart_offset_seed handling to C code
        https://git.kernel.org/arm64/c/aa6a52b2470c
[16/43] arm64: mm: Make kaslr_requires_kpti() a static inline
        https://git.kernel.org/arm64/c/293d865f0af5
[17/43] arm64: mmu: Make __cpu_replace_ttbr1() out of line
        https://git.kernel.org/arm64/c/82ca151da7d5
[18/43] arm64: head: Move early kernel mapping routines into C code
        https://git.kernel.org/arm64/c/97a6f43bb049
[19/43] arm64: mm: Use 48-bit virtual addressing for the permanent ID map
        https://git.kernel.org/arm64/c/e6128a8e523c
[20/43] arm64: pgtable: Decouple PGDIR size macros from PGD/PUD/PMD levels
        https://git.kernel.org/arm64/c/34b98e55f684
[21/43] arm64: kernel: Create initial ID map from C code
        https://git.kernel.org/arm64/c/84b04d3e6bdb
[22/43] arm64: mm: avoid fixmap for early swapper_pg_dir updates
        https://git.kernel.org/arm64/c/567a70c181df
[23/43] arm64: mm: omit redundant remap of kernel image
        https://git.kernel.org/arm64/c/ba5b0333a847
[24/43] arm64: Revert "mm: provide idmap pointer to cpu_replace_ttbr1()"
        https://git.kernel.org/arm64/c/e0f92f0d1b51
[25/43] arm64: mm: Handle LVA support as a CPU feature
        https://git.kernel.org/arm64/c/9cce9c6c2c3b
[26/43] arm64: mm: Add feature override support for LVA
        https://git.kernel.org/arm64/c/68aec33f8f5a
[27/43] arm64: Avoid #define'ing PTE_MAYBE_NG to 0x0 for asm use
        https://git.kernel.org/arm64/c/60d043c10176
[28/43] arm64: Add ESR decoding for exceptions involving translation level -1
        https://git.kernel.org/arm64/c/7ac8d5b2423c
[29/43] arm64: mm: Wire up TCR.DS bit to PTE shareability fields
        https://git.kernel.org/arm64/c/db95ea787bd1
[30/43] arm64: mm: Add LPA2 support to phys<->pte conversion routines
        https://git.kernel.org/arm64/c/925a0eb48044
[31/43] arm64: mm: Add definitions to support 5 levels of paging
        https://git.kernel.org/arm64/c/a6bbf5d4d9d1
[32/43] arm64: mm: add LPA2 and 5 level paging support to G-to-nG conversion
        https://git.kernel.org/arm64/c/2b6c8f96cc47
[33/43] arm64: Enable LPA2 at boot if supported by the system
        https://git.kernel.org/arm64/c/9684ec186f8f
[34/43] arm64: mm: Add 5 level paging support to fixmap and swapper handling
        https://git.kernel.org/arm64/c/6ed8a3a094b4
[35/43] arm64: kasan: Reduce minimum shadow alignment and enable 5 level paging
        https://git.kernel.org/arm64/c/0383808e4d99
[36/43] arm64: mm: Add support for folding PUDs at runtime
        https://git.kernel.org/arm64/c/0dd4f60a2c76
[37/43] arm64: ptdump: Disregard unaddressable VA space
        https://git.kernel.org/arm64/c/16f22981b6d7
[38/43] arm64: ptdump: Deal with translation levels folded at runtime
        https://git.kernel.org/arm64/c/d40900fcb397
[39/43] arm64: kvm: avoid CONFIG_PGTABLE_LEVELS for runtime levels
        https://git.kernel.org/arm64/c/95e059b5db60
[40/43] arm64: Enable 52-bit virtual addressing for 4k and 16k granule configs
        https://git.kernel.org/arm64/c/352b0395b505
[41/43] arm64: defconfig: Enable LPA2 support
        https://git.kernel.org/arm64/c/5d101654226d
[42/43] mm: add arch hook to validate mmap() prot flags
        https://git.kernel.org/arm64/c/cb1a393c40ee
[43/43] arm64: mm: add support for WXN memory translation attribute
        https://git.kernel.org/arm64/c/50e3ed0f93f4

-- 
Catalin




More information about the linux-arm-kernel mailing list