Index: /branches/reconfiguration/platforms/tsar_generic_iob/Makefile
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/Makefile	(revision 1006)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/Makefile	(revision 1007)
@@ -1,3 +1,4 @@
-TAGS := cscope.out
+RM             := rm -f
+SOCLIB_CC      := soclib-cc
 SOCLIB_CC_MODE := -m release
 SOCLIB_CC_ARGS := $(SOCLIB_CC_MODE)
@@ -8,21 +9,38 @@
 #SOCLIB_CC_ARGS += -bcaba:vci_block_device_tsar
 
-all: simul.x
+TAGS           := cscope.out
+TARGET         := simul.x
+
+objs           := $(wildcard *.o)
+objs           += $(wildcard term[0-9])
+objs           += $(wildcard $(TARGET))
+objs           := $(strip $(objs))
+
+extra_objs     := $(wildcard scripts/*.pyc)
+extra_objs     += $(wildcard hard_config.h)
+extra_objs     += $(wildcard $(TAGS))
+extra_objs     := $(strip $(extra_objs))
+
+all: $(TARGET)
 tags: $(TAGS)
 
-simul.x: top.cpp top.desc
-	soclib-cc $(SOCLIB_CC_ARGS) -P -p top.desc -I. -o simul.x
+.PHONY: $(TARGET)
+$(TARGET): top.desc top.cpp
+	$(SOCLIB_CC) $(SOCLIB_CC_ARGS) -P -p $< -I. -o $@
 
+.PHONY: $(TAGS)
 $(TAGS): top.desc
-	soclib-cc -p $< --tags --tags-type=cscope --tags-output=$@
+	$(SOCLIB_CC) -p $< --tags --tags-type=cscope --tags-output=$@
 
+.PHONY: clean
 clean:
-	soclib-cc $(SOCLIB_CC_MODE) -x -p top.desc -I.
-	rm -rf *.o *.x tty* term*
+	$(SOCLIB_CC) $(SOCLIB_CC_MODE) -x -p top.desc -I.
+ifneq ($(objs),)
+	$(RM) $(objs)
+endif
 
+.PHONY: distclean
 distclean: clean
-	rm -f $(TAGS) hard_config.h
-	find . -name "*.pyc" -exec rm -f {} \;
-
-.PHONY: simul.x $(TAGS)
-
+ifneq ($(extra_objs),)
+	$(RM) $(extra_objs)
+endif
Index: /branches/reconfiguration/platforms/tsar_generic_iob/scripts/arch.py
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/scripts/arch.py	(revision 1006)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/scripts/arch.py	(revision 1007)
@@ -287,10 +287,10 @@
             mapping.addGlobal('seg_kernel_code', kcode_vbase, kcode_size,
                               'CXW_', vtype='ELF', x=x, y=y, pseg='RAM',
-                              binpath='build/kernel/kernel.elf',
+                              binpath='bin/kernel/kernel.elf',
                               local=True, big=True)
 
             mapping.addGlobal('seg_kernel_init', kinit_vbase, kinit_size,
                               'CXW_', vtype='ELF', x=x, y=y, pseg='RAM',
-                              binpath='build/kernel/kernel.elf',
+                              binpath='bin/kernel/kernel.elf',
                               local=True, big=True)
 
@@ -311,10 +311,10 @@
     mapping.addGlobal('seg_kernel_data', kdata_vbase, kdata_size,
                       'CXW_', vtype='ELF', x=0, y=0, pseg='RAM',
-                      binpath='build/kernel/kernel.elf', local=False,
+                      binpath='bin/kernel/kernel.elf', local=False,
                       big=True)
 
     mapping.addGlobal('seg_kernel_uncdata', kuncdata_vbase, kuncdata_size,
                       'CXW_', vtype='ELF', x=0, y=0, pseg='RAM',
-                      binpath='build/kernel/kernel.elf', local=False,
+                      binpath='bin/kernel/kernel.elf', local=False,
                       big=True)
 
Index: /branches/reconfiguration/platforms/tsar_generic_iob/top.cpp
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/top.cpp	(revision 1006)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/top.cpp	(revision 1007)
@@ -151,10 +151,12 @@
 #define almos_archinfo_pathname   "arch-info.bin@0xBFC08000:D"
 
-///////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
 //               Parallelisation
-///////////////////////////////////////////////////
-#define USE_OPENMP _OPENMP
-
-#if USE_OPENMP
+//
+// The _OPENMP flag is defined automatically by the
+// compilation environment when compiling with the OpenMP
+// support
+///////////////////////////////////////////////////////////
+#if _OPENMP
 #include <omp.h>
 #endif
@@ -512,5 +514,5 @@
    std::cout << std::endl;
 
-#if USE_OPENMP
+#if _OPENMP
    omp_set_dynamic(false);
    omp_set_num_threads(threads_nr);
@@ -990,7 +992,8 @@
                                           maptab_iox,
                                           NB_NIC_CHANNELS,
-                                          0,                // mac_4 address
-                                          0,                // mac_2 address
-                                          nicMode );
+                                          0,           // mac_4 address
+                                          0,           // mac_2 address
+                                          nicMode,
+                                          12 );        // Inter Frame Gap
 
    // Chained Buffer DMA controller
@@ -1001,5 +1004,6 @@
                                           IntTab(0, IOX_CDMA_TGT_ID),
                                           64,          // burst size (bytes)
-                                          2*NB_NIC_CHANNELS );
+                                          NB_CMA_CHANNELS,
+                                          4 );         // # pipelined burst
 #else
    VciTargetError<vci_param_ext> merror_nic( "merror_nic",
@@ -1077,5 +1081,5 @@
    TsarCluster* clusters[X_SIZE][Y_SIZE];
 
-#if USE_OPENMP
+#if _OPENMP
 #pragma omp parallel
     {
@@ -1087,5 +1091,5 @@
             size_t y = i % Y_SIZE;
 
-#if USE_OPENMP
+#if _OPENMP
 #pragma omp critical
             {
@@ -1170,9 +1174,9 @@
             );
 
-#if USE_OPENMP
+#if _OPENMP
             } // end critical
 #endif
         } // end for
-#if USE_OPENMP
+#if _OPENMP
     }
 #endif
