提交 e42cb26b 编写于 作者: O openharmony_ci 提交者: Gitee

!324 fix: v1.1.0的reset_vector_up/mp.S bug修复同步自master

Merge pull request !324 from MGY917/start_up_bug_fix
...@@ -65,7 +65,9 @@ ...@@ -65,7 +65,9 @@
.equ MPIDR_CPUID_MASK, 0xffU .equ MPIDR_CPUID_MASK, 0xffU
.fpu vfpv4 .fpu neon-vfpv4
.syntax unified
.arch armv7-a
.arm .arm
/* param0 is stack bottom, param1 is stack size, r12 hold cpu id */ /* param0 is stack bottom, param1 is stack size, r12 hold cpu id */
...@@ -187,7 +189,7 @@ reloc_img_to_bottom_done: ...@@ -187,7 +189,7 @@ reloc_img_to_bottom_done:
mov r0, r4 mov r0, r4
mov r1, #0 mov r1, #0
mov r2, #MMU_DESCRIPTOR_L1_SMALL_ENTRY_NUMBERS mov r2, #MMU_DESCRIPTOR_L1_SMALL_ENTRY_NUMBERS
bl memset bl memset_optimized /* optimized memset since r0 is 64-byte aligned */
PAGE_TABLE_SET SYS_MEM_BASE, KERNEL_VMM_BASE, KERNEL_VMM_SIZE, MMU_DESCRIPTOR_KERNEL_L1_PTE_FLAGS PAGE_TABLE_SET SYS_MEM_BASE, KERNEL_VMM_BASE, KERNEL_VMM_SIZE, MMU_DESCRIPTOR_KERNEL_L1_PTE_FLAGS
PAGE_TABLE_SET SYS_MEM_BASE, UNCACHED_VMM_BASE, UNCACHED_VMM_SIZE, MMU_INITIAL_MAP_NORMAL_NOCACHE PAGE_TABLE_SET SYS_MEM_BASE, UNCACHED_VMM_BASE, UNCACHED_VMM_SIZE, MMU_INITIAL_MAP_NORMAL_NOCACHE
...@@ -463,6 +465,18 @@ _bootaddr_setup: ...@@ -463,6 +465,18 @@ _bootaddr_setup:
bx lr bx lr
memset_optimized:
mov r3, r0
vdup.8 q0, r1
vmov q1, q0
vmov q2, q0
vmov q3, q0
memset_optimized_loop:
subs r2, #64
vstmia r3!, {d0 - d7}
bge memset_optimized_loop
bx lr
init_done: init_done:
.long 0xDEADB00B .long 0xDEADB00B
......
...@@ -65,7 +65,9 @@ ...@@ -65,7 +65,9 @@
.equ MPIDR_CPUID_MASK, 0xffU .equ MPIDR_CPUID_MASK, 0xffU
.fpu vfpv4 .fpu neon-vfpv4
.syntax unified
.arch armv7-a
.arm .arm
/* param0 is stack bottom, param1 is stack size, r11 hold cpu id */ /* param0 is stack bottom, param1 is stack size, r11 hold cpu id */
...@@ -164,7 +166,7 @@ reloc_img_to_bottom_done: ...@@ -164,7 +166,7 @@ reloc_img_to_bottom_done:
mov r0, r4 mov r0, r4
mov r1, #0 mov r1, #0
mov r2, #MMU_DESCRIPTOR_L1_SMALL_ENTRY_NUMBERS mov r2, #MMU_DESCRIPTOR_L1_SMALL_ENTRY_NUMBERS
bl memset bl memset_optimized /* optimized memset since r0 is 64-byte aligned */
PAGE_TABLE_SET SYS_MEM_BASE, KERNEL_VMM_BASE, KERNEL_VMM_SIZE, MMU_DESCRIPTOR_KERNEL_L1_PTE_FLAGS PAGE_TABLE_SET SYS_MEM_BASE, KERNEL_VMM_BASE, KERNEL_VMM_SIZE, MMU_DESCRIPTOR_KERNEL_L1_PTE_FLAGS
...@@ -431,6 +433,18 @@ _bootaddr_setup: ...@@ -431,6 +433,18 @@ _bootaddr_setup:
bx lr bx lr
memset_optimized:
mov r3, r0
vdup.8 q0, r1
vmov q1, q0
vmov q2, q0
vmov q3, q0
memset_optimized_loop:
subs r2, #64
vstmia r3!, {d0 - d7}
bge memset_optimized_loop
bx lr
init_done: init_done:
.long 0xDEADB00B .long 0xDEADB00B
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册