2 BootMii - a Free Software replacement for the Nintendo/BroadOn bootloader.
5 Copyright (C) 2008 Segher Boessenkool <segher@kernel.crashing.org>
7 # This code is licensed to you under the terms of the GNU GPL, version 2;
8 # see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
47 .section .realmode,"ax",@progbits
50 .globl _realmode_vector
54 // bus checkstops off, sleep modes off,
55 // caches off, caches invalidate,
56 // store gathering off, enable data cache
57 // flush assist, enable branch target cache,
58 // enable branch history table
59 lis 3,0x0011 ; ori 3,3,0x0c64 ; mtspr 1008,3 ; isync
61 // MSR = 00002000 (FP on)
64 // HID0 |= 0000c000 (caches on)
65 ori 3,3,0xc000 ; mtspr 1008,3 ; isync
69 mtspr 528,0 ; mtspr 530,0 ; mtspr 532,0 ; mtspr 534,0 // IBATU 0..3
70 mtspr 536,0 ; mtspr 538,0 ; mtspr 540,0 ; mtspr 542,0 // DBATU 0..3
71 mtspr 560,0 ; mtspr 562,0 ; mtspr 564,0 ; mtspr 566,0 // IBATU 4..7
72 mtspr 568,0 ; mtspr 570,0 ; mtspr 572,0 ; mtspr 574,0 // DBATU 4..7
77 mtsr 0,0 ; mtsr 1,0 ; mtsr 2,0 ; mtsr 3,0
78 mtsr 4,0 ; mtsr 5,0 ; mtsr 6,0 ; mtsr 7,0
79 mtsr 8,0 ; mtsr 9,0 ; mtsr 10,0 ; mtsr 11,0
80 mtsr 12,0 ; mtsr 13,0 ; mtsr 14,0 ; mtsr 15,0
83 // set [DI]BAT0 for 256MB@80000000,
84 // real 00000000, WIMG=0000, R/W
85 li 3,2 ; lis 4,0x8000 ; ori 4,4,0x1fff
86 mtspr IBAT0L,3 ; mtspr IBAT0U,4 ; mtspr DBAT0L,3 ; mtspr DBAT0U,4 ; isync
88 // set [DI]BAT4 for 256MB@90000000,
89 // real 10000000, WIMG=0000, R/W
90 addis 3,3,0x1000 ; addis 4,4,0x1000
91 mtspr IBAT4L,3 ; mtspr IBAT4U,4 ; mtspr DBAT4L,3 ; mtspr DBAT4U,4 ; isync
93 // set DBAT1 for 256MB@c0000000,
94 // real 00000000, WIMG=0101, R/W
95 li 3,0x2a ; lis 4,0xc000 ; ori 4,4,0x1fff
96 mtspr DBAT1L,3 ; mtspr DBAT1U,4 ; isync
98 // set DBAT5 for 256MB@d0000000,
99 // real 10000000, WIMG=0101, R/W
100 addis 3,3,0x1000 ; addis 4,4,0x1000
101 mtspr DBAT5L,3 ; mtspr DBAT5U,4 ; isync
103 // enable [DI]BAT4-7 in HID4
107 // set MSR[DR:IR] = 11, jump to _start
108 lis 3,_start@h ; ori 3,3,_start@l ; mtsrr0 3
110 mfmsr 3 ; ori 3,3,0x30 ; mtsrr1 3