Index: branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp
===================================================================
--- branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp	(revision 1000)
+++ branches/reconfiguration/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp	(revision 1001)
@@ -93,5 +93,6 @@
             soclib::caba::BaseModule(insname),
             p_clk("clk"),
-            p_resetn("resetn")
+            p_resetn("resetn"),
+            p_false("false")
 {
 
@@ -201,5 +202,5 @@
                      xcu_nb_wti,                          // number of soft IRQs
                      xcu_nb_out,                          // number of output IRQs
-                     5);                                  // number of config regs
+                     6);                                  // number of config regs
 
     ////////////  MDMA
@@ -236,5 +237,6 @@
                      nb_direct_initiators,         // number of local initiators
                      nb_direct_targets,            // number of local targets
-                     0 );                          // default target
+                     0,                            // default target
+                     true );                       // hardware barrier
 
     std::ostringstream s_int_dspin_ini_wrapper_gate_d;
@@ -269,5 +271,6 @@
                      true,                         // pseudo CMD
                      false,                        // no routing table
-                     true );                       // broacast
+                     true,                         // broacast
+                     true );                       // hardware barrier
 
     std::ostringstream s_int_xbar_p2m_c;
@@ -283,5 +286,6 @@
                      false,                        // pseudo RSP
                      false,                        // no routing table
-                     false );                      // no broacast
+                     false,                        // no broacast
+                     true );                       // hardware barrier
 
     std::ostringstream s_int_xbar_clack_c;
@@ -297,5 +301,6 @@
                      true,                         // CMD
                      false,                        // no routing table
-                     false);                       // broadcast
+                     false,                        // broadcast
+                     true );                       // hardware barrier
 
     const bool ROUTER_CONFIG_SUPPORTED = true;
@@ -470,7 +475,8 @@
     int_router_rsp[1]->p_in[4]                   (signal_int_dspin_p2m_l2g_c);
 
-    ///////////////////// CMD DSPIN  local crossbar direct
+    ///////////////////// CMD & RSP local crossbar
     int_xbar_d->p_clk                                 (this->p_clk);
     int_xbar_d->p_resetn                              (this->p_resetn);
+    (*int_xbar_d->p_barrier_enable)                   (signal_cfg_xbar_barrier);
     int_xbar_d->p_initiator_to_up                     (signal_int_vci_l2g);
     int_xbar_d->p_target_to_up                        (signal_int_vci_g2l);
@@ -505,4 +511,5 @@
     int_xbar_m2p_c->p_clk                        (this->p_clk);
     int_xbar_m2p_c->p_resetn                     (this->p_resetn);
+    (*int_xbar_m2p_c->p_barrier_enable)          (signal_cfg_xbar_barrier);
     int_xbar_m2p_c->p_global_out                 (signal_int_dspin_m2p_l2g_c);
     int_xbar_m2p_c->p_global_in                  (signal_int_dspin_m2p_g2l_c);
@@ -514,4 +521,5 @@
     int_xbar_p2m_c->p_clk                        (this->p_clk);
     int_xbar_p2m_c->p_resetn                     (this->p_resetn);
+    (*int_xbar_p2m_c->p_barrier_enable)          (signal_cfg_xbar_barrier);
     int_xbar_p2m_c->p_global_out                 (signal_int_dspin_p2m_l2g_c);
     int_xbar_p2m_c->p_global_in                  (signal_int_dspin_p2m_g2l_c);
@@ -523,4 +531,5 @@
     int_xbar_clack_c->p_clk                      (this->p_clk);
     int_xbar_clack_c->p_resetn                   (this->p_resetn);
+    (*int_xbar_clack_c->p_barrier_enable)        (signal_cfg_xbar_barrier);
     int_xbar_clack_c->p_global_out               (signal_int_dspin_clack_l2g_c);
     int_xbar_clack_c->p_global_in                (signal_int_dspin_clack_g2l_c);
@@ -547,5 +556,5 @@
             else
             {
-                proc[p]->p_irq[j]                (signal_false);
+                proc[p]->p_irq[j]                (this->p_false);
             }
         }
@@ -564,5 +573,5 @@
         if      ( i == 0 )       xicu->p_hwi[i]  (signal_irq_memc);
         else if ( i <= nb_dmas ) xicu->p_hwi[i]  (signal_irq_mdma[i-1]);
-        else                     xicu->p_hwi[i]  (signal_false);
+        else                     xicu->p_hwi[i]  (this->p_false);
     }
     xicu->p_cfg[0]                               (signal_cfg_router_cmd[0]); // CMD
@@ -571,4 +580,5 @@
     xicu->p_cfg[3]                               (signal_cfg_router_rsp[1]); // P2M
     xicu->p_cfg[4]                               (signal_cfg_router_cmd[2]); // CLACK
+    xicu->p_cfg[5]                               (signal_cfg_xbar_barrier); // CLACK
 
     ///////////////////////////////////// MEMC
