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>
This commit is contained in:
@@ -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)
|
||||
|
Reference in New Issue
Block a user