浏览代码

xtensa: move vecbase SR initialization to _startup

Instead of initializing vecbase in initialize_mmu macro, which may be
expanded either in Image.elf reset vector hadler or in the kernel
head.S, both times only when CONFIG_MMU is enabled, do this
initialization once in _startup function.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Max Filippov 11 年之前
父节点
当前提交
53490121e9
共有 2 个文件被更改,包括 5 次插入3 次删除
  1. 0 3
      arch/xtensa/include/asm/initialize_mmu.h
  2. 5 0
      arch/xtensa/kernel/head.S

+ 0 - 3
arch/xtensa/include/asm/initialize_mmu.h

@@ -141,9 +141,6 @@
 	jx	a4
 	jx	a4
 
 
 1:
 1:
-	movi    a2, VECBASE_RESET_VADDR
-	wsr	a2, vecbase
-
 	/* Step 5: remove temporary mapping. */
 	/* Step 5: remove temporary mapping. */
 	idtlb	a7
 	idtlb	a7
 	iitlb	a7
 	iitlb	a7

+ 5 - 0
arch/xtensa/kernel/head.S

@@ -112,6 +112,11 @@ ENTRY(_startup)
 
 
 	movi	a0, 0
 	movi	a0, 0
 
 
+#if XCHAL_HAVE_VECBASE
+	movi    a2, VECBASE_RESET_VADDR
+	wsr	a2, vecbase
+#endif
+
 	/* Clear debugging registers. */
 	/* Clear debugging registers. */
 
 
 #if XCHAL_HAVE_DEBUG
 #if XCHAL_HAVE_DEBUG