Index: trunk/platforms/tsar_generic_leti/arch.py
===================================================================
--- trunk/platforms/tsar_generic_leti/arch.py	(revision 825)
+++ trunk/platforms/tsar_generic_leti/arch.py	(revision 826)
@@ -193,22 +193,36 @@
     tty = mapping.addPeriph( 'TTY', base = tty_base, size = tty_size, ptype = 'TTY', channels = nb_ttys )
 
-    nic = mapping.addPeriph( 'NIC', base = nic_base, size = nic_size, ptype = 'NIC', channels = nb_nics )
-
-    cma = mapping.addPeriph( 'CMA', base = cma_base, size = cma_size, ptype = 'CMA', channels = 2*nb_nics )
-
-    fbf = mapping.addPeriph( 'FBF', base = fbf_base, size = fbf_size, ptype = 'FBF', arg = fbf_width )
-
-    pic = mapping.addPeriph( 'PIC', base = pic_base, size = pic_size, ptype = 'PIC', channels = 32 )
-
-    mapping.addIrq( pic, index = 0 , isrtype = 'ISR_NIC_RX', channel = 0 )
-    mapping.addIrq( pic, index = 1 , isrtype = 'ISR_NIC_RX', channel = 1 )
-    mapping.addIrq( pic, index = 2 , isrtype = 'ISR_NIC_TX', channel = 0 )
-    mapping.addIrq( pic, index = 3 , isrtype = 'ISR_NIC_TX', channel = 1 )
-    mapping.addIrq( pic, index = 4 , isrtype = 'ISR_CMA'   , channel = 0 )
-    mapping.addIrq( pic, index = 5 , isrtype = 'ISR_CMA'   , channel = 1 )
-    mapping.addIrq( pic, index = 6 , isrtype = 'ISR_CMA'   , channel = 2 )
-    mapping.addIrq( pic, index = 7 , isrtype = 'ISR_CMA'   , channel = 3 )
-    mapping.addIrq( pic, index = 8 , isrtype = 'ISR_BDV'   , channel = 0 )
-    mapping.addIrq( pic, index = 16, isrtype = 'ISR_TTY_RX', channel = 0 )
+    if x_io != 0 or y_io != 0:
+        nic = mapping.addPeriph( 'NIC', base = nic_base, size = nic_size, ptype = 'NIC', channels = nb_nics )
+        cma = mapping.addPeriph( 'CMA', base = cma_base, size = cma_size, ptype = 'CMA', channels = 2*nb_nics )
+        fbf = mapping.addPeriph( 'FBF', base = fbf_base, size = fbf_size, ptype = 'FBF', arg = fbf_width )
+        pic = mapping.addPeriph( 'PIC', base = pic_base, size = pic_size, ptype = 'PIC', channels = 32 )
+
+        mapping.addIrq( pic, index = 0 , isrtype = 'ISR_NIC_RX', channel = 0 )
+        mapping.addIrq( pic, index = 1 , isrtype = 'ISR_NIC_RX', channel = 1 )
+        mapping.addIrq( pic, index = 2 , isrtype = 'ISR_NIC_TX', channel = 0 )
+        mapping.addIrq( pic, index = 3 , isrtype = 'ISR_NIC_TX', channel = 1 )
+        mapping.addIrq( pic, index = 4 , isrtype = 'ISR_CMA'   , channel = 0 )
+        mapping.addIrq( pic, index = 5 , isrtype = 'ISR_CMA'   , channel = 1 )
+        mapping.addIrq( pic, index = 6 , isrtype = 'ISR_CMA'   , channel = 2 )
+        mapping.addIrq( pic, index = 7 , isrtype = 'ISR_CMA'   , channel = 3 )
+        mapping.addIrq( pic, index = 8 , isrtype = 'ISR_BDV'   , channel = 0 )
+        mapping.addIrq( pic, index = 16, isrtype = 'ISR_TTY_RX', channel = 0 )
+
+        mapping.addGlobal( 'seg_nic', nic_base, nic_size, '__W_',
+                           vtype = 'PERI', x = 0, y = 0, pseg = 'NIC',
+                           local = False, big = True )
+
+        mapping.addGlobal( 'seg_cma', cma_base, cma_size, '__W_',
+                           vtype = 'PERI', x = 0, y = 0, pseg = 'CMA',
+                           local = False, big = True )
+
+        mapping.addGlobal( 'seg_fbf', fbf_base, fbf_size, '__W_',
+                           vtype = 'PERI', x = 0, y = 0, pseg = 'FBF',
+                           local = False, big = True )
+
+        mapping.addGlobal( 'seg_pic', pic_base, pic_size, '__W_',
+                           vtype = 'PERI', x = 0, y = 0, pseg = 'PIC',
+                           local = False, big = True )
 
     ### hardware components replicated in all clusters
@@ -326,20 +340,4 @@
                        local = False, big = True )
 
-    mapping.addGlobal( 'seg_nic', nic_base, nic_size, '__W_',
-                       vtype = 'PERI', x = 0, y = 0, pseg = 'NIC',
-                       local = False, big = True )
-
-    mapping.addGlobal( 'seg_cma', cma_base, cma_size, '__W_',
-                       vtype = 'PERI', x = 0, y = 0, pseg = 'CMA',
-                       local = False, big = True )
-
-    mapping.addGlobal( 'seg_fbf', fbf_base, fbf_size, '__W_',
-                       vtype = 'PERI', x = 0, y = 0, pseg = 'FBF',
-                       local = False, big = True )
-
-    mapping.addGlobal( 'seg_pic', pic_base, pic_size, '__W_',
-                       vtype = 'PERI', x = 0, y = 0, pseg = 'PIC',
-                       local = False, big = True )
-
     ### global vsegs for internal peripherals : non local / small pages
     ### allocated in all clusters with name indexed by (x,y)
