Changes in kernel/arch/ppc32/src/mm/tlb.c [9d58539:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ppc32/src/mm/tlb.c
r9d58539 ra35b458 42 42 ptehi_t ptehi; 43 43 ptelo_t ptelo; 44 44 45 45 asm volatile ( 46 46 "mfspr %[tlbmiss], 980\n" … … 51 51 [ptelo] "=r" (ptelo) 52 52 ); 53 53 54 54 uint32_t badvaddr = tlbmiss & 0xfffffffc; 55 55 uint32_t physmem = physmem_top(); 56 56 57 57 if ((badvaddr < PA2KA(0)) || (badvaddr >= PA2KA(physmem))) 58 58 return; // FIXME 59 59 60 60 ptelo.rpn = KA2PA(badvaddr) >> 12; 61 61 ptelo.wimg = 0; 62 62 ptelo.pp = 2; // FIXME 63 63 64 64 uint32_t index = 0; 65 65 asm volatile ( … … 84 84 "sync\n" 85 85 ); 86 86 87 87 for (unsigned int i = 0; i < 0x00040000; i += 0x00001000) { 88 88 asm volatile ( … … 91 91 ); 92 92 } 93 93 94 94 asm volatile ( 95 95 "eieio\n" … … 143 143 { 144 144 uint32_t sr; 145 145 146 146 for (sr = 0; sr < 16; sr++) { 147 147 uint32_t vsid = sr_get(sr << 28); 148 148 149 149 printf("sr[%02" PRIu32 "]: vsid=%#0" PRIx32 " (asid=%" PRIu32 ")" 150 150 "%s%s\n", sr, vsid & UINT32_C(0x00ffffff), … … 153 153 ((vsid >> 29) & 1) ? " user" : ""); 154 154 } 155 155 156 156 uint32_t upper; 157 157 uint32_t lower; 158 158 uint32_t mask; 159 159 uint32_t length; 160 160 161 161 PRINT_BAT("ibat[0]", 528, 529); 162 162 PRINT_BAT("ibat[1]", 530, 531); 163 163 PRINT_BAT("ibat[2]", 532, 533); 164 164 PRINT_BAT("ibat[3]", 534, 535); 165 165 166 166 PRINT_BAT("dbat[0]", 536, 537); 167 167 PRINT_BAT("dbat[1]", 538, 539);
Note:
See TracChangeset
for help on using the changeset viewer.