forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 748e4f3d702def1a4bff191e0cf93b6a05340f01
kernel/arch/xtensa/kernel/head.S
....@@ -59,10 +59,6 @@
5959
6060 .align 4
6161 .literal_position
62
-.Lstartup:
63
- .word _startup
64
-
65
- .align 4
6662 _SetupOCD:
6763 /*
6864 * Initialize WB, WS, and clear PS.EXCM (to allow loop instructions).
....@@ -99,12 +95,12 @@
9995 1:
10096 #endif
10197 #endif
102
- .end no-absolute-literals
10398
104
- l32r a0, .Lstartup
99
+ movi a0, _startup
105100 jx a0
106101
107102 ENDPROC(_start)
103
+ .end no-absolute-literals
108104
109105 __REF
110106 .literal_position
....@@ -197,7 +193,7 @@
197193 movi a1, start_info
198194 l32i a1, a1, 0
199195
200
- movi a2, (1 << PS_WOE_BIT) | LOCKLEVEL
196
+ movi a2, PS_WOE_MASK | LOCKLEVEL
201197 # WOE=1, INTLEVEL=LOCKLEVEL, UM=0
202198 wsr a2, ps # (enable reg-windows; progmode stack)
203199 rsync
....@@ -263,6 +259,13 @@
263259 isync
264260 ___invalidate_icache_all a2 a3
265261 isync
262
+
263
+#ifdef CONFIG_XIP_KERNEL
264
+ /* Setup bootstrap CPU stack in XIP kernel */
265
+
266
+ movi a1, start_info
267
+ l32i a1, a1, 0
268
+#endif
266269
267270 movi a6, 0
268271 xsr a6, excsave1
....@@ -359,10 +362,10 @@
359362 * DATA section
360363 */
361364
362
- .section ".data.init.refok"
363
- .align 4
365
+ __REFDATA
366
+ .align 4
364367 ENTRY(start_info)
365
- .long init_thread_union + KERNEL_STACK_SIZE
368
+ .long init_thread_union + KERNEL_STACK_SIZE
366369
367370 /*
368371 * BSS section