Rev 1868 | Rev 1880 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1868 | Rev 1870 | ||
---|---|---|---|
Line 38... | Line 38... | ||
38 | #include <mm/asid.h> |
38 | #include <mm/asid.h> |
39 | #include <arch/mm/frame.h> |
39 | #include <arch/mm/frame.h> |
40 | #include <arch/mm/page.h> |
40 | #include <arch/mm/page.h> |
41 | #include <arch/mm/mmu.h> |
41 | #include <arch/mm/mmu.h> |
42 | #include <arch/interrupt.h> |
42 | #include <arch/interrupt.h> |
- | 43 | #include <interrupt.h> |
|
43 | #include <arch.h> |
44 | #include <arch.h> |
44 | #include <print.h> |
45 | #include <print.h> |
45 | #include <arch/types.h> |
46 | #include <arch/types.h> |
46 | #include <typedefs.h> |
47 | #include <typedefs.h> |
47 | #include <config.h> |
48 | #include <config.h> |
Line 306... | Line 307... | ||
306 | 307 | ||
307 | void do_fast_instruction_access_mmu_miss_fault(istate_t *istate, const char *str) |
308 | void do_fast_instruction_access_mmu_miss_fault(istate_t *istate, const char *str) |
308 | { |
309 | { |
309 | char *tpc_str = get_symtab_entry(istate->tpc); |
310 | char *tpc_str = get_symtab_entry(istate->tpc); |
310 | 311 | ||
- | 312 | fault_if_from_uspace(istate, "%s\n", str); |
|
311 | printf("TPC=%p, (%s)\n", istate->tpc, tpc_str); |
313 | printf("TPC=%p, (%s)\n", istate->tpc, tpc_str); |
312 | panic("%s\n", str); |
314 | panic("%s\n", str); |
313 | } |
315 | } |
314 | 316 | ||
315 | void do_fast_data_access_mmu_miss_fault(istate_t *istate, tlb_tag_access_reg_t tag, const char *str) |
317 | void do_fast_data_access_mmu_miss_fault(istate_t *istate, tlb_tag_access_reg_t tag, const char *str) |
Line 317... | Line 319... | ||
317 | uintptr_t va; |
319 | uintptr_t va; |
318 | char *tpc_str = get_symtab_entry(istate->tpc); |
320 | char *tpc_str = get_symtab_entry(istate->tpc); |
319 | 321 | ||
320 | va = tag.vpn << PAGE_WIDTH; |
322 | va = tag.vpn << PAGE_WIDTH; |
321 | 323 | ||
- | 324 | fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)\n", str, va, tag.context); |
|
322 | printf("Faulting page: %p, ASID=%d\n", va, tag.context); |
325 | printf("Faulting page: %p, ASID=%d\n", va, tag.context); |
323 | printf("TPC=%p, (%s)\n", istate->tpc, tpc_str); |
326 | printf("TPC=%p, (%s)\n", istate->tpc, tpc_str); |
324 | panic("%s\n", str); |
327 | panic("%s\n", str); |
325 | } |
328 | } |
326 | 329 | ||
Line 329... | Line 332... | ||
329 | uintptr_t va; |
332 | uintptr_t va; |
330 | char *tpc_str = get_symtab_entry(istate->tpc); |
333 | char *tpc_str = get_symtab_entry(istate->tpc); |
331 | 334 | ||
332 | va = tag.vpn << PAGE_WIDTH; |
335 | va = tag.vpn << PAGE_WIDTH; |
333 | 336 | ||
- | 337 | fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)\n", str, va, tag.context); |
|
334 | printf("Faulting page: %p, ASID=%d\n", va, tag.context); |
338 | printf("Faulting page: %p, ASID=%d\n", va, tag.context); |
335 | printf("TPC=%p, (%s)\n", istate->tpc, tpc_str); |
339 | printf("TPC=%p, (%s)\n", istate->tpc, tpc_str); |
336 | panic("%s\n", str); |
340 | panic("%s\n", str); |
337 | } |
341 | } |
338 | 342 |