head.S (f615136c06a791364f5afa8b8ba965315a6440f1) | head.S (49b424fedaf88d0fa9913082b8c1ccd012a8a972) |
---|---|
1/* 2 * arch/xtensa/kernel/head.S 3 * 4 * Xtensa Processor startup code. 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file "COPYING" in the main directory of this archive 8 * for more details. --- 89 unchanged lines hidden (view full) --- 98#endif 99 .end no-absolute-literals 100 101 l32r a0, .Lstartup 102 jx a0 103 104ENDPROC(_start) 105 | 1/* 2 * arch/xtensa/kernel/head.S 3 * 4 * Xtensa Processor startup code. 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file "COPYING" in the main directory of this archive 8 * for more details. --- 89 unchanged lines hidden (view full) --- 98#endif 99 .end no-absolute-literals 100 101 l32r a0, .Lstartup 102 jx a0 103 104ENDPROC(_start) 105 |
106 __INIT | 106 __REF |
107 .literal_position 108 109ENTRY(_startup) 110 111 /* Set a0 to 0 for the remaining initialization. */ 112 113 movi a0, 0 114 --- 182 unchanged lines hidden (view full) --- 297 movi a4, secondary_start_kernel 298 callx4 a4 299 j should_never_return 300 301#endif /* CONFIG_SMP */ 302 303ENDPROC(_startup) 304 | 107 .literal_position 108 109ENTRY(_startup) 110 111 /* Set a0 to 0 for the remaining initialization. */ 112 113 movi a0, 0 114 --- 182 unchanged lines hidden (view full) --- 297 movi a4, secondary_start_kernel 298 callx4 a4 299 j should_never_return 300 301#endif /* CONFIG_SMP */ 302 303ENDPROC(_startup) 304 |
305#ifdef CONFIG_HOTPLUG_CPU 306 307ENTRY(cpu_restart) 308 309#if XCHAL_DCACHE_IS_WRITEBACK 310 ___flush_invalidate_dcache_all a2 a3 311#else 312 ___invalidate_dcache_all a2 a3 313#endif 314 memw 315 movi a2, CCON # MX External Register to Configure Cache 316 movi a3, 0 317 wer a3, a2 318 extw 319 320 rsr a0, prid 321 neg a2, a0 322 movi a3, cpu_start_id 323 s32i a2, a3, 0 324#if XCHAL_DCACHE_IS_WRITEBACK 325 dhwbi a3, 0 326#endif 3271: 328 l32i a2, a3, 0 329 dhi a3, 0 330 bne a2, a0, 1b 331 332 /* 333 * Initialize WB, WS, and clear PS.EXCM (to allow loop instructions). 334 * Set Interrupt Level just below XCHAL_DEBUGLEVEL to allow 335 * xt-gdb to single step via DEBUG exceptions received directly 336 * by ocd. 337 */ 338 movi a1, 1 339 movi a0, 0 340 wsr a1, windowstart 341 wsr a0, windowbase 342 rsync 343 344 movi a1, LOCKLEVEL 345 wsr a1, ps 346 rsync 347 348 j _startup 349 350ENDPROC(cpu_restart) 351 352#endif /* CONFIG_HOTPLUG_CPU */ 353 |
|
305/* 306 * DATA section 307 */ 308 309 .section ".data.init.refok" 310 .align 4 311ENTRY(start_info) 312 .long init_thread_union + KERNEL_STACK_SIZE --- 14 unchanged lines hidden --- | 354/* 355 * DATA section 356 */ 357 358 .section ".data.init.refok" 359 .align 4 360ENTRY(start_info) 361 .long init_thread_union + KERNEL_STACK_SIZE --- 14 unchanged lines hidden --- |