43,7 → 43,7 |
* from the boot loader. |
* |
* The registers are expected to be in this state: |
* - %o0 non-zero for the bootstrup processor, zero for application/secondary processors |
* - %o0 non-zero for the bootstrap processor, zero for application/secondary processors |
* - %o1 bootinfo structure address |
* - %o2 bootinfo structure size |
* |
56,8 → 56,7 |
|
.global kernel_image_start |
kernel_image_start: |
brz %o0, kernel_image_start ! block secondary processors |
nop |
mov %o0, %l7 |
|
/* |
* Setup basic runtime environment. |
75,9 → 74,11 |
* Copy the bootinfo structure passed from the boot loader |
* to the kernel bootinfo structure. |
*/ |
brz %l7, 0f ! skip if you are not the bootstrap CPU |
sethi %hi(bootinfo), %o0 |
call memcpy |
or %o0, %lo(bootinfo), %o0 |
0: |
|
/* |
* Switch to kernel trap table. |
225,6 → 226,8 |
! set TL back to 0 |
wrpr %g0, 0, %tl |
|
brz %l7, 2f ! skip if you are not the bootstrap CPU |
|
call arch_pre_main |
nop |
|