Changeset 970 for trunk/modules/vci_cc_vcache_wrapper
- Timestamp:
- Apr 6, 2015, 11:53:18 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/modules/vci_cc_vcache_wrapper/caba/source/src/vci_cc_vcache_wrapper.cpp
r896 r970 1100 1100 else if ((int) r_dcache_xtn_opcode.read() == (int) iss_t::XTN_MMU_ICACHE_PA_INV) 1101 1101 { 1102 if (sizeof(paddr_t) <= 32) 1103 { 1104 assert(r_mmu_word_hi.read() == 0 && 1105 "illegal XTN request in ICACHE: high bits should be 0 for 32bit paddr"); 1106 r_icache_vci_paddr = (paddr_t) r_mmu_word_lo.read(); 1107 } 1108 else 1109 { 1110 r_icache_vci_paddr = (paddr_t) r_mmu_word_hi.read() << 32 | 1111 (paddr_t) r_mmu_word_lo.read(); 1112 } 1102 uint64_t pa = ((uint64_t)r_mmu_word_hi.read() << 32) | 1103 ((uint64_t)r_mmu_word_lo.read()); 1104 1105 r_icache_vci_paddr = (paddr_t)pa; 1113 1106 r_icache_fsm = ICACHE_XTN_CACHE_INVAL_PA; 1114 1107 } … … 2592 2585 2593 2586 case iss_t::XTN_MMU_DCACHE_PA_INV: // dcache, dtlb & itlb access 2587 { 2588 uint64_t pa = ((uint64_t)r_mmu_word_hi.read() << 32) | 2589 ((uint64_t)r_mmu_word_lo.read()); 2590 2591 r_dcache_save_paddr = (paddr_t)pa; 2594 2592 r_dcache_fsm = DCACHE_XTN_DC_INVAL_PA; 2595 if (sizeof(paddr_t) <= 32)2596 {2597 assert(r_mmu_word_hi.read() == 0 &&2598 "high bits should be 0 for 32bit paddr");2599 r_dcache_save_paddr = (paddr_t)r_mmu_word_lo.read();2600 }2601 else2602 {2603 r_dcache_save_paddr = (paddr_t)r_mmu_word_hi.read() << 32 |2604 (paddr_t)r_mmu_word_lo.read();2605 }2606 2593 break; 2607 2594 } 2608 2595 case iss_t::XTN_DCACHE_FLUSH: // itlb and dtlb must be reset 2609 2596 r_dcache_flush_count = 0;
Note: See TracChangeset
for help on using the changeset viewer.