diff options
author | Michal Simek <monstr@monstr.eu> | 2011-04-04 15:46:03 +0200 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2012-03-23 09:28:18 +0100 |
commit | 1451d1d88b9aa32ac9ee54180239e9b34b6f9e86 (patch) | |
tree | 417fbc899c6469af1c0b2cf2dc1a99f050cf48fd /arch/microblaze/kernel/hw_exception_handler.S | |
parent | 95b0f9ea66661681f6ae081ea28416744d622c07 (diff) | |
download | linux-1451d1d88b9aa32ac9ee54180239e9b34b6f9e86.tar.gz linux-1451d1d88b9aa32ac9ee54180239e9b34b6f9e86.tar.bz2 linux-1451d1d88b9aa32ac9ee54180239e9b34b6f9e86.zip |
microblaze: Introduce TLB skip size
TLB skip size direct how many TLBs is skipped.
Currently TLB0 and TLB1 are used for Linux kernel mapping
that's why their are skipped.
Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/kernel/hw_exception_handler.S')
-rw-r--r-- | arch/microblaze/kernel/hw_exception_handler.S | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/microblaze/kernel/hw_exception_handler.S b/arch/microblaze/kernel/hw_exception_handler.S index e62be8379604..b7249f4215a2 100644 --- a/arch/microblaze/kernel/hw_exception_handler.S +++ b/arch/microblaze/kernel/hw_exception_handler.S @@ -821,18 +821,19 @@ ex_handler_done: * A common place to load the TLB. */ tlb_index: - .long 1 /* MS: storing last used tlb index */ + /* MS: storing last used tlb index */ + .long (MICROBLAZE_TLB_SKIP - 1) finish_tlb_load: /* MS: load the last used TLB index. */ lwi r5, r0, TOPHYS(tlb_index) addik r5, r5, 1 /* MS: inc tlb_index -> use next one */ /* MS: FIXME this is potential fault, because this is mask not count */ - andi r5, r5, (MICROBLAZE_TLB_SIZE-1) + andi r5, r5, MICROBLAZE_TLB_SIZE - 1 ori r6, r0, 1 cmp r31, r5, r6 blti r31, ex12 - addik r5, r6, 1 + addik r5, r6, MICROBLAZE_TLB_SKIP - 1 ex12: /* MS: save back current TLB index */ swi r5, r0, TOPHYS(tlb_index) |