tlb-sh4.c 686 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * arch/sh/mm/tlb-sh4.c
  3. *
  4. * SH-4 specific TLB operations
  5. *
  6. * Copyright (C) 1999 Niibe Yutaka
  7. * Copyright (C) 2002 Paul Mundt
  8. *
  9. * Released under the terms of the GNU GPL v2.0.
  10. */
  11. #include <linux/io.h>
  12. #include <asm/system.h>
  13. #include <asm/mmu_context.h>
  14. void local_flush_tlb_one(unsigned long asid, unsigned long page)
  15. {
  16. unsigned long addr, data;
  17. /*
  18. * NOTE: PTEH.ASID should be set to this MM
  19. * _AND_ we need to write ASID to the array.
  20. *
  21. * It would be simple if we didn't need to set PTEH.ASID...
  22. */
  23. addr = MMU_UTLB_ADDRESS_ARRAY | MMU_PAGE_ASSOC_BIT;
  24. data = page | asid; /* VALID bit is off */
  25. jump_to_P2();
  26. ctrl_outl(data, addr);
  27. back_to_P1();
  28. }