ARM: permit relative phys-to-virt alignment of >= 2 MiB
The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:
Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/arm-p2v-for-v5.10
for you to fetch changes up to b9cdfe66e33df899797d66e1840889df25433df6:
ARM: p2v: reduce p2v alignment requirement to 2 MiB (2020-09-26 11:41:21 +0200)
----------------------------------------------------------------
Implement the necessary changes in the ARM assembler boot code to permit the relative alignment of the physical and the virtual addresses of the kernel to be as little as 2 MiB, as opposed to the minimum of 16 MiB we support today.
Series was posted here, and reviewed by Nicolas Pitre and Linus Walleij:
https://lore.kernel.org/linux-arm-kernel/[email protected]/
----------------------------------------------------------------
Ard Biesheuvel (11):
ARM: assembler: introduce adr_l, ldr_l and str_l macros
ARM: module: add support for place relative relocations
ARM: p2v: fix handling of LPAE translation in BE mode
ARM: p2v: move patching code to separate assembler source file
ARM: p2v: factor out shared loop processing
ARM: p2v: factor out BE8 handling
ARM: p2v: drop redundant 'type' argument from __pv_stub
ARM: p2v: use relative references in patch site arrays
ARM: p2v: simplify __fixup_pv_table()
ARM: p2v: switch to MOVW for Thumb2 and ARM/LPAE
ARM: p2v: reduce p2v alignment requirement to 2 MiB
arch/arm/Kconfig | 2 +- arch/arm/include/asm/assembler.h | 84 ++++++++++++++ arch/arm/include/asm/elf.h | 5 + arch/arm/include/asm/memory.h | 57 +++++++--- arch/arm/kernel/Makefile | 1 + arch/arm/kernel/head.S | 142 ----------------------- arch/arm/kernel/module.c | 20 +++- arch/arm/kernel/phys2virt.S | 238 +++++++++++++++++++++++++++++++++++++++ 8 files changed, 387 insertions(+), 162 deletions(-) create mode 100644 arch/arm/kernel/phys2virt.S
_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
[GIT PULL 2/2] ARM assembler cleanups
The following changes since commit 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5:
Linux 5.9-rc1 (2020-08-16 13:04:57 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/arm-adrl-replacement-for-v5.10
for you to fetch changes up to 1c0ef9c28760d3bff9e1bda5f48898d03e29cbb7:
ARM: kvm: replace open coded VA->PA calculations with adr_l call (2020-09-26 11:13:45 +0200)
Note that the first two patches are shared with 1/2, so that the PRs can be merged independently. With those omitted from the diffstat, it becomes
7 files changed, 44 insertions(+), 111 deletions(-)
----------------------------------------------------------------
Introduce adr_l/ldr_l/str_l/mov_l assembler macros like we have on arm64, and use them to replace open coded VA-to-PA arithmetic in various places in the code. This avoids the use of literals on v7+ CPUs, reduces the footprint of the code in most cases, and generally makes the code easier to follow.
Series was posted here, and reviewed by Nicolas Pitre:
https://lore.kernel.org/linux-arm-kernel/[email protected]/
----------------------------------------------------------------
Ard Biesheuvel (11):
ARM: assembler: introduce adr_l, ldr_l and str_l macros
ARM: module: add support for place relative relocations
ARM: efistub: replace adrl pseudo-op with adr_l macro invocation
ARM: head-common.S: use PC-relative insn sequence for __proc_info
ARM: head-common.S: use PC-relative insn sequence for idmap creation
ARM: head.S: use PC-relative insn sequence for secondary_data
ARM: kernel: use relative references for UP/SMP alternatives
ARM: head: use PC-relative insn sequence for __smp_alt
ARM: sleep.S: use PC-relative insn sequence for sleep_save_sp/mpidr_hash
ARM: head.S: use PC relative insn sequence to calculate PHYS_OFFSET
ARM: kvm: replace open coded VA->PA calculations with adr_l call
arch/arm/boot/compressed/head.S | 18 ++------ arch/arm/include/asm/assembler.h | 88 +++++++++++++++++++++++++++++++++++++++- arch/arm/include/asm/elf.h | 5 +++ arch/arm/include/asm/processor.h | 2 +- arch/arm/kernel/head-common.S | 22 +++------- arch/arm/kernel/head.S | 63 +++++++--------------------- arch/arm/kernel/hyp-stub.S | 27 ++++++------ arch/arm/kernel/module.c | 20 ++++++++- arch/arm/kernel/sleep.S | 19 +++------ 9 files changed, 151 insertions(+), 113 deletions(-)
_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel