summaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/global_data.h
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2016-03-04 01:09:47 +0100
committerTom Rini <trini@konsulko.com>2016-03-15 15:13:01 -0400
commit5e2ec773bb6c5acf22d8652112856e87cff86ea4 (patch)
treeae75a1cab47d1d59c91ccc5a5d2579c64dab47a1 /arch/arm/include/asm/global_data.h
parent9bb367a590feac21d674e4d2cee77702d4774819 (diff)
downloadtalos-obmc-uboot-5e2ec773bb6c5acf22d8652112856e87cff86ea4.tar.gz
talos-obmc-uboot-5e2ec773bb6c5acf22d8652112856e87cff86ea4.zip
arm64: Make full va map code more dynamic
The idea to generate our pages tables from an array of memory ranges is very sound. However, instead of hard coding the code to create up to 2 levels of 64k granule page tables, we really should just create normal 4k page tables that allow us to set caching attributes on 2M or 4k level later on. So this patch moves the full_va mapping code to 4k page size and makes it fully flexible to dynamically create as many levels as necessary for a map (including dynamic 1G/2M pages). It also adds support to dynamically split a large map into smaller ones when some code wants to set dcache attributes. With all this in place, there is very little reason to create your own page tables in board specific files. Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/arm/include/asm/global_data.h')
-rw-r--r--arch/arm/include/asm/global_data.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h
index dcfa0985b5..259daa100e 100644
--- a/arch/arm/include/asm/global_data.h
+++ b/arch/arm/include/asm/global_data.h
@@ -38,10 +38,11 @@ struct arch_global_data {
unsigned long long timer_reset_value;
#if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF))
unsigned long tlb_addr;
+ unsigned long tlb_size;
#if defined(CONFIG_SYS_FULL_VA)
- unsigned long pmd_addr[CONFIG_SYS_PTL1_ENTRIES];
+ unsigned long tlb_fillptr;
+ unsigned long tlb_emerg;
#endif
- unsigned long tlb_size;
#endif
#ifdef CONFIG_OMAP_COMMON
OpenPOWER on IntegriCloud