summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra/Makefile
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2015-10-05 12:09:01 -0600
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2015-11-10 18:04:19 +0100
commit376cb1a4531538a031f3875f0aab21f31f8f8c90 (patch)
tree83572915e7c471bbcb40c5e9400e79ab4e949dd7 /arch/arm/mach-tegra/Makefile
parent3c6af3bad4f644e050f67146f4a6e177d5e39e76 (diff)
downloadtalos-obmc-uboot-376cb1a4531538a031f3875f0aab21f31f8f8c90.tar.gz
talos-obmc-uboot-376cb1a4531538a031f3875f0aab21f31f8f8c90.zip
ARM: tegra: add custom MMU setup on ARMv8
This sets up a fine-grained page table, which is a requirement for noncached_init() to operate correctly. MMU setup code currently exists in a number of places: - A version in the core ARMv8 support code that sets up page tables that use very large block sizes that CONFIG_SYS_NONCACHED_MEMORY doesn't support. - Enhanced versions for fsl-lsch3 and zynmq that set up finer grained page tables. Ideally, rather than duplicating the MMU setup code yet again this patch would instead consolidate all the different routines into the core ARMv8 code so that it supported all use-cases. However, this will require significant effort since there appear to be a number of discrepancies[1] between different versions of the code, and between the defines/values by some copies of the MMU setup code use and the architectural MMU documentation. Some reverse engineering will be required to determine the intent of the current code. [1] For example, in the core ARMv8 MMU setup code, three defines named TCR_EL[123]_IPS_BITS exist, but only one of them sets the IPS field and the others set a different field (T1SZ) in the page tables. As far as I can tell so far, there should be no need to set different values per exception level nor to modify the T1SZ field at all, since TTBR1 shouldn't be enabled anyway. Another example is inconsistent values for *_VA_BITS between the current core ARMv8 MMU setup code and the various SoC- specific MMU setup code. Another example is that asm/armv8/mmu.h's value for SECTION_SHIFT doesn't match asm/system.h's MMU_SECTION_SHIFT; research is needed to determine which code relies on which of those values and why, and whether fixing the incorrect value will cause any regression. Signed-off-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/Makefile')
-rw-r--r--arch/arm/mach-tegra/Makefile1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile
index 75924ad848..98431a91f8 100644
--- a/arch/arm/mach-tegra/Makefile
+++ b/arch/arm/mach-tegra/Makefile
@@ -15,6 +15,7 @@ obj-$(CONFIG_CMD_ENTERRCM) += cmd_enterrcm.o
obj-$(CONFIG_PWM_TEGRA) += pwm.o
endif
+obj-$(CONFIG_ARM64) += arm64-mmu.o
obj-y += ap.o
obj-y += board.o board2.o
obj-y += cache.o
OpenPOWER on IntegriCloud