Ignore:
Timestamp:
Mar 13, 2013, 6:17:24 PM (12 years ago)
Author:
joannou
Message:

bugfix in vci_cc_vcache_wrapper_dspin_coherence in coherence type checking

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/v5/modules/vci_cc_vcache_wrapper_dspin_coherence/caba/source/src/vci_cc_vcache_wrapper.cpp

    r318 r321  
    17191719                                // The return state is defined in r_icache_fsm_save.
    17201720    {
    1721         paddr_t  paddr = r_cc_receive_icache_nline.read(); // Warning : not valid in case of CLACK
     1721        paddr_t  paddr = r_cc_receive_icache_nline.read() * m_icache_words * 4;
    17221722        paddr_t  mask  = ~((m_icache_words<<2)-1);
    17231723
     
    43414341                            // The return state is defined in r_dcache_fsm_cc_save
    43424342    {
    4343         paddr_t  paddr = r_cc_receive_dcache_nline.read();
     4343        paddr_t  paddr = r_cc_receive_dcache_nline.read() * m_dcache_words * 4;
    43444344        paddr_t  mask = ~((m_dcache_words<<2)-1);
    43454345
     
    45694569                        r_dcache_fsm_scan_save   = r_dcache_fsm.read();
    45704570                        r_dcache_fsm             = DCACHE_INVAL_TLB_SCAN;
     4571                        break;
    45714572                    }
    45724573                    else
     
    53265327
    53275328    ///////////////////////////////////////////////////////////////////////////////
    5328     //   CC_RECEIVE  FSM
     5329    //   C_RECEIVE  FSM
    53295330    // This FSM receive all coherence packets on a DSPIN40 port.
    53305331    // There is 4 packet types:
     
    53585359                    r_cc_receive_fsm = CC_RECEIVE_CLACK;
    53595360                // test for a multi updt
    5360                 else if(receive_type == DspinDhccpParam::TYPE_MULTI_UPDT)
     5361                else if((receive_type == DspinDhccpParam::TYPE_MULTI_UPDT_DATA) or
     5362                        (receive_type == DspinDhccpParam::TYPE_MULTI_UPDT_INST))
    53615363                    r_cc_receive_fsm = CC_RECEIVE_UPDT_HEADER;
    53625364                // test for a multi inval
    53635365                else
    53645366                    r_cc_receive_fsm = CC_RECEIVE_INVAL_HEADER;
    5365                
    53665367            }
    53675368            break;
     
    55195520            {
    55205521                r_cc_receive_dcache_nline  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
    5521                 r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
     5522                r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_WORD_INDEX);
    55225523                r_cc_receive_dcache_type = CC_TYPE_UPDT;
    55235524                // get back to idle state
     
    55305531            {
    55315532                r_cc_receive_icache_nline  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
    5532                 r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
     5533                r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_WORD_INDEX);
    55335534                r_cc_receive_icache_type = CC_TYPE_UPDT;
    55345535                // get back to idle state
Note: See TracChangeset for help on using the changeset viewer.