Changes in kernel/arch/sparc64/src/sun4v/start.S [c92af69b:4872160] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/src/sun4v/start.S
rc92af69b r4872160 93 93 * 94 94 * The registers are expected to be in this state: 95 * - %o0 starting address of physical memory 95 * - %o0 bootinfo structure address (BSP only) 96 * - %o1 starting address of physical memory 96 97 * + bootstrap processor flag 97 98 * bits 63...1: physical memory starting address / 2 98 99 * bit 0: non-zero on BSP processor, zero on AP processors 99 * - %o1 bootinfo structure address (BSP only)100 *101 100 * 102 101 * Moreover, we depend on boot having established the following environment: … … 108 107 kernel_image_start: 109 108 mov BSP_FLAG, %l0 110 and %o 0, %l0, %l7 ! l7 <= bootstrap processor?111 andn %o 0, %l0, %l6 ! l6 <= start of physical memory112 or %o 1, %g0, %l1109 and %o1, %l0, %l7 ! l7 <= bootstrap processor? 110 andn %o1, %l0, %l6 ! l6 <= start of physical memory 111 or %o0, %g0, %l0 113 112 114 113 ! Get bits (PHYSMEM_ADDR_SIZE - 1):13 of physmem_base. … … 155 154 mov 0, %o5 156 155 ta 0xff 156 nop 157 157 158 158 /* … … 218 218 ! on APs skip executing the following code 219 219 cmp %l7, 0 220 be %xcc,1f220 be 1f 221 221 nop 222 222 … … 246 246 sub %sp, STACK_BIAS, %sp 247 247 248 /* 249 * Call arch_pre_main(bootinfo) 250 */ 248 or %l0, %g0, %o0 251 249 call arch_pre_main 252 or %l1, %g0, %o0250 nop 253 251 254 /*255 * Create the first stack frame.256 */257 save %sp, -(STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE), %sp258 flushw259 add %g0, -STACK_BIAS, %fp260 261 252 call main_bsp 262 253 nop … … 265 256 266 257 0: 267 ba,a %xcc, 0b 258 ba 0b 259 nop 268 260 269 261 1: … … 277 269 */ 278 270 279 mov 1, %o0! MMU enable flag280 set 281 mov 282 ta 0x80! call HV271 mov 1, %o0 ! MMU enable flag 272 set mmu_enabled, %o1 273 mov MMU_ENABLE, %o5 ! MMU enable HV call 274 ta 0x80 ! call HV 283 275 284 276 mmu_enabled: … … 293 285 ldx [%g1], %o6 294 286 295 /*296 * Create the first stack frame.297 */298 save %sp, -(STACK_WINDWO_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE), %sp299 flushw300 add %g0, -STACK_BIAS, %fp301 302 287 call main_ap 303 288 nop … … 306 291 /* Not reached. */ 307 292 0: 308 ba,a %xcc, 0b 293 ba 0b 294 nop 309 295 310 296 .align 8 … … 324 310 before_ap_boots: 325 311 setx 0x80400000, %g0, %o0 326 ba,a %xcc, kernel_image_start 312 ba kernel_image_start 313 nop 327 314 328 315 .section K_DATA_START, "aw", @progbits
Note:
See TracChangeset
for help on using the changeset viewer.