Rev 569 | Rev 598 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 569 | Rev 594 | ||
---|---|---|---|
Line 63... | Line 63... | ||
63 | cp0_entry_lo1_write(0); |
63 | cp0_entry_lo1_write(0); |
64 | 64 | ||
65 | /* |
65 | /* |
66 | * Invalidate all entries. |
66 | * Invalidate all entries. |
67 | */ |
67 | */ |
68 | for (i = 0; i < TLB_SIZE; i++) { |
68 | for (i = 0; i < TLB_ENTRY_COUNT; i++) { |
69 | cp0_index_write(i); |
69 | cp0_index_write(i); |
70 | tlbwi(); |
70 | tlbwi(); |
71 | } |
71 | } |
72 | 72 | ||
73 | /* |
73 | /* |
Line 320... | Line 320... | ||
320 | 320 | ||
321 | ASSERT(asid != ASID_INVALID); |
321 | ASSERT(asid != ASID_INVALID); |
322 | 322 | ||
323 | ipl = interrupts_disable(); |
323 | ipl = interrupts_disable(); |
324 | 324 | ||
325 | for (i = 0; i < TLB_SIZE; i++) { |
325 | for (i = 0; i < TLB_ENTRY_COUNT; i++) { |
326 | cp0_index_write(i); |
326 | cp0_index_write(i); |
327 | tlbr(); |
327 | tlbr(); |
328 | 328 | ||
329 | hi.value = cp0_entry_hi_read(); |
329 | hi.value = cp0_entry_hi_read(); |
330 | if (hi.asid == asid) { |
330 | if (hi.asid == asid) { |
Line 397... | Line 397... | ||
397 | { |
397 | { |
398 | hi->value = (((addr/PAGE_SIZE)/2)*PAGE_SIZE*2); |
398 | hi->value = (((addr/PAGE_SIZE)/2)*PAGE_SIZE*2); |
399 | hi->asid = asid; |
399 | hi->asid = asid; |
400 | } |
400 | } |
401 | 401 | ||
- | 402 | /** Print contents of TLB. */ |
|
402 | void tlb_print(void) |
403 | void tlb_print(void) |
403 | { |
404 | { |
- | 405 | entry_lo_t lo0, lo1; |
|
- | 406 | entry_hi_t hi; |
|
- | 407 | int i; |
|
- | 408 | ||
- | 409 | printf("TLB:\n"); |
|
- | 410 | for (i = 0; i < TLB_ENTRY_COUNT; i++) { |
|
- | 411 | cp0_index_write(i); |
|
- | 412 | ||
- | 413 | tlbr(); |
|
- | 414 | ||
- | 415 | hi.value = cp0_entry_hi_read(); |
|
- | 416 | lo0.value = cp0_entry_lo0_read(); |
|
- | 417 | lo1.value = cp0_entry_lo1_read(); |
|
- | 418 | ||
- | 419 | printf("%d: asid=%d, vpn2=%d\tg[0]=%d, v[0]=%d, d[0]=%d, c[0]=%B, pfn[0]=%d\n" |
|
- | 420 | "\t\t\tg[1]=%d, v[1]=%d, d[1]=%d, c[1]=%B, pfn[1]=%d\n", |
|
- | 421 | i, hi.asid, hi.vpn2, lo0.g, lo0.v, lo0.d, lo0.c, lo0.pfn, |
|
- | 422 | lo1.g, lo1.v, lo1.d, lo1.c, lo1.pfn); |
|
- | 423 | } |
|
404 | } |
424 | } |