|
@@ -1124,9 +1124,8 @@ mmu_off:
|
|
RFI
|
|
RFI
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Use the first pair of BAT registers to map the 1st 16MB
|
|
|
|
- * of RAM to PAGE_OFFSET. From this point on we can't safely
|
|
|
|
- * call OF any more.
|
|
|
|
|
|
+ * On 601, we use 3 BATs to map up to 24M of RAM at _PAGE_OFFSET
|
|
|
|
+ * (we keep one for debugging) and on others, we use one 256M BAT.
|
|
*/
|
|
*/
|
|
initial_bats:
|
|
initial_bats:
|
|
lis r11,PAGE_OFFSET@h
|
|
lis r11,PAGE_OFFSET@h
|
|
@@ -1136,12 +1135,16 @@ initial_bats:
|
|
bne 4f
|
|
bne 4f
|
|
ori r11,r11,4 /* set up BAT registers for 601 */
|
|
ori r11,r11,4 /* set up BAT registers for 601 */
|
|
li r8,0x7f /* valid, block length = 8MB */
|
|
li r8,0x7f /* valid, block length = 8MB */
|
|
- oris r9,r11,0x800000@h /* set up BAT reg for 2nd 8M */
|
|
|
|
- oris r10,r8,0x800000@h /* set up BAT reg for 2nd 8M */
|
|
|
|
mtspr SPRN_IBAT0U,r11 /* N.B. 601 has valid bit in */
|
|
mtspr SPRN_IBAT0U,r11 /* N.B. 601 has valid bit in */
|
|
mtspr SPRN_IBAT0L,r8 /* lower BAT register */
|
|
mtspr SPRN_IBAT0L,r8 /* lower BAT register */
|
|
- mtspr SPRN_IBAT1U,r9
|
|
|
|
- mtspr SPRN_IBAT1L,r10
|
|
|
|
|
|
+ addis r11,r11,0x800000@h
|
|
|
|
+ addis r8,r8,0x800000@h
|
|
|
|
+ mtspr SPRN_IBAT1U,r11
|
|
|
|
+ mtspr SPRN_IBAT1L,r8
|
|
|
|
+ addis r11,r11,0x800000@h
|
|
|
|
+ addis r8,r8,0x800000@h
|
|
|
|
+ mtspr SPRN_IBAT2U,r11
|
|
|
|
+ mtspr SPRN_IBAT2L,r8
|
|
isync
|
|
isync
|
|
blr
|
|
blr
|
|
|
|
|