Changeset 219 for trunk/modules


Ignore:
Timestamp:
Mar 23, 2012, 9:00:31 PM (13 years ago)
Author:
alain
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_cc_vcache_wrapper_v4/caba/source/src/vci_cc_vcache_wrapper_v4.cpp

    r218 r219  
    36333633                        set,
    36343634                        &nline );
     3635
    36353636        assert(hit && "selected way/set line should be in dcache");
    36363637
     
    36573658            r_itlb.reset();
    36583659            r_dtlb.reset();
    3659             r_dcache_fsm             = DCACHE_MISS_WAIT;
     3660            r_dcache_contains_ptd[way*m_dcache_sets+set] = false;
     3661            r_dcache_fsm = DCACHE_MISS_WAIT;
    36603662        }
    36613663        else
    36623664        {
    3663             r_dcache_fsm             = DCACHE_MISS_WAIT;
     3665            r_dcache_fsm = DCACHE_MISS_WAIT;
    36643666        }
    36653667        break;
     
    40084010                    r_itlb.reset();
    40094011                    r_dtlb.reset();
     4012                    r_dcache_contains_ptd[way*m_dcache_sets+set] = false;
    40104013                    r_dcache_fsm = DCACHE_IDLE;
    40114014                }
     
    41234126        if ( r_dcache_in_tlb[way*m_dcache_sets+set] )                   // selective inval
    41244127        {
     4128            r_dcache_in_tlb[way*m_dcache_sets+set] = false;
    41254129            r_dcache_tlb_inval_line  = nline;
    41264130            r_dcache_tlb_inval_count = 0;
    41274131            r_dcache_fsm_scan_save   = r_dcache_fsm.read();
    41284132            r_dcache_fsm             = DCACHE_INVAL_TLB_SCAN;
    4129             r_dcache_in_tlb[way*m_dcache_sets+set] = false;
    41304133        }
    41314134        else if ( r_dcache_contains_ptd[way*m_dcache_sets+set] )        // flush
     
    41674170        if ( r_dcache_in_tlb[way*m_dcache_sets+set] )           // selective inval
    41684171        {
     4172            r_dcache_in_tlb[way*m_dcache_sets+set] = false;
    41694173            r_dcache_tlb_inval_line  = nline;
    41704174            r_dcache_tlb_inval_count = 0;
    41714175            r_dcache_fsm_scan_save   = r_dcache_fsm.read();
    41724176            r_dcache_fsm             = DCACHE_INVAL_TLB_SCAN;
    4173             r_dcache_in_tlb[way*m_dcache_sets+set] = false;
    4174         }
    4175         else if ( r_dcache_contains_ptd[way*m_dcache_sets+set] )        // flush
     4177        }
     4178        else if ( r_dcache_contains_ptd[way*m_dcache_sets+set] ) // flush
    41764179        {
    41774180            r_itlb.reset();
    41784181            r_dtlb.reset();
     4182            r_dcache_contains_ptd[way*m_dcache_sets+set] = false;
    41794183            r_tgt_dcache_rsp = true;
    41804184            r_tgt_dcache_req = false;
    41814185            r_dcache_fsm     = r_dcache_fsm_cc_save.read();
    4182             r_dcache_contains_ptd[way*m_dcache_sets+set] = false;
    4183         }
    4184         else                                                    // no inval
     4186        }
     4187        else                                                    // no inval / no flush
    41854188        {
    41864189            r_dcache.write( way,
Note: See TracChangeset for help on using the changeset viewer.