Index: trunk/modules/vci_cc_xcache_wrapper_v1/caba/source/src/vci_cc_xcache_wrapper_v1.cpp
===================================================================
--- trunk/modules/vci_cc_xcache_wrapper_v1/caba/source/src/vci_cc_xcache_wrapper_v1.cpp	(revision 29)
+++ trunk/modules/vci_cc_xcache_wrapper_v1/caba/source/src/vci_cc_xcache_wrapper_v1.cpp	(revision 82)
@@ -434,5 +434,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;
@@ -448,5 +448,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() ) 
@@ -1487,5 +1487,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;
 
@@ -1499,5 +1499,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;
 
@@ -1516,5 +1516,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;
 
@@ -1527,5 +1527,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;
 
@@ -1539,5 +1539,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;
 
@@ -1548,5 +1548,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;
@@ -1887,5 +1887,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;
@@ -1898,5 +1898,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;
@@ -1909,5 +1909,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;
