Skip to content
Snippets Groups Projects
Commit 724cdffc authored by Gabe Black's avatar Gabe Black Committed by Albert ARIBAUD
Browse files

arm: Keep track of the tlb size as well as its location


It may be necessary to know where the TLB area ends as well as where it
starts. This allows board code to complete a secure memory erase without
destroying the page tables.

Signed-off-by: default avatarGabe Black <gabeblack@google.com>
Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
parent 44df5e8d
No related branches found
No related tags found
No related merge requests found
......@@ -73,6 +73,7 @@ typedef struct global_data {
unsigned long reloc_off;
#if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF))
unsigned long tlb_addr;
unsigned long tlb_size;
#endif
const void *fdt_blob; /* Our device tree, NULL if none */
void **jt; /* jump table */
......
......@@ -348,13 +348,14 @@ void board_init_f(ulong bootflag)
#if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF))
/* reserve TLB table */
addr -= (4096 * 4);
gd->tlb_size = 4096 * 4;
addr -= gd->tlb_size;
/* round down to next 64 kB limit */
addr &= ~(0x10000 - 1);
gd->tlb_addr = addr;
debug("TLB table at: %08lx\n", addr);
debug("TLB table from %08lx to %08lx\n", addr, addr + gd->tlb_size);
#endif
/* round down to next 4 kB limit */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment