aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc/platforms/gemini_prom.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ppc/platforms/gemini_prom.S')
-rw-r--r--arch/ppc/platforms/gemini_prom.S90
1 files changed, 0 insertions, 90 deletions
diff --git a/arch/ppc/platforms/gemini_prom.S b/arch/ppc/platforms/gemini_prom.S
deleted file mode 100644
index e8c84d24f01f..000000000000
--- a/arch/ppc/platforms/gemini_prom.S
+++ /dev/null
@@ -1,90 +0,0 @@
1/*
2 * Not really prom support code (yet), but sort of anti-prom code. The current
3 * bootloader does a number of things it shouldn't and doesn't do things that it
4 * should. The stuff in here is mainly a hodge-podge collection of setup code
5 * to get the board up and running.
6 * ---Dan
7 */
8
9#include <asm/reg.h>
10#include <asm/page.h>
11#include <platforms/gemini.h>
12#include <asm/ppc_asm.h>
13
14/*
15 * On 750's the MMU is on when Linux is booted, so we need to clear out the
16 * bootloader's BAT settings, make sure we're in supervisor state (gotcha!),
17 * and turn off the MMU.
18 *
19 */
20
21_GLOBAL(gemini_prom_init)
22#ifdef CONFIG_SMP
23 /* Since the MMU's on, get stuff in rom space that we'll need */
24 lis r4,GEMINI_CPUSTAT@h
25 ori r4,r4,GEMINI_CPUSTAT@l
26 lbz r5,0(r4)
27 andi. r5,r5,3
28 mr r24,r5 /* cpu # used later on */
29#endif
30 mfmsr r4
31 li r3,MSR_PR /* ensure supervisor! */
32 ori r3,r3,MSR_IR|MSR_DR
33 andc r4,r4,r3
34 mtmsr r4
35 isync
36#if 0
37 /* zero out the bats now that the MMU is off */
38prom_no_mmu:
39 li r3,0
40 mtspr SPRN_IBAT0U,r3
41 mtspr SPRN_IBAT0L,r3
42 mtspr SPRN_IBAT1U,r3
43 mtspr SPRN_IBAT1L,r3
44 mtspr SPRN_IBAT2U,r3
45 mtspr SPRN_IBAT2L,r3
46 mtspr SPRN_IBAT3U,r3
47 mtspr SPRN_IBAT3L,r3
48
49 mtspr SPRN_DBAT0U,r3
50 mtspr SPRN_DBAT0L,r3
51 mtspr SPRN_DBAT1U,r3
52 mtspr SPRN_DBAT1L,r3
53 mtspr SPRN_DBAT2U,r3
54 mtspr SPRN_DBAT2L,r3
55 mtspr SPRN_DBAT3U,r3
56 mtspr SPRN_DBAT3L,r3
57#endif
58
59 /* the bootloader (as far as I'm currently aware) doesn't mess with page
60 tables, but since we're already here, might as well zap these, too */
61 li r4,0
62 mtspr SPRN_SDR1,r4
63
64 li r4,16
65 mtctr r4
66 li r3,0
67 li r4,0
683: mtsrin r3,r4
69 addi r3,r3,1
70 bdnz 3b
71
72#ifdef CONFIG_SMP
73 /* The 750 book (and Mot/IBM support) says that this will "assist" snooping
74 when in SMP. Not sure yet whether this should stay or leave... */
75 mfspr r4,SPRN_HID0
76 ori r4,r4,HID0_ABE
77 mtspr SPRN_HID0,r4
78 sync
79#endif /* CONFIG_SMP */
80 blr
81
82/* apparently, SMon doesn't pay attention to HID0[SRST]. Disable the MMU and
83 branch to 0xfff00100 */
84_GLOBAL(_gemini_reboot)
85 lis r5,GEMINI_BOOT_INIT@h
86 ori r5,r5,GEMINI_BOOT_INIT@l
87 li r6,MSR_IP
88 mtspr SPRN_SRR0,r5
89 mtspr SPRN_SRR1,r6
90 rfi