Rev 3674 | Rev 4348 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3674 | Rev 4339 | ||
|---|---|---|---|
| Line 422... | Line 422... | ||
| 422 | #endif |
422 | #endif |
| 423 | 423 | ||
| 424 | void do_fast_instruction_access_mmu_miss_fault(istate_t *istate, |
424 | void do_fast_instruction_access_mmu_miss_fault(istate_t *istate, |
| 425 | const char *str) |
425 | const char *str) |
| 426 | { |
426 | { |
| 427 | fault_if_from_uspace(istate, "%s\n", str); |
427 | fault_if_from_uspace(istate, "%s.", str); |
| 428 | dump_istate(istate); |
428 | dump_istate(istate); |
| 429 | panic("%s\n", str); |
429 | panic("%s.", str); |
| 430 | } |
430 | } |
| 431 | 431 | ||
| 432 | void do_fast_data_access_mmu_miss_fault(istate_t *istate, |
432 | void do_fast_data_access_mmu_miss_fault(istate_t *istate, |
| 433 | tlb_tag_access_reg_t tag, const char *str) |
433 | tlb_tag_access_reg_t tag, const char *str) |
| 434 | { |
434 | { |
| 435 | uintptr_t va; |
435 | uintptr_t va; |
| 436 | 436 | ||
| 437 | va = tag.vpn << MMU_PAGE_WIDTH; |
437 | va = tag.vpn << MMU_PAGE_WIDTH; |
| 438 | if (tag.context) { |
438 | if (tag.context) { |
| 439 | fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)\n", str, va, |
439 | fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d).", str, va, |
| 440 | tag.context); |
440 | tag.context); |
| 441 | } |
441 | } |
| 442 | dump_istate(istate); |
442 | dump_istate(istate); |
| 443 | printf("Faulting page: %p, ASID=%d\n", va, tag.context); |
443 | printf("Faulting page: %p, ASID=%d.\n", va, tag.context); |
| 444 | panic("%s\n", str); |
444 | panic("%s.", str); |
| 445 | } |
445 | } |
| 446 | 446 | ||
| 447 | void do_fast_data_access_protection_fault(istate_t *istate, |
447 | void do_fast_data_access_protection_fault(istate_t *istate, |
| 448 | tlb_tag_access_reg_t tag, const char *str) |
448 | tlb_tag_access_reg_t tag, const char *str) |
| 449 | { |
449 | { |
| 450 | uintptr_t va; |
450 | uintptr_t va; |
| 451 | 451 | ||
| 452 | va = tag.vpn << MMU_PAGE_WIDTH; |
452 | va = tag.vpn << MMU_PAGE_WIDTH; |
| 453 | 453 | ||
| 454 | if (tag.context) { |
454 | if (tag.context) { |
| 455 | fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d)\n", str, va, |
455 | fault_if_from_uspace(istate, "%s, Page=%p (ASID=%d).", str, va, |
| 456 | tag.context); |
456 | tag.context); |
| 457 | } |
457 | } |
| 458 | printf("Faulting page: %p, ASID=%d\n", va, tag.context); |
458 | printf("Faulting page: %p, ASID=%d\n", va, tag.context); |
| 459 | dump_istate(istate); |
459 | dump_istate(istate); |
| 460 | panic("%s\n", str); |
460 | panic("%s.", str); |
| 461 | } |
461 | } |
| 462 | 462 | ||
| 463 | void dump_sfsr_and_sfar(void) |
463 | void dump_sfsr_and_sfar(void) |
| 464 | { |
464 | { |
| 465 | tlb_sfsr_reg_t sfsr; |
465 | tlb_sfsr_reg_t sfsr; |