- Timestamp:
- Apr 6, 2015, 11:53:18 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/reconfiguration/modules/vci_cc_vcache_wrapper/caba/source/src/vci_cc_vcache_wrapper.cpp
r928 r970 1139 1139 else if ((int) r_dcache_xtn_opcode.read() == (int) iss_t::XTN_MMU_ICACHE_PA_INV) 1140 1140 { 1141 if (sizeof(paddr_t) <= 32) 1142 { 1143 assert(r_mmu_word_hi.read() == 0 && 1144 "illegal XTN request in ICACHE: high bits should be 0 for 32bit paddr"); 1145 r_icache_vci_paddr = (paddr_t) r_mmu_word_lo.read(); 1146 } 1147 else 1148 { 1149 r_icache_vci_paddr = (paddr_t) r_mmu_word_hi.read() << 32 | 1150 (paddr_t) r_mmu_word_lo.read(); 1151 } 1141 uint64_t pa = ((uint64_t)r_mmu_word_hi.read() << 32) | 1142 ((uint64_t)r_mmu_word_lo.read()); 1143 1144 r_icache_vci_paddr = (paddr_t)pa; 1152 1145 r_icache_fsm = ICACHE_XTN_CACHE_INVAL_PA; 1153 1146 } … … 2640 2633 2641 2634 case iss_t::XTN_MMU_DCACHE_PA_INV: // dcache, dtlb & itlb access 2635 { 2636 uint64_t pa = ((uint64_t)r_mmu_word_hi.read() << 32) | 2637 ((uint64_t)r_mmu_word_lo.read()); 2638 2639 r_dcache_save_paddr = (paddr_t)pa; 2642 2640 r_dcache_fsm = DCACHE_XTN_DC_INVAL_PA; 2643 if (sizeof(paddr_t) <= 32)2644 {2645 assert(r_mmu_word_hi.read() == 0 &&2646 "high bits should be 0 for 32bit paddr");2647 r_dcache_save_paddr = (paddr_t)r_mmu_word_lo.read();2648 }2649 else2650 {2651 r_dcache_save_paddr = (paddr_t)r_mmu_word_hi.read() << 32 |2652 (paddr_t)r_mmu_word_lo.read();2653 }2654 2641 break; 2655 2642 } 2656 2643 case iss_t::XTN_DCACHE_FLUSH: // itlb and dtlb must be reset 2657 2644 r_dcache_flush_count = 0;
Note: See TracChangeset
for help on using the changeset viewer.