Rev 1887 | Rev 1900 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1887 | Rev 1899 | ||
---|---|---|---|
Line 41... | Line 41... | ||
41 | /* |
41 | /* |
42 | * Here is where the kernel is passed control |
42 | * Here is where the kernel is passed control |
43 | * from the boot loader. |
43 | * from the boot loader. |
44 | * |
44 | * |
45 | * The registers are expected to be in this state: |
45 | * The registers are expected to be in this state: |
- | 46 | * - %o0 non-zero for the bootstrup processor, zero for application/secondary processors |
|
46 | * - %o0 bootinfo structure address |
47 | * - %o1 bootinfo structure address |
47 | * - %o1 bootinfo structure size |
48 | * - %o2 bootinfo structure size |
48 | * |
49 | * |
49 | * Moreover, we depend on boot having established the |
50 | * Moreover, we depend on boot having established the |
50 | * following environment: |
51 | * following environment: |
51 | * - TLBs are on |
52 | * - TLBs are on |
52 | * - identity mapping for the kernel image |
53 | * - identity mapping for the kernel image |
53 | * - identity mapping for memory stack |
54 | * - identity mapping for memory stack |
54 | */ |
55 | */ |
55 | 56 | ||
56 | .global kernel_image_start |
57 | .global kernel_image_start |
57 | kernel_image_start: |
58 | kernel_image_start: |
- | 59 | brz %o0, kernel_image_start ! block secondary processors |
|
- | 60 | nop |
|
58 | 61 | ||
59 | /* |
62 | /* |
60 | * Setup basic runtime environment. |
63 | * Setup basic runtime environment. |
61 | */ |
64 | */ |
62 | 65 | ||
Line 70... | Line 73... | ||
70 | 73 | ||
71 | /* |
74 | /* |
72 | * Copy the bootinfo structure passed from the boot loader |
75 | * Copy the bootinfo structure passed from the boot loader |
73 | * to the kernel bootinfo structure. |
76 | * to the kernel bootinfo structure. |
74 | */ |
77 | */ |
75 | mov %o1, %o2 |
- | |
76 | mov %o0, %o1 |
- | |
77 | sethi %hi(bootinfo), %o0 |
78 | sethi %hi(bootinfo), %o0 |
78 | call memcpy |
79 | call memcpy |
79 | or %o0, %lo(bootinfo), %o0 |
80 | or %o0, %lo(bootinfo), %o0 |
80 | 81 | ||
81 | /* |
82 | /* |