Changeset a35b458 in mainline for kernel/arch/mips32/src/mm/tlb.c
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/mips32/src/mm/tlb.c
r3061bc1 ra35b458 76 76 77 77 /* Clear and initialize TLB. */ 78 78 79 79 for (i = 0; i < TLB_ENTRY_COUNT; i++) { 80 80 cp0_index_write(i); 81 81 tlbwi(); 82 82 } 83 83 84 84 /* 85 85 * The kernel is going to make use of some wired … … 98 98 uintptr_t badvaddr; 99 99 pte_t pte; 100 100 101 101 badvaddr = cp0_badvaddr_read(); 102 102 … … 291 291 lo1_save.value = cp0_entry_lo1_read(); 292 292 mask_save.value = cp0_pagemask_read(); 293 293 294 294 printf("[nr] [asid] [vpn2 ] [mask] [gvdc] [pfn ]\n"); 295 295 296 296 for (i = 0; i < TLB_ENTRY_COUNT; i++) { 297 297 cp0_index_write(i); 298 298 tlbr(); 299 299 300 300 mask.value = cp0_pagemask_read(); 301 301 hi.value = cp0_entry_hi_read(); 302 302 lo0.value = cp0_entry_lo0_read(); 303 303 lo1.value = cp0_entry_lo1_read(); 304 304 305 305 printf("%-4u %-6u %0#10x %-#6x %1u%1u%1u%1u %0#10x\n", 306 306 i, hi.asid, HI_VPN22ADDR(hi.vpn2), mask.mask, … … 309 309 lo1.g, lo1.v, lo1.d, lo1.c, LO_PFN2ADDR(lo1.pfn)); 310 310 } 311 311 312 312 cp0_entry_hi_write(hi_save.value); 313 313 cp0_entry_lo0_write(lo0_save.value); … … 339 339 cp0_entry_lo0_write(lo0.value); 340 340 cp0_entry_lo1_write(lo1.value); 341 341 342 342 tlbwi(); 343 343 } 344 344 345 345 cp0_entry_hi_write(hi_save.value); 346 346 } … … 360 360 361 361 hi_save.value = cp0_entry_hi_read(); 362 362 363 363 for (i = 0; i < TLB_ENTRY_COUNT; i++) { 364 364 cp0_index_write(i); 365 365 tlbr(); 366 366 367 367 hi.value = cp0_entry_hi_read(); 368 368 369 369 if (hi.asid == asid) { 370 370 lo0.value = cp0_entry_lo0_read(); … … 380 380 } 381 381 } 382 382 383 383 cp0_entry_hi_write(hi_save.value); 384 384 } … … 399 399 400 400 assert(interrupts_disabled()); 401 401 402 402 if (asid == ASID_INVALID) 403 403 return; … … 431 431 } 432 432 } 433 433 434 434 cp0_entry_hi_write(hi_save.value); 435 435 }
Note:
See TracChangeset
for help on using the changeset viewer.