[PATCH v4 00/13] ARM: Map sections RO/XN
Sascha Hauer
s.hauer at pengutronix.de
Tue Aug 5 03:18:40 PDT 2025
Hi Ahmad,
On Mon, Aug 04, 2025 at 07:22:20PM +0200, Ahmad Fatoum wrote:
> This series replaces 7 patches that are in next to fix a barebox hang
> when used together with OP-TEE.
Unfortunately I haven't seen this in time, so the offending patches are
in master now. Could you resend your changes as patches instead?
Thanks
Sascha
>
> Root cause is that we need to consider both reserved memory entries
> and the text area at once, otherwise mapping non-reserved regions
> cached would map the text area eXecute never
>
> Changes in v4:
> - skip TLB invalidation if remapping zero bytes
> - share common memory bank remapping code
> - fix reserved memory at end of RAM mapping barebox text
> eXecute Never
> - add range helpers to make especially v4 code clearer
> - pass map type not pte flags to early_remap_range
>
> Changes in v3:
> - rework create_sections() for Ahmads comments
> - mention CR_S bit and DOMAIN_CLIENT in commit message
> - Link to v2: https://lore.barebox.org/20250617-mmu-xn-ro-v2-0-3c7aa9046b67@pengutronix.de
>
> Changes in v2:
> - Tested and fixed for ARMv5
> - merge create_pages() and create_sections() into one functions (ahmad)
> - introduce function to create mapping flags based on CONFIG_ARM_MMU_PERMISSIONS
> - Link to v1: https://lore.barebox.org/20250606-mmu-xn-ro-v1-0-7ee6ddd134d4@pengutronix.de
>
> Ahmad Fatoum (8):
> mmu: explicitly map executable non-SDRAM regions with MAP_CODE
> ARM: mmu: skip TLB invalidation if remapping zero bytes
> ARM: mmu: provide setup_trap_pages for both 32- and 64-bit
> ARM: mmu: share common memory bank remapping code
> ARM: mmu: make mmu_remap_memory_banks clearer with helper
> partition: rename region_overlap_end to region_overlap_end_inclusive
> partition: define new region_overlap_end_exclusive helper
> ARM: mmu64: map text segment ro and data segments execute never
>
> Sascha Hauer (5):
> ARM: pass barebox base to mmu_early_enable()
> ARM: mmu: move ARCH_MAP_WRITECOMBINE to header
> ARM: mmu: map memory for barebox proper pagewise
> ARM: mmu: map text segment ro and data segments execute never
> ARM: mmu64: map memory for barebox proper pagewise
>
> arch/arm/Kconfig | 12 ++++
> arch/arm/cpu/lowlevel_32.S | 1 +
> arch/arm/cpu/mmu-common.c | 69 +++++++++++++++++++++
> arch/arm/cpu/mmu-common.h | 21 +++++++
> arch/arm/cpu/mmu_32.c | 101 ++++++++++++++++++-------------
> arch/arm/cpu/mmu_64.c | 88 ++++++++++++++++-----------
> arch/arm/cpu/uncompress.c | 9 ++-
> arch/arm/include/asm/mmu.h | 2 +-
> arch/arm/include/asm/pgtable64.h | 1 +
> arch/arm/lib32/barebox.lds.S | 3 +-
> arch/arm/lib64/barebox.lds.S | 5 +-
> arch/arm/mach-imx/romapi.c | 3 +-
> commands/iomemport.c | 2 +-
> common/memory.c | 7 ++-
> common/partitions.c | 6 +-
> drivers/firmware/socfpga.c | 4 ++
> drivers/hab/habv4.c | 2 +-
> include/mmu.h | 1 +
> include/range.h | 30 +++++++--
> 19 files changed, 268 insertions(+), 99 deletions(-)
>
> --
> 2.39.5
>
>
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list