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.
9 #include <linux/config.h>
12 #include <platforms/gemini.h>
13 #include <asm/ppc_asm.h>
16 * On 750's the MMU is on when Linux is booted, so we need to clear out the
17 * bootloader's BAT settings, make sure we're in supervisor state (gotcha!),
18 * and turn off the MMU.
22 _GLOBAL(gemini_prom_init)
24 /* Since the MMU's on, get stuff in rom space that we'll need */
25 lis r4,GEMINI_CPUSTAT@h
26 ori r4,r4,GEMINI_CPUSTAT@l
29 mr r24,r5 /* cpu # used later on */
32 li r3,MSR_PR /* ensure supervisor! */
33 ori r3,r3,MSR_IR|MSR_DR
38 /* zero out the bats now that the MMU is off */
60 /* the bootloader (as far as I'm currently aware) doesn't mess with page
61 tables, but since we're already here, might as well zap these, too */
74 /* The 750 book (and Mot/IBM support) says that this will "assist" snooping
75 when in SMP. Not sure yet whether this should stay or leave... */
80 #endif /* CONFIG_SMP */
83 /* apparently, SMon doesn't pay attention to HID0[SRST]. Disable the MMU and
84 branch to 0xfff00100 */
85 _GLOBAL(_gemini_reboot)
86 lis r5,GEMINI_BOOT_INIT@h
87 ori r5,r5,GEMINI_BOOT_INIT@l