forked from Imagelibrary/rtems
bsp/qoriq: Add qoriq_tlb1_invalidate_all_by_ts()
Generalize qoriq_tlb1_ts_0_only() to qoriq_tlb1_invalidate_all_by_ts().
This commit is contained in:
@@ -183,8 +183,11 @@ _start:
|
||||
.Linitmore:
|
||||
mflr SAVED_LINK_REGISTER
|
||||
|
||||
/* Initial MMU setup */
|
||||
bl qoriq_tlb1_ts_0_only
|
||||
/* Invalidate all TS1 MMU entries */
|
||||
li r3, 1
|
||||
bl qoriq_tlb1_invalidate_all_by_ts
|
||||
|
||||
/* Add TS1 entry for the first 4GiB of RAM */
|
||||
li r3, SCRATCH_TLB
|
||||
li r4, FSL_EIS_MAS1_TS
|
||||
li r5, FSL_EIS_MAS2_I
|
||||
@@ -194,7 +197,7 @@ _start:
|
||||
li r9, 11
|
||||
bl qoriq_tlb1_write
|
||||
|
||||
/* MSR initialization */
|
||||
/* MSR initialization and use TS1 for address translation */
|
||||
LWI INITIAL_MSR, QORIQ_INITIAL_MSR
|
||||
ori r0, INITIAL_MSR, MSR_IS | MSR_DS
|
||||
mtmsr r0
|
||||
@@ -228,7 +231,6 @@ _start:
|
||||
mtlr SAVED_LINK_REGISTER
|
||||
blr
|
||||
|
||||
|
||||
#ifdef INITIALIZE_FPU
|
||||
/*
|
||||
* Write a value to the FPRs to initialize the hidden tag bits. See
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
.global qoriq_tlb1_write
|
||||
.global qoriq_tlb1_invalidate
|
||||
.global qoriq_tlb1_ts_0_only
|
||||
.global qoriq_tlb1_invalidate_all_by_ts
|
||||
|
||||
.section ".bsp_start_text", "ax"
|
||||
|
||||
@@ -70,19 +70,23 @@ qoriq_tlb1_invalidate:
|
||||
isync
|
||||
blr
|
||||
|
||||
qoriq_tlb1_ts_0_only:
|
||||
/* r3 = 0 for TS0, 1 for TS1 */
|
||||
qoriq_tlb1_invalidate_all_by_ts:
|
||||
mflr r12
|
||||
li r11, 16
|
||||
li r11, QORIQ_TLB1_ENTRY_COUNT
|
||||
mtctr r11
|
||||
li r11, 0
|
||||
mr r10, r3
|
||||
|
||||
2:
|
||||
rlwinm r0, r11, 16, 10, 15
|
||||
oris r0, r0, (FSL_EIS_MAS0_TLBSEL >> 16)
|
||||
mtspr FSL_EIS_MAS0, r0
|
||||
tlbre
|
||||
mfspr r0, FSL_EIS_MAS1
|
||||
andi. r0, r0, FSL_EIS_MAS1_TS
|
||||
beq 1f
|
||||
rlwinm r0, r0, 20, 31, 31
|
||||
cmpw r0, r10
|
||||
bne 1f
|
||||
mr r3, r11
|
||||
bl qoriq_tlb1_invalidate
|
||||
1:
|
||||
|
||||
Reference in New Issue
Block a user