Rev 3839 | Rev 3857 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3839 | Rev 3856 | ||
|---|---|---|---|
| Line 24... | Line 24... | ||
| 24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 27 | */ |
27 | */ |
| 28 | 28 | ||
| 29 | /** @addtogroup ppc32mm |
29 | /** @addtogroup ppc32mm |
| 30 | * @{ |
30 | * @{ |
| 31 | */ |
31 | */ |
| 32 | /** @file |
32 | /** @file |
| 33 | */ |
33 | */ |
| 34 | 34 | ||
| Line 45... | Line 45... | ||
| 45 | 45 | ||
| 46 | static unsigned int seed = 10; |
46 | static unsigned int seed = 10; |
| 47 | static unsigned int seed_real __attribute__ ((section("K_UNMAPPED_DATA_START"))) = 42; |
47 | static unsigned int seed_real __attribute__ ((section("K_UNMAPPED_DATA_START"))) = 42; |
| 48 | 48 | ||
| 49 | 49 | ||
| - | 50 | #define TLB_FLUSH \ |
|
| - | 51 | "tlbie %0\n" \ |
|
| - | 52 | "addi %0, %0, 0x1000\n" |
|
| - | 53 | ||
| - | 54 | ||
| 50 | /** Try to find PTE for faulting address |
55 | /** Try to find PTE for faulting address |
| 51 | * |
56 | * |
| 52 | * Try to find PTE for faulting address. |
57 | * Try to find PTE for faulting address. |
| 53 | * The as->lock must be held on entry to this function |
58 | * The as->lock must be held on entry to this function |
| 54 | * if lock is true. |
59 | * if lock is true. |
| Line 409... | Line 414... | ||
| 409 | } |
414 | } |
| 410 | 415 | ||
| 411 | 416 | ||
| 412 | void tlb_invalidate_all(void) |
417 | void tlb_invalidate_all(void) |
| 413 | { |
418 | { |
| - | 419 | uint32_t index; |
|
| 414 | asm volatile ( |
420 | asm volatile ( |
| - | 421 | "li %0, 0\n" |
|
| - | 422 | "sync\n" |
|
| - | 423 | ||
| - | 424 | TLB_FLUSH |
|
| - | 425 | TLB_FLUSH |
|
| - | 426 | TLB_FLUSH |
|
| - | 427 | TLB_FLUSH |
|
| - | 428 | TLB_FLUSH |
|
| - | 429 | TLB_FLUSH |
|
| - | 430 | TLB_FLUSH |
|
| - | 431 | TLB_FLUSH |
|
| - | 432 | ||
| - | 433 | TLB_FLUSH |
|
| - | 434 | TLB_FLUSH |
|
| - | 435 | TLB_FLUSH |
|
| - | 436 | TLB_FLUSH |
|
| - | 437 | TLB_FLUSH |
|
| - | 438 | TLB_FLUSH |
|
| - | 439 | TLB_FLUSH |
|
| - | 440 | TLB_FLUSH |
|
| - | 441 | ||
| - | 442 | TLB_FLUSH |
|
| - | 443 | TLB_FLUSH |
|
| - | 444 | TLB_FLUSH |
|
| - | 445 | TLB_FLUSH |
|
| - | 446 | TLB_FLUSH |
|
| - | 447 | TLB_FLUSH |
|
| - | 448 | TLB_FLUSH |
|
| - | 449 | TLB_FLUSH |
|
| - | 450 | ||
| - | 451 | TLB_FLUSH |
|
| - | 452 | TLB_FLUSH |
|
| - | 453 | TLB_FLUSH |
|
| - | 454 | TLB_FLUSH |
|
| - | 455 | TLB_FLUSH |
|
| - | 456 | TLB_FLUSH |
|
| - | 457 | TLB_FLUSH |
|
| - | 458 | TLB_FLUSH |
|
| - | 459 | ||
| - | 460 | TLB_FLUSH |
|
| - | 461 | TLB_FLUSH |
|
| - | 462 | TLB_FLUSH |
|
| - | 463 | TLB_FLUSH |
|
| - | 464 | TLB_FLUSH |
|
| - | 465 | TLB_FLUSH |
|
| - | 466 | TLB_FLUSH |
|
| - | 467 | TLB_FLUSH |
|
| - | 468 | ||
| - | 469 | TLB_FLUSH |
|
| - | 470 | TLB_FLUSH |
|
| - | 471 | TLB_FLUSH |
|
| - | 472 | TLB_FLUSH |
|
| - | 473 | TLB_FLUSH |
|
| - | 474 | TLB_FLUSH |
|
| - | 475 | TLB_FLUSH |
|
| - | 476 | TLB_FLUSH |
|
| - | 477 | ||
| - | 478 | TLB_FLUSH |
|
| - | 479 | TLB_FLUSH |
|
| - | 480 | TLB_FLUSH |
|
| - | 481 | TLB_FLUSH |
|
| - | 482 | TLB_FLUSH |
|
| - | 483 | TLB_FLUSH |
|
| - | 484 | TLB_FLUSH |
|
| - | 485 | TLB_FLUSH |
|
| - | 486 | ||
| - | 487 | TLB_FLUSH |
|
| - | 488 | TLB_FLUSH |
|
| - | 489 | TLB_FLUSH |
|
| - | 490 | TLB_FLUSH |
|
| - | 491 | TLB_FLUSH |
|
| - | 492 | TLB_FLUSH |
|
| - | 493 | TLB_FLUSH |
|
| - | 494 | TLB_FLUSH |
|
| - | 495 | ||
| - | 496 | "eieio\n" |
|
| 415 | "tlbsync\n" |
497 | "tlbsync\n" |
| - | 498 | "sync\n" |
|
| - | 499 | : "=r" (index) |
|
| 416 | ); |
500 | ); |
| 417 | } |
501 | } |
| 418 | 502 | ||
| 419 | 503 | ||
| 420 | void tlb_invalidate_asid(asid_t asid) |
504 | void tlb_invalidate_asid(asid_t asid) |