Index: trunk/platforms/tsar_generic_leti/tsar_leti_cluster/caba/source/include/tsar_leti_cluster.h
===================================================================
--- trunk/platforms/tsar_generic_leti/tsar_leti_cluster/caba/source/include/tsar_leti_cluster.h	(revision 621)
+++ trunk/platforms/tsar_generic_leti/tsar_leti_cluster/caba/source/include/tsar_leti_cluster.h	(revision 628)
@@ -25,14 +25,9 @@
 #include "vci_dspin_initiator_wrapper.h"
 #include "vci_dspin_target_wrapper.h"
-#include "virtual_dspin_router.h"
+#include "dspin_router.h"
 #include "vci_multi_tty.h"
-#include "vci_multi_nic.h"
-#include "vci_chbuf_dma.h"
 #include "vci_block_device_tsar.h"
-#include "vci_framebuffer.h"
-#include "vci_multi_dma.h"
 #include "vci_mem_cache.h"
 #include "vci_cc_vcache_wrapper.h"
-#include "vci_simhelper.h"
 
 namespace soclib { namespace caba {
@@ -54,17 +49,24 @@
     sc_in<bool>                                     p_clk;
     sc_in<bool>                                     p_resetn;
-    soclib::caba::DspinOutput<dspin_cmd_width>      **p_cmd_out;
-    soclib::caba::DspinInput<dspin_cmd_width>       **p_cmd_in;
-    soclib::caba::DspinOutput<dspin_rsp_width>      **p_rsp_out;
-    soclib::caba::DspinInput<dspin_rsp_width>       **p_rsp_in;
+
+    soclib::caba::DspinOutput<dspin_cmd_width>      *p_cmd_out;
+    soclib::caba::DspinInput<dspin_cmd_width>       *p_cmd_in;
+
+    soclib::caba::DspinOutput<dspin_rsp_width>      *p_rsp_out;
+    soclib::caba::DspinInput<dspin_rsp_width>       *p_rsp_in;
+
+    soclib::caba::DspinOutput<dspin_cmd_width>      *p_m2p_out;
+    soclib::caba::DspinInput<dspin_cmd_width>       *p_m2p_in;
+
+    soclib::caba::DspinOutput<dspin_rsp_width>      *p_p2m_out;
+    soclib::caba::DspinInput<dspin_rsp_width>       *p_p2m_in;
+
+    soclib::caba::DspinOutput<dspin_cmd_width>      *p_cla_out;
+    soclib::caba::DspinInput<dspin_cmd_width>       *p_cla_in;
 
     // interrupt signals
     sc_signal<bool>         signal_false;
-    sc_signal<bool>         signal_proc_it[8];
-    sc_signal<bool>         signal_irq_mdma[8];
-    sc_signal<bool>         signal_irq_mtty[23];
-    sc_signal<bool>         signal_irq_mnic_rx[8];  // unused
-    sc_signal<bool>         signal_irq_mnic_tx[8];  // unused
-    sc_signal<bool>         signal_irq_chbuf[8];  // unused
+    sc_signal<bool>         signal_proc_irq[16];
+    sc_signal<bool>         signal_irq_mtty;
     sc_signal<bool>         signal_irq_memc;
     sc_signal<bool>         signal_irq_bdev;
@@ -83,5 +85,5 @@
 
     // Direct VCI signals to VCI/DSPIN wrappers
-    VciSignals<vci_param_int>       signal_vci_ini_proc[8];
+    VciSignals<vci_param_int>       signal_vci_ini_proc[4];
     VciSignals<vci_param_int>       signal_vci_ini_mdma;
     VciSignals<vci_param_int>       signal_vci_ini_bdev;
@@ -99,6 +101,6 @@
 
     // Direct DSPIN signals to local crossbars
-    DspinSignals<dspin_cmd_width>     signal_dspin_cmd_proc_i[8];
-    DspinSignals<dspin_rsp_width>     signal_dspin_rsp_proc_i[8];
+    DspinSignals<dspin_cmd_width>     signal_dspin_cmd_proc_i[4];
+    DspinSignals<dspin_rsp_width>     signal_dspin_rsp_proc_i[4];
     DspinSignals<dspin_cmd_width>     signal_dspin_cmd_mdma_i;
     DspinSignals<dspin_rsp_width>     signal_dspin_rsp_mdma_i;
@@ -131,7 +133,7 @@
     DspinSignals<dspin_cmd_width>     signal_dspin_clack_memc;
     DspinSignals<dspin_rsp_width>     signal_dspin_p2m_memc;
-    DspinSignals<dspin_cmd_width>     signal_dspin_m2p_proc[8];
-    DspinSignals<dspin_cmd_width>     signal_dspin_clack_proc[8];
-    DspinSignals<dspin_rsp_width>     signal_dspin_p2m_proc[8];
+    DspinSignals<dspin_cmd_width>     signal_dspin_m2p_proc[4];
+    DspinSignals<dspin_cmd_width>     signal_dspin_clack_proc[4];
+    DspinSignals<dspin_rsp_width>     signal_dspin_p2m_proc[4];
 
     // external RAM to MEMC VCI signal
@@ -143,9 +145,9 @@
                        dspin_cmd_width,
                        dspin_rsp_width,
-                       GdbServer<Mips32ElIss> >*  proc[8];
+                       GdbServer<Mips32ElIss> >*  proc[4];
 
     VciDspinInitiatorWrapper<vci_param_int,
                              dspin_cmd_width,
-                             dspin_rsp_width>*    wi_proc[8];
+                             dspin_rsp_width>*    wi_proc[4];
 
     VciMemCache<vci_param_int,
@@ -164,14 +166,4 @@
                           dspin_rsp_width>*       wt_xicu;
 
-    VciMultiDma<vci_param_int>*                   mdma;
-
-    VciDspinInitiatorWrapper<vci_param_int,
-                             dspin_cmd_width,
-                             dspin_rsp_width>*    wi_mdma;
-
-    VciDspinTargetWrapper<vci_param_int,
-                          dspin_cmd_width,
-                          dspin_rsp_width>*       wt_mdma;
-
     VciSimpleRam<vci_param_ext>*                  xram;
 
@@ -181,32 +173,4 @@
                           dspin_cmd_width,
                           dspin_rsp_width>*       wt_mtty;
-
-    VciSimhelper<vci_param_int>*                  simhelper;
-
-    VciDspinTargetWrapper<vci_param_int,
-                          dspin_cmd_width,
-                          dspin_rsp_width>*       wt_simhelper;
-
-    VciFrameBuffer<vci_param_int>*                fbuf;
-
-    VciDspinTargetWrapper<vci_param_int,
-                          dspin_cmd_width,
-                          dspin_rsp_width>*       wt_fbuf;
-
-    VciMultiNic<vci_param_int>*                   mnic;
-
-    VciDspinTargetWrapper<vci_param_int,
-                          dspin_cmd_width,
-                          dspin_rsp_width>*       wt_mnic;
-
-    VciChbufDma<vci_param_int>*                   chbuf;
-
-    VciDspinTargetWrapper<vci_param_int,
-                          dspin_cmd_width,
-                          dspin_rsp_width>*       wt_chbuf;
-
-    VciDspinInitiatorWrapper<vci_param_int,
-                          dspin_cmd_width,
-                          dspin_rsp_width>*       wi_chbuf;
 
     VciBlockDeviceTsar<vci_param_int>*            bdev;
@@ -220,17 +184,18 @@
                           dspin_rsp_width>*       wt_bdev;
 
-    DspinLocalCrossbar<dspin_cmd_width>*          xbar_cmd_d;
-    DspinLocalCrossbar<dspin_rsp_width>*          xbar_rsp_d;
-    DspinLocalCrossbar<dspin_cmd_width>*          xbar_m2p_c;
-    DspinLocalCrossbar<dspin_rsp_width>*          xbar_p2m_c;
-    DspinLocalCrossbar<dspin_cmd_width>*          xbar_clack_c;
-
-    VirtualDspinRouter<dspin_cmd_width>*          router_cmd;
-    VirtualDspinRouter<dspin_rsp_width>*          router_rsp;
+    DspinLocalCrossbar<dspin_cmd_width>*          xbar_cmd;
+    DspinLocalCrossbar<dspin_rsp_width>*          xbar_rsp;
+    DspinLocalCrossbar<dspin_cmd_width>*          xbar_m2p;
+    DspinLocalCrossbar<dspin_rsp_width>*          xbar_p2m;
+    DspinLocalCrossbar<dspin_cmd_width>*          xbar_cla;
+
+    DspinRouter<dspin_cmd_width>*                 router_cmd;
+    DspinRouter<dspin_rsp_width>*                 router_rsp;
+    DspinRouter<dspin_cmd_width>*                 router_m2p;
+    DspinRouter<dspin_rsp_width>*                 router_p2m;
+    DspinRouter<dspin_cmd_width>*                 router_cla;
 
     TsarLetiCluster( sc_module_name                     insname,
                      size_t                             nb_procs,      // processors
-                     size_t                             nb_ttys,       // TTY terminals
-                     size_t                             nb_dmas,       //  DMA channels
                      size_t                             x,             // x coordinate
                      size_t                             y,             // y coordinate
@@ -244,11 +209,7 @@
                      size_t                             tgtid_memc,
                      size_t                             tgtid_xicu,
-                     size_t                             tgtid_mdma,
-                     size_t                             tgtid_fbuf,
                      size_t                             tgtid_mtty,
-                     size_t                             tgtid_mnic,
-                     size_t                             tgtid_chbuf,
                      size_t                             tgtid_bdev,
-                     size_t                             tgtid_simh,
+                     const char*                        disk_pathname,
                      size_t                             memc_ways,
                      size_t                             memc_sets,
@@ -258,14 +219,4 @@
                      size_t                             l1_d_sets,
                      size_t                             xram_latency,  // external ram
-                     bool                               io,            // I/O cluster
-                     size_t                             xfb,           // fbf pixels
-                     size_t                             yfb,           // fbf lines
-                     char*                              disk_name,     // virtual disk
-                     size_t                             block_size,    // block size
-                     size_t                             nic_channels,  // number channels
-                     char*                              nic_rx_name,   // filename rx
-                     char*                              nic_tx_name,   // filename tx
-                     uint32_t                           nic_timeout,   // cycles
-                     size_t                             chbufdma_channels,  // number channels
                      const Loader                       &loader,
                      uint32_t                           frozen_cycles,
