123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #include <mips/asm.h>
- #include <core_config.h>
- #include <mips/regdef.h>
- #include <mips/m32c0.h>
- LEAF(init_tlb)
- check_for_tlb:
-
- mfc0 a0, C0_CONFIG
- ext a0, a0, 7, 3
- li a2, 0x1
- bne a0, a2, done_init_tlb
- mfc0 a1, C0_CONFIG1
- start_init_tlb:
-
- ext a0, a1, CFG1_MMUSSHIFT, 6
- mtc0 zero, C0_ENTRYLO0
- mtc0 zero, C0_ENTRYLO1
- mtc0 zero, C0_PAGEMASK
- mtc0 zero, C0_WIRED
- li a3, 0x80000000
- next_tlb_entry_pair:
- mtc0 a0, C0_INDEX
- mtc0 a3, C0_ENTRYHI
- ehb
- tlbwi
- add a3, 0x2000
- add a0, -1
- bgez a0, next_tlb_entry_pair
- done_init_tlb:
- jr ra
- END(init_tlb)
|