Rev 1905 | Rev 2009 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1905 | Rev 1946 | ||
---|---|---|---|
Line 72... | Line 72... | ||
72 | { |
72 | { |
73 | /* |
73 | /* |
74 | * Invalidate all non-locked DTLB and ITLB entries. |
74 | * Invalidate all non-locked DTLB and ITLB entries. |
75 | */ |
75 | */ |
76 | tlb_invalidate_all(); |
76 | tlb_invalidate_all(); |
- | 77 | ||
- | 78 | /* |
|
- | 79 | * Clear both SFSRs. |
|
- | 80 | */ |
|
- | 81 | dtlb_sfsr_write(0); |
|
- | 82 | itlb_sfsr_write(0); |
|
77 | } |
83 | } |
78 | 84 | ||
79 | /** Insert privileged mapping into DMMU TLB. |
85 | /** Insert privileged mapping into DMMU TLB. |
80 | * |
86 | * |
81 | * @param page Virtual page address. |
87 | * @param page Virtual page address. |
Line 351... | Line 357... | ||
351 | printf("Faulting page: %p, ASID=%d\n", va, tag.context); |
357 | printf("Faulting page: %p, ASID=%d\n", va, tag.context); |
352 | dump_istate(istate); |
358 | dump_istate(istate); |
353 | panic("%s\n", str); |
359 | panic("%s\n", str); |
354 | } |
360 | } |
355 | 361 | ||
- | 362 | void dump_sfsr_and_sfar(void) |
|
- | 363 | { |
|
- | 364 | tlb_sfsr_reg_t sfsr; |
|
- | 365 | uintptr_t sfar; |
|
- | 366 | ||
- | 367 | sfsr.value = dtlb_sfsr_read(); |
|
- | 368 | sfar = dtlb_sfar_read(); |
|
- | 369 | ||
- | 370 | printf("DTLB SFSR: asi=%#x, ft=%#x, e=%d, ct=%d, pr=%d, w=%d, ow=%d, fv=%d\n", |
|
- | 371 | sfsr.asi, sfsr.ft, sfsr.e, sfsr.ct, sfsr.pr, sfsr.w, sfsr.ow, sfsr.fv); |
|
- | 372 | printf("DTLB SFAR: address=%p\n", sfar); |
|
- | 373 | ||
- | 374 | dtlb_sfsr_write(0); |
|
- | 375 | } |
|
- | 376 | ||
356 | /** Invalidate all unlocked ITLB and DTLB entries. */ |
377 | /** Invalidate all unlocked ITLB and DTLB entries. */ |
357 | void tlb_invalidate_all(void) |
378 | void tlb_invalidate_all(void) |
358 | { |
379 | { |
359 | int i; |
380 | int i; |
360 | tlb_data_t d; |
381 | tlb_data_t d; |