Index: trunk/modules/vci_cc_vcache_wrapper2_multi/caba/source/include/vci_cc_vcache_wrapper2_multi.h
===================================================================
--- trunk/modules/vci_cc_vcache_wrapper2_multi/caba/source/include/vci_cc_vcache_wrapper2_multi.h	(revision 20)
+++ trunk/modules/vci_cc_vcache_wrapper2_multi/caba/source/include/vci_cc_vcache_wrapper2_multi.h	(revision 37)
@@ -393,4 +393,5 @@
     sc_signal<bool>         r_vci_rsp_ins_ok;
     sc_signal<bool>         r_vci_rsp_data_ok;
+    sc_signal<bool>         r_dcache_tlb_sc_fail;
 
     data_t                  *r_icache_miss_buf;    
Index: trunk/modules/vci_cc_vcache_wrapper2_multi/caba/source/src/vci_cc_vcache_wrapper2_multi.cpp
===================================================================
--- trunk/modules/vci_cc_vcache_wrapper2_multi/caba/source/src/vci_cc_vcache_wrapper2_multi.cpp	(revision 20)
+++ trunk/modules/vci_cc_vcache_wrapper2_multi/caba/source/src/vci_cc_vcache_wrapper2_multi.cpp	(revision 37)
@@ -279,4 +279,5 @@
       r_vci_rsp_ins_ok("r_vci_rsp_ins_ok"),
       r_vci_rsp_data_ok("r_vci_rsp_data_ok"),
+      r_dcache_tlb_sc_fail("r_dcache_tlb_sc_fail"),
 
       r_vci_tgt_fsm("r_vci_tgt_fsm"),
@@ -520,4 +521,5 @@
 
 	r_dcache_cc_check         = false;
+	r_dcache_tlb_sc_fail	  = false;
 
         // activity counters
@@ -3000,4 +3002,5 @@
                     r_dcache_inval_tlb_rsp = false;
                     r_dcache_fsm = DCACHE_IDLE;
+		    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
                     m_cost_data_tlb_miss_frz++;
                 }
@@ -3006,8 +3009,11 @@
         	    r_dcache_inval_rsp = false;
 		    r_dcache_fsm = DCACHE_IDLE;
+		    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
 		}
-		else if ( r_dcache_tlb_ll_dirty_req )
+		else if ( r_dcache_tlb_sc_fail )
 	        {
+		    r_dcache_tlb_ll_dirty_req = true;
 		    r_vci_rsp_data_ok = false;
+		    r_dcache_tlb_sc_fail = false;
 	            r_dcache_fsm = DCACHE_LL_DIRTY_WAIT; 
 	        }
@@ -3245,4 +3251,5 @@
         	    r_dcache_inval_tlb_rsp = false;
         	    r_dcache_fsm = DCACHE_IDLE;
+		    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
         	    m_cost_data_tlb_miss_frz++;
         	}
@@ -3251,8 +3258,11 @@
         	    r_dcache_inval_rsp = false;
         	    r_dcache_fsm = DCACHE_IDLE;
+		    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
         	}
-	    	else if ( r_dcache_tlb_ll_acc_req )
+	    	else if ( r_dcache_tlb_sc_fail )
 	    	{
+		    r_dcache_tlb_ll_acc_req = true;
 		    r_vci_rsp_data_ok = false;
+		    r_dcache_tlb_sc_fail = false;
 	    	    r_dcache_fsm = DCACHE_TLB1_LL_WAIT; 
 	    	}
@@ -3717,4 +3727,5 @@
                     r_dcache_inval_tlb_rsp = false;
                     r_dcache_fsm = DCACHE_IDLE;
+		    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
                     m_cost_data_tlb_miss_frz++;
                 }
@@ -3723,7 +3734,10 @@
         	    r_dcache_inval_rsp = false;
 		    r_dcache_fsm = DCACHE_IDLE;
+		    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
 		}
-	        else if ( r_dcache_tlb_ll_acc_req )
+	        else if ( r_dcache_tlb_sc_fail )
 	        {
+		    r_dcache_tlb_ll_acc_req = true;
+		    r_dcache_tlb_sc_fail = false;
 		    r_vci_rsp_data_ok = false;
 	            r_dcache_fsm = DCACHE_TLB2_LL_WAIT; 
@@ -4685,9 +4699,12 @@
 	            r_dcache_inval_rsp = false;
 	            r_dcache_fsm = DCACHE_IDLE;
+		    if ( r_dcache_tlb_sc_fail ) r_dcache_tlb_sc_fail = false;
 	            m_cost_data_tlb_miss_frz++;
 	        }
-	        else if ( r_dcache_itlb_ll_acc_req )
+	        else if ( r_dcache_tlb_sc_fail )
 	        {
+		    r_dcache_itlb_ll_acc_req = true;
 		    r_vci_rsp_data_ok = false;
+		    r_dcache_tlb_sc_fail = false;
 	            r_dcache_fsm = DCACHE_ITLB_LL_WAIT; 
 	        }
@@ -5291,5 +5308,5 @@
 	else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
 	{
-	    r_dcache_itlb_ll_acc_req = true;
+	    r_dcache_tlb_sc_fail = true;
 	}
 	r_vci_rsp_data_ok = true;
@@ -5394,5 +5411,5 @@
 	else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
 	{
-	    r_dcache_tlb_ll_acc_req = true;
+	    r_dcache_tlb_sc_fail = true;
 	}
 	r_vci_rsp_data_ok = true;
@@ -5432,5 +5449,5 @@
 	else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
 	{
-	    r_dcache_tlb_ll_dirty_req = true;
+	    r_dcache_tlb_sc_fail = true;
 	}
 	r_vci_rsp_data_ok = true;
