2 * arch/ppc/platforms/gemini_prom.S
4 * Not really prom support code (yet), but sort of anti-prom code. The current
5 * bootloader does a number of things it shouldn't and doesn't do things that it
6 * should. The stuff in here is mainly a hodge-podge collection of setup code
7 * to get the board up and running.
11 #include <linux/config.h>
14 #include <platforms/gemini.h>
15 #include <asm/ppc_asm.h>
18 * On 750's the MMU is on when Linux is booted, so we need to clear out the
19 * bootloader's BAT settings, make sure we're in supervisor state (gotcha!),
20 * and turn off the MMU.
24 _GLOBAL(gemini_prom_init)
26 /* Since the MMU's on, get stuff in rom space that we'll need */
27 lis r4,GEMINI_CPUSTAT@h
28 ori r4,r4,GEMINI_CPUSTAT@l
31 mr r24,r5 /* cpu # used later on */
34 li r3,MSR_PR /* ensure supervisor! */
35 ori r3,r3,MSR_IR|MSR_DR
40 /* zero out the bats now that the MMU is off */
62 /* the bootloader (as far as I'm currently aware) doesn't mess with page
63 tables, but since we're already here, might as well zap these, too */
76 /* The 750 book (and Mot/IBM support) says that this will "assist" snooping
77 when in SMP. Not sure yet whether this should stay or leave... */
82 #endif /* CONFIG_SMP */
85 /* apparently, SMon doesn't pay attention to HID0[SRST]. Disable the MMU and
86 branch to 0xfff00100 */
87 _GLOBAL(_gemini_reboot)
88 lis r5,GEMINI_BOOT_INIT@h
89 ori r5,r5,GEMINI_BOOT_INIT@l