2 * BK Id: SCCS/s.gemini_prom.S 1.10 08/13/02 21:52:54 paulus
5 * arch/ppc/kernel/gemini_prom.S
7 * Not really prom support code (yet), but sort of anti-prom code. The current
8 * bootloader does a number of things it shouldn't and doesn't do things that it
9 * should. The stuff in here is mainly a hodge-podge collection of setup code
10 * to get the board up and running.
14 #include <linux/config.h>
15 #include <asm/processor.h>
17 #include <platforms/gemini.h>
18 #include <asm/ppc_asm.h>
20 #define HID0_ABE (1<<3)
23 * On 750's the MMU is on when Linux is booted, so we need to clear out the
24 * bootloader's BAT settings, make sure we're in supervisor state (gotcha!),
25 * and turn off the MMU.
29 _GLOBAL(gemini_prom_init)
31 /* Since the MMU's on, get stuff in rom space that we'll need */
32 lis r4,GEMINI_CPUSTAT@h
33 ori r4,r4,GEMINI_CPUSTAT@l
36 mr r24,r5 /* cpu # used later on */
39 li r3,MSR_PR /* ensure supervisor! */
40 ori r3,r3,MSR_IR|MSR_DR
45 /* zero out the bats now that the MMU is off */
67 /* the bootloader (as far as I'm currently aware) doesn't mess with page
68 tables, but since we're already here, might as well zap these, too */
81 /* The 750 book (and Mot/IBM support) says that this will "assist" snooping
82 when in SMP. Not sure yet whether this should stay or leave... */
87 #endif /* CONFIG_SMP */
90 /* apparently, SMon doesn't pay attention to HID0[SRST]. Disable the MMU and
91 branch to 0xfff00100 */
92 _GLOBAL(_gemini_reboot)
93 lis r5,GEMINI_BOOT_INIT@h
94 ori r5,r5,GEMINI_BOOT_INIT@l