Rev 1743 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1743 | Rev 1758 | ||
|---|---|---|---|
| Line 362... | Line 362... | ||
| 362 | } |
362 | } |
| 363 | 363 | ||
| 364 | 364 | ||
| 365 | void tlb_invalidate_asid(asid_t asid) |
365 | void tlb_invalidate_asid(asid_t asid) |
| 366 | { |
366 | { |
| - | 367 | __u32 sdr1; |
|
| - | 368 | asm volatile ( |
|
| - | 369 | "mfsdr1 %0\n" |
|
| - | 370 | : "=r" (sdr1) |
|
| - | 371 | ); |
|
| - | 372 | phte_t *phte = (phte_t *) PA2KA(sdr1 & 0xffff0000); |
|
| - | 373 | ||
| 367 | // TODO |
374 | __u32 i; |
| - | 375 | for (i = 0; i < 8192; i++) { |
|
| - | 376 | if ((phte[i].v) && (phte[i].vsid >= (asid << 4)) && (phte[i].vsid < ((asid << 4) + 16))) |
|
| - | 377 | phte[i].v = 0; |
|
| - | 378 | } |
|
| 368 | tlb_invalidate_all(); |
379 | tlb_invalidate_all(); |
| 369 | } |
380 | } |
| 370 | 381 | ||
| 371 | 382 | ||
| 372 | void tlb_invalidate_pages(asid_t asid, __address page, count_t cnt) |
383 | void tlb_invalidate_pages(asid_t asid, __address page, count_t cnt) |