u-boot-brain/arch/arm/mach-tegra
Stephen Warren 376cb1a453 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>
2015-11-10 18:04:19 +01:00
..
tegra20 of: clean up OF_CONTROL ifdef conditionals 2015-08-18 13:46:05 -04:00
tegra30 of: clean up OF_CONTROL ifdef conditionals 2015-08-18 13:46:05 -04:00
tegra114 ARM: tegra114: Clear IDDQ when enabling PLLC 2015-09-16 16:11:31 -07:00
tegra124 ARM: tegra124: Clear IDDQ when enabling PLLC 2015-09-16 16:11:31 -07:00
tegra210 ARM: tegra: clk_m is the architected timer source clock 2015-09-16 16:10:22 -07:00
ap.c ARM: tegra: move VPR configuration to a later stage 2015-08-06 10:50:03 -07:00
arm64-mmu.c ARM: tegra: add custom MMU setup on ARMv8 2015-11-10 18:04:19 +01:00
board.c ARM: tegra: query_sdram_size() cleanup 2015-08-13 13:06:04 -07:00
board2.c ARM: tegra: represent RAM in 1 or 2 banks 2015-08-13 13:06:04 -07:00
cache.c ARM: Tegra210: Add support to common Tegra source/config files 2015-07-28 10:30:20 -07:00
clock.c ARM: tegra: Implement clk_m 2015-09-16 16:10:22 -07:00
cmd_enterrcm.c ARM: tegra: collect SoC sources into mach-tegra 2015-02-21 08:23:51 -05:00
cpu.c Tegra: PLL: use per-SoC pllinfo table instead of PLL_DIVM/N/P, etc. 2015-08-05 15:22:51 -07:00
cpu.h ARM: Tegra210: Add support to common Tegra source/config files 2015-07-28 10:30:20 -07:00
emc.c ARM: tegra: move NVIDIA common files to arch/arm/mach-tegra 2015-05-13 09:46:19 -07:00
emc.h ARM: tegra: move NVIDIA common files to arch/arm/mach-tegra 2015-05-13 09:46:19 -07:00
gpu.c ARM: tegra: enable GPU DT node when appropriate 2015-08-06 10:50:03 -07:00
Kconfig of: flip CONFIG_SPL_DISABLE_OF_CONTROL into CONFIG_SPL_OF_CONTROL 2015-08-18 13:46:04 -04:00
lowlevel_init.S ARM: Tegra210: Add support to common Tegra source/config files 2015-07-28 10:30:20 -07:00
Makefile ARM: tegra: add custom MMU setup on ARMv8 2015-11-10 18:04:19 +01:00
pinmux-common.c ARM: tegra: Build warning fixes for 64-bit 2015-07-27 15:54:18 -07:00
powergate.c tegra: Introduce SRAM repair on tegra124 2015-06-09 09:56:14 -07:00
psci.S tegra: Set CNTFRQ for secondary CPUs 2015-05-13 09:24:16 -07:00
pwm.c tegra: pwm: Allow the clock rate to be left as is 2015-05-13 09:24:07 -07:00
spl.c ARM: tegra: collect SoC sources into mach-tegra 2015-02-21 08:23:51 -05:00
sys_info.c ARM: tegra: collect SoC sources into mach-tegra 2015-02-21 08:23:51 -05:00
xusb-padctl.c ARM: tegra: collect SoC sources into mach-tegra 2015-02-21 08:23:51 -05:00