Rev 1789 | Rev 1792 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1789 | Rev 1790 | ||
---|---|---|---|
Line 24... | Line 24... | ||
24 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
25 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
26 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | # |
27 | # |
28 | 28 | ||
29 | #include <arch/boot/boot.h> |
- | |
30 | #include <arch/regdef.h> |
29 | #include <arch/regdef.h> |
31 | 30 | ||
32 | .register %g2, #scratch |
31 | .register %g2, #scratch |
33 | .register %g3, #scratch |
32 | .register %g3, #scratch |
34 | .register %g6, #scratch |
33 | .register %g6, #scratch |
Line 37... | Line 36... | ||
37 | .section K_TEXT_START, "ax" |
36 | .section K_TEXT_START, "ax" |
38 | 37 | ||
39 | /* |
38 | /* |
40 | * Here is where the kernel is passed control |
39 | * Here is where the kernel is passed control |
41 | * from the boot loader. |
40 | * from the boot loader. |
- | 41 | * |
|
- | 42 | * The registers are expected to be in this state: |
|
- | 43 | * %o0 bootinfo structure address |
|
- | 44 | * %o1 bootinfo structure size |
|
42 | */ |
45 | */ |
43 | 46 | ||
44 | .global kernel_image_start |
47 | .global kernel_image_start |
45 | kernel_image_start: |
48 | kernel_image_start: |
46 | flushw ! flush all but the active register window |
49 | flushw ! flush all but the active register window |
47 | 50 | ||
- | 51 | /* |
|
- | 52 | * Disable interrupts and disable 32-bit address masking. |
|
- | 53 | */ |
|
48 | rdpr %pstate, %l0 |
54 | rdpr %pstate, %l0 |
49 | and %l0, ~PSTATE_AM_BIT, %l0 |
55 | and %l0, ~(PSTATE_AM_BIT|PSTATE_IE_BIT), %l0 |
50 | wrpr %l0, 0, %pstate |
56 | wrpr %l0, 0, %pstate |
51 | 57 | ||
- | 58 | /* |
|
- | 59 | * Copy the bootinfo structure passed from the boot loader |
|
52 | set ofw_cif, %l0 |
60 | * to the kernel bootinfo structure. |
53 | 61 | */ |
|
54 | call ofw_init |
62 | mov %o1, %o2 |
55 | stx %o4, [%l0] |
63 | mov %o0, %o1 |
56 | - | ||
- | 64 | set bootinfo, %o0 |
|
57 | call ofw_init_memmap |
65 | call memcpy |
58 | nop |
66 | nop |
59 | 67 | ||
60 | wrpr %r0, 0, %pil |
68 | wrpr %r0, 0, %pil |
61 | 69 | ||
62 | call main_bsp |
70 | call main_bsp |