[PATCH -next v6 0/9] Add support for dynamic MMU configuration
Wadim Egorov
w.egorov at phytec.de
Mon Sep 8 16:20:40 CEST 2025
On 9/5/25 11:18 AM, Anshul Dalal wrote:
> Hi all,
>
> In U-Boot, TI only provides a single memory map for all k3 platforms, this
> does not scale for devices where atf and optee lie outside the range 0x80000000
> - 0x80080000 and 0x9e780000 - 0xa0000000 respectively.
>
> There are also issues for devices with < 2GiB of memory (eg am62SiP with 512MiB
> of RAM) as the maximum size for the first DRAM bank is hardcoded to 2GiB.
> Furthermore the second DRAM bank is mapped even for devices that only have one.
>
> Therefore this patch set adds the required functionality to create the MMU table
> at runtime.
>
> The patch set has been build tested on all effected platforms but boot-tested
> only on TI's K3 EVMs and the beagleplay.
>
> The following effected boards have not been boot tested:
> - phycore-am62a
> - phycore-am62x
> - phycore-am64x
> - verdin-am62
> - iot2050
>
> Depends on:
> [PATCH v1] mach-k3: fix reading size and addr from fdt on R5
> https://lore.kernel.org/u-boot/20250903111704.530700-1-anshuld@ti.com/
For this series,
Tested-by: Wadim Egorov <w.egorov at phytec.de> # phycore-am6*
>
> Best Wishes,
> Anshul
> ---
> Changes in v6:
> - Make use of generic MMU APIs
> - Extend core U-Boot functionality by adding mmu_unmap_reserved_mem and
> mem_map_fix_dram_banks
> - Keep same memory maps for SPL and U-Boot proper
> - Add fdt fixups from SPL stage for reserved memory nodes
> v5: https://lore.kernel.org/u-boot/20250703133533.104758-1-anshuld@ti.com/
>
> Changes in v5:
> - Don't create carveouts for every reserved-memory node
> - Only create carveouts for ATF/OP-TEE
> - Expand the call to k3_mem_map_init to vendor boards as well
> - Map area for framebuffer for CONFIG_VIDEO=y platforms
> v4: https://lore.kernel.org/u-boot/20250618124210.1936140-1-anshuld@ti.com/
>
> Changes for v4:
> - Add call to k3_mem_map_init for beagleplay
> - Mark reserved regions as non-cacheable
> - More debug logs
> v3: https://lore.kernel.org/u-boot/20250617135844.2873701-1-anshuld@ti.com/
>
> Changes for v3:
> - Remove unused memory regions in SPL's map
> - Add runtime addition of MMU entry for the framebuffer in SPL
> - Refactor k3_mem_map_init to use standard u-boot APIs
> - Unmap reserved-memory regions instead of keeping them uncached
> v2: https://lore.kernel.org/u-boot/20250610160833.1705534-1-anshuld@ti.com/
>
> Changes in v2:
> - Removed dependency to:
> https://lore.kernel.org/u-boot/20250522150941.563959-1-anshuld@ti.com/
> v1: https://lore.kernel.org/u-boot/20250602120054.1466951-1-anshuld@ti.com/
> ---
> Anshul Dalal (9):
> mach-k3: use minimal memory map for all K3
> mach-k3: use custom enable_cache
> arm: armv8: mmu: export mmu_setup
> arm: armv8: mmu: add mem_map_fix_dram_banks
> mach-k3: map all banks using mem_map_fix_dram_banks
> arm: armv8: mmu: add mmu_unmap_reserved_mem
> spl: split spl_board_fixups to arch/board specific
> mach-k3: add reserved memory fixups for next boot stage
> mach-k3: add carveouts for TFA and optee
>
> arch/arm/cpu/armv7m/cpu.c | 2 +-
> arch/arm/cpu/armv8/cache_v8.c | 50 ++++++++++++++++++++
> arch/arm/include/asm/armv8/mmu.h | 24 ++++++++++
> arch/arm/mach-k3/arm64/arm64-mmu.c | 35 +++++---------
> arch/arm/mach-k3/common.c | 55 ++++++++++++++++++++++
> arch/arm/mach-k3/include/mach/k3-ddr.h | 6 +++
> arch/arm/mach-rockchip/spl-boot-order.c | 2 +-
> arch/arm/mach-socfpga/spl_soc64.c | 2 +-
> board/beagle/beagley-ai/beagley-ai.c | 2 +-
> board/dhelectronics/dh_stm32mp1/board.c | 2 +-
> board/phytec/phycore_am62x/phycore-am62x.c | 2 +-
> board/phytec/phycore_am64x/phycore-am64x.c | 2 +-
> board/renesas/sparrowhawk/sparrowhawk.c | 2 +-
> board/starfive/visionfive2/spl.c | 2 +-
> board/ti/am62ax/evm.c | 2 +-
> board/ti/am62px/evm.c | 2 +-
> board/ti/am62x/evm.c | 2 +-
> board/ti/am64x/evm.c | 2 +-
> board/ti/j721e/evm.c | 2 +-
> board/ti/j721s2/evm.c | 2 +-
> board/ti/j722s/evm.c | 2 +-
> board/ti/j784s4/evm.c | 2 +-
> common/spl/spl.c | 12 +++--
> include/spl.h | 12 +++--
> 24 files changed, 182 insertions(+), 46 deletions(-)
>
More information about the U-Boot
mailing list