]> git.ipfire.org Git - thirdparty/u-boot.git/commit
mach-k3: add runtime memory carveouts for MMU table
authorAnshul Dalal <anshuld@ti.com>
Wed, 18 Jun 2025 12:42:08 +0000 (18:12 +0530)
committerTom Rini <trini@konsulko.com>
Fri, 27 Jun 2025 16:02:18 +0000 (10:02 -0600)
commit4628730ee6c40864dbe475e4ca91e47a92f371fe
treee82fd3f575e79cce3a65f1e361a8d84be86a4674
parent661bb0c7e0b19ee6cc7d9d25d3be85b479d99615
mach-k3: add runtime memory carveouts for MMU table

In u-boot we only provide a single MMU table for all k3 platforms,
this does not scale for devices with reserved memory outside the range
0x9e780000 - 0xa0000000 or for devices with < 2GiB of memory (eg
am62-SIP with 512MiB of RAM).

To properly configure the MMU on various k3 platforms, the
reserved-memory regions need to be queried at runtime from the
device-tree and the MMU table should be updated accordingly.

This patch adds the required fixups to the MMU table (during proper
U-boot stage) by marking the reserved regions as non cacheable and
keeping the remaining area as cacheable.

For the A-core SPL, the 128MiB region starting from SPL_TEXT_BASE
is marked as cacheable i.e 0x80080000 to 0x88080000.

The 128MiB size is chosen to allow for future use cases such as falcon
boot from the A-Core SPL which would require loading kernel image from
the SPL stage. This change also ensures the reserved memory regions that
all exist past 0x88080000 are non cacheable preventing speculative
accesses to those addresses.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
arch/arm/mach-k3/arm64/arm64-mmu.c
arch/arm/mach-k3/include/mach/k3-ddr.h
board/beagle/beagleplay/beagleplay.c
board/ti/common/k3-ddr.c