[U-Boot] [PATCH 0/9] arm64: Unify MMU code
Alexander Graf
agraf at suse.de
Mon Feb 22 02:57:03 CET 2016
Howdy,
Currently on arm64 there is a big pile of mess when it comes to MMU
support and page tables. Each board does its own little thing and the
generic code is pretty dumb and nobody actually uses it.
This patch set tries to clean that up. After this series is applied,
all boards except for the FSL Layerscape ones are converted to the
new generic page table logic and have icache+dcache enabled.
The new code always uses 4k page size. It dynamically allocates 1G or
2M pages for ranges that fit. When a dcache attribute request comes in
that requires a smaller granularity than our previous allocation could
fulfill, pages get automatically split.
I have tested and verified the code works on HiKey (bare metal),
vexpress64 (Foundation Model) and zynqmp (QEMU). The TX1 target is
untested, but given the simplicity of the maps I doubt it'll break.
ThunderX in theory should also work, but I haven't tested it. I would
be very happy if people with access to those system could give the patch
set a try.
With this we're a big step closer to a good base line for EFI payload
support, since we can now just require that all boards always have dcache
enabled.
I would also be incredibly happy if some Freescale people could look
at their MMU code and try to unify it into the now cleaned up generic
code. I don't think we're far off here.
Alex
Alexander Graf (9):
thunderx: Calculate TCR dynamically
arm64: Make full va map code more dynamic
zymqmp: Replace home grown mmu code with generic table approach
tegra: Replace home grown mmu code with generic table approach
vexpress64: Add MMU tables
dwmmc: Increase retry timeout
hikey: Add MMU tables
arm64: Remove non-full-va map code
arm64: Only allow dcache disabled in SPL builds
arch/arm/cpu/armv8/cache_v8.c | 444 ++++++++++++++++++-------
arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 29 +-
arch/arm/cpu/armv8/zynqmp/cpu.c | 169 ----------
arch/arm/include/asm/arch-fsl-layerscape/cpu.h | 94 +++---
arch/arm/include/asm/armv8/mmu.h | 120 ++-----
arch/arm/include/asm/global_data.h | 6 +-
arch/arm/include/asm/system.h | 7 +-
arch/arm/mach-tegra/Makefile | 1 -
arch/arm/mach-tegra/arm64-mmu.c | 131 --------
doc/README.arm64 | 20 --
drivers/mmc/dw_mmc.c | 2 +-
include/configs/hikey.h | 18 +-
include/configs/tegra210-common.h | 15 +
include/configs/thunderx_88xx.h | 31 +-
include/configs/vexpress_aemv8a.h | 19 +-
include/configs/xilinx_zynqmp.h | 43 +++
16 files changed, 526 insertions(+), 623 deletions(-)
delete mode 100644 arch/arm/mach-tegra/arm64-mmu.c
--
1.8.5.6
More information about the U-Boot
mailing list