Changeset 65737d4 in mainline for kernel/arch/arm32
- Timestamp:
- 2010-01-13T20:39:42Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 711e1f32
- Parents:
- 9245413 (diff), fd608dc (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- kernel/arch/arm32
- Files:
-
- 2 added
- 9 edited
-
Makefile.inc (modified) (2 diffs)
-
_link.ld.in (modified) (1 diff)
-
include/context.h (modified) (2 diffs)
-
include/exception.h (modified) (3 diffs)
-
src/debug/stacktrace.c (added)
-
src/debug/stacktrace_asm.S (added)
-
src/exc_handler.S (modified) (1 diff)
-
src/exception.c (modified) (2 diffs)
-
src/mm/page.c (modified) (1 diff)
-
src/mm/page_fault.c (modified) (2 diffs)
-
src/start.S (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm32/Makefile.inc
r9245413 r65737d4 38 38 ATSIGN = % 39 39 40 GCC_CFLAGS += -fno-zero-initialized-in-bss 40 GCC_CFLAGS += -fno-zero-initialized-in-bss -mapcs-frame 41 41 42 42 BITS = 32 … … 57 57 arch/$(KARCH)/src/exception.c \ 58 58 arch/$(KARCH)/src/userspace.c \ 59 arch/$(KARCH)/src/debug/stacktrace.c \ 60 arch/$(KARCH)/src/debug/stacktrace_asm.S \ 59 61 arch/$(KARCH)/src/mm/as.c \ 60 62 arch/$(KARCH)/src/mm/frame.c \ -
kernel/arch/arm32/_link.ld.in
r9245413 r65737d4 34 34 *(.sdata); 35 35 *(.reginfo); 36 . = ALIGN(8); 36 37 symbol_table = .; 37 38 *(symtab.*); -
kernel/arch/arm32/include/context.h
r9245413 r65737d4 43 43 #define SP_DELTA (0 + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) 44 44 45 #define context_set(c, _pc, stack, size) \ 46 do { \ 47 (c)->pc = (uintptr_t) (_pc); \ 48 (c)->sp = ((uintptr_t) (stack)) + (size) - SP_DELTA; \ 49 (c)->fp = 0; \ 50 } while (0) 51 45 52 #ifndef __ASM__ 46 53 … … 62 69 uint32_t r9; 63 70 uint32_t r10; 64 uint32_t r11;71 uint32_t fp; /* r11 */ 65 72 66 73 ipl_t ipl; -
kernel/arch/arm32/include/exception.h
r9245413 r65737d4 86 86 87 87 /** Struct representing CPU state saved when an exception occurs. */ 88 typedef struct {88 typedef struct istate { 89 89 uint32_t spsr; 90 90 uint32_t sp; … … 102 102 uint32_t r9; 103 103 uint32_t r10; 104 uint32_t r11;104 uint32_t fp; 105 105 uint32_t r12; 106 106 … … 133 133 } 134 134 135 static inline unative_t istate_get_fp(istate_t *istate) 136 { 137 return istate->fp; 138 } 139 135 140 136 141 extern void install_exception_handlers(void); -
kernel/arch/arm32/src/exc_handler.S
r9245413 r65737d4 123 123 stmfd r13!, {r2} 124 124 2: 125 # Stop stack traces here 126 mov fp, #0 125 127 .endm 126 128 -
kernel/arch/arm32/src/exception.c
r9245413 r65737d4 42 42 #include <print.h> 43 43 #include <syscall/syscall.h> 44 #include <stacktrace.h> 44 45 45 46 #ifdef MACHINE_testarm … … 183 184 printf(" r4: %x r5: %x r6: %x r7: %x\n", 184 185 istate->r4, istate->r5, istate->r6, istate->r7); 185 printf(" r8: %x r8: %x r10: %x r11: %x\n",186 istate->r8, istate->r9, istate->r10, istate-> r11);186 printf(" r8: %x r8: %x r10: %x fp: %x\n", 187 istate->r8, istate->r9, istate->r10, istate->fp); 187 188 printf(" r12: %x sp: %x lr: %x spsr: %x\n", 188 189 istate->r12, istate->sp, istate->lr, istate->spsr); 189 190 190 191 printf(" pc: %x\n", istate->pc); 192 193 stack_trace_istate(istate); 191 194 } 192 195 -
kernel/arch/arm32/src/mm/page.c
r9245413 r65737d4 88 88 KA2PA(KERNEL_ADDRESS_SPACE_END_ARCH)) { 89 89 panic("Unable to map physical memory %p (%d bytes).", 90 physaddr, size) 90 physaddr, size); 91 91 } 92 92 -
kernel/arch/arm32/src/mm/page_fault.c
r9245413 r65737d4 181 181 182 182 if (ret == AS_PF_FAULT) { 183 fault_if_from_uspace(istate, "Page fault: %#x.", badvaddr); 183 184 print_istate(istate); 184 185 printf("page fault - pc: %x, va: %x, status: %x(%x), " … … 186 187 access); 187 188 188 fault_if_from_uspace(istate, "Page fault: %#x.", badvaddr);189 189 panic("Page fault."); 190 190 } -
kernel/arch/arm32/src/start.S
r9245413 r65737d4 69 69 bl arch_pre_main 70 70 71 # 72 # Create the first stack frame. 73 # 74 mov fp, #0 75 mov ip, sp 76 push {fp, ip, lr, pc} 77 sub fp, ip, #4 78 71 79 bl main_bsp 72 80
Note:
See TracChangeset
for help on using the changeset viewer.
