Index: trunk/modules/vci_cc_xcache_wrapper_v4/caba/source/src/vci_cc_xcache_wrapper_v4.cpp
===================================================================
--- trunk/modules/vci_cc_xcache_wrapper_v4/caba/source/src/vci_cc_xcache_wrapper_v4.cpp	(revision 58)
+++ trunk/modules/vci_cc_xcache_wrapper_v4/caba/source/src/vci_cc_xcache_wrapper_v4.cpp	(revision 82)
@@ -432,5 +432,5 @@
 
                     // multi-update or multi-invalidate for data type
-                    if ( (address != 0x3) && (! m_segment.contains(address)) ) 
+                    if ( ((address&0x3) != 0x3) && (! m_segment.contains(address)) ) 
                     {
                         std::cout << "error in component VCI_CC_XCACHE_WRAPPER " << name() << std::endl;
@@ -446,5 +446,5 @@
                     r_tgt_plen  = p_vci_tgt.plen.read();
                     
-                    if ( address == 0x3 )   // broadcast invalidate for data or instruction type
+                    if ( (address&0x3) == 0x3 )   // broadcast invalidate for data or instruction type
                     {
                         if ( ! p_vci_tgt.eop.read() ) 
@@ -1558,5 +1558,5 @@
                     r_vci_rsp_fsm = RSP_IDLE;
                 }
-                if ( p_vci_ini_rw.rerror.read() != vci_param::ERR_NORMAL ) r_vci_rsp_ins_error = true;
+                if ( (p_vci_ini_rw.rerror.read()&0x1) != vci_param::ERR_NORMAL ) r_vci_rsp_ins_error = true;
                 break;
 
@@ -1570,5 +1570,5 @@
                 r_vci_rsp_fsm = RSP_IDLE;
                 r_icache_unc_req = false;
-                if ( p_vci_ini_rw.rerror.read() != vci_param::ERR_NORMAL ) r_vci_rsp_ins_error = true;
+                if ( (p_vci_ini_rw.rerror.read()&0x1) != vci_param::ERR_NORMAL ) r_vci_rsp_ins_error = true;
                 break;
 
@@ -1587,5 +1587,5 @@
                     r_vci_rsp_fsm = RSP_IDLE;
                 }
-                if ( p_vci_ini_rw.rerror.read() != vci_param::ERR_NORMAL ) r_vci_rsp_data_error = true;
+                if ( (p_vci_ini_rw.rerror.read()&0x1) != vci_param::ERR_NORMAL ) r_vci_rsp_data_error = true;
                 break;
 
@@ -1598,5 +1598,5 @@
                     r_dcache_write_req = false;
                 }
-                if ( p_vci_ini_rw.rerror.read() != vci_param::ERR_NORMAL ) m_iss.setWriteBerr();
+                if ( (p_vci_ini_rw.rerror.read()&0x1) != vci_param::ERR_NORMAL ) m_iss.setWriteBerr();
                 break;
 
@@ -1610,5 +1610,5 @@
                 r_vci_rsp_fsm = RSP_IDLE;
                 r_dcache_unc_req = false;
-                if ( p_vci_ini_rw.rerror.read() != vci_param::ERR_NORMAL ) r_vci_rsp_data_error = true;
+                if ( (p_vci_ini_rw.rerror.read()&0x1) != vci_param::ERR_NORMAL ) r_vci_rsp_data_error = true;
                 break;
 
@@ -1622,5 +1622,5 @@
                 r_vci_rsp_fsm = RSP_IDLE;
                 r_dcache_sc_req = false;
-                if ( p_vci_ini_rw.rerror.read() != vci_param::ERR_NORMAL ) r_vci_rsp_data_error = true;
+                if ( (p_vci_ini_rw.rerror.read()&0x1) != vci_param::ERR_NORMAL ) r_vci_rsp_data_error = true;
                 break;
 
@@ -1631,5 +1631,5 @@
                 assert( p_vci_ini_c.reop.read() &&
                         "illegal VCI response packet for icache cleanup");
-                assert( (p_vci_ini_c.rerror.read() == vci_param::ERR_NORMAL) &&
+                assert( ((p_vci_ini_c.rerror.read()&0x1) == vci_param::ERR_NORMAL) &&
                         "error in response packet for icache cleanup");
                 if ( r_vci_rsp_fsm == RSP_INS_CLEANUP ) r_icache_cleanup_req = false;
@@ -2011,5 +2011,5 @@
                 p_vci_tgt.rtrdid  = r_tgt_trdid.read();
                 p_vci_tgt.rdata   = 0;
-                p_vci_tgt.rerror  = 0;
+                p_vci_tgt.rerror  = 0x2 & ( (1 << (vci_param::E + 1)) - 1); // Write OK
                 p_vci_tgt.reop    = true;
                 break;
@@ -2022,5 +2022,5 @@
                 p_vci_tgt.rtrdid  = r_tgt_trdid.read();
                 p_vci_tgt.rdata   = 0;
-                p_vci_tgt.rerror  = 0;
+                p_vci_tgt.rerror  = 0x2 & ( (1 << (vci_param::E + 1)) - 1); // Write OK
                 p_vci_tgt.reop    = true;
                 break;
@@ -2033,5 +2033,5 @@
                 p_vci_tgt.rtrdid  = r_tgt_trdid.read();
                 p_vci_tgt.rdata   = 0;
-                p_vci_tgt.rerror  = 0;
+                p_vci_tgt.rerror  = 0x2 & ( (1 << (vci_param::E + 1)) - 1); // Write OK
                 p_vci_tgt.reop    = true;
                 break;
