diff options
Diffstat (limited to 'arch/powerpc/kernel/head_32.S')
-rw-r--r-- | arch/powerpc/kernel/head_32.S | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S index ccdf94731e30..fdd34dbd8797 100644 --- a/arch/powerpc/kernel/head_32.S +++ b/arch/powerpc/kernel/head_32.S | |||
@@ -153,6 +153,9 @@ __after_mmu_off: | |||
153 | bl flush_tlbs | 153 | bl flush_tlbs |
154 | 154 | ||
155 | bl initial_bats | 155 | bl initial_bats |
156 | #if !defined(CONFIG_APUS) && defined(CONFIG_BOOTX_TEXT) | ||
157 | bl setup_disp_bat | ||
158 | #endif | ||
156 | 159 | ||
157 | /* | 160 | /* |
158 | * Call setup_cpu for CPU 0 and initialize 6xx Idle | 161 | * Call setup_cpu for CPU 0 and initialize 6xx Idle |
@@ -1306,6 +1309,32 @@ initial_bats: | |||
1306 | blr | 1309 | blr |
1307 | 1310 | ||
1308 | 1311 | ||
1312 | #if !defined(CONFIG_APUS) && defined(CONFIG_BOOTX_TEXT) | ||
1313 | setup_disp_bat: | ||
1314 | /* | ||
1315 | * setup the display bat prepared for us in prom.c | ||
1316 | */ | ||
1317 | mflr r8 | ||
1318 | bl reloc_offset | ||
1319 | mtlr r8 | ||
1320 | addis r8,r3,disp_BAT@ha | ||
1321 | addi r8,r8,disp_BAT@l | ||
1322 | cmpwi cr0,r8,0 | ||
1323 | beqlr | ||
1324 | lwz r11,0(r8) | ||
1325 | lwz r8,4(r8) | ||
1326 | mfspr r9,SPRN_PVR | ||
1327 | rlwinm r9,r9,16,16,31 /* r9 = 1 for 601, 4 for 604 */ | ||
1328 | cmpwi 0,r9,1 | ||
1329 | beq 1f | ||
1330 | mtspr SPRN_DBAT3L,r8 | ||
1331 | mtspr SPRN_DBAT3U,r11 | ||
1332 | blr | ||
1333 | 1: mtspr SPRN_IBAT3L,r8 | ||
1334 | mtspr SPRN_IBAT3U,r11 | ||
1335 | blr | ||
1336 | #endif /* !defined(CONFIG_APUS) && defined(CONFIG_BOOTX_TEXT) */ | ||
1337 | |||
1309 | #ifdef CONFIG_8260 | 1338 | #ifdef CONFIG_8260 |
1310 | /* Jump into the system reset for the rom. | 1339 | /* Jump into the system reset for the rom. |
1311 | * We first disable the MMU, and then jump to the ROM reset address. | 1340 | * We first disable the MMU, and then jump to the ROM reset address. |