Index: /soft/giet_vm/boot/boot.ld
===================================================================
--- /soft/giet_vm/boot/boot.ld	(revision 244)
+++ /soft/giet_vm/boot/boot.ld	(revision 245)
@@ -17,15 +17,12 @@
         *(.boot)
         *(.text)
-
         *(.rodata)
         *(.rodata.*)
-        *(.data)
-        *(.lit8)
-        *(.lit4)
-        *(.sdata)
-        *(.bss)
-        *(COMMON)
-        *(.sbss)
-        *(.scommon)
+    }
+
+    . = seg_boot_data_base;
+    seg_boot_data :
+    {
+        *(.wdata)
     }
 }
Index: /soft/giet_vm/boot/boot_init.c
===================================================================
--- /soft/giet_vm/boot/boot_init.c	(revision 244)
+++ /soft/giet_vm/boot/boot_init.c	(revision 245)
@@ -89,15 +89,21 @@
 
 // Page table addresses arrays
+__attribute__((section (".wdata"))) 
 paddr_t      boot_ptabs_paddr[GIET_NB_VSPACE_MAX];
+
+__attribute__((section (".wdata"))) 
 unsigned int boot_ptabs_vaddr[GIET_NB_VSPACE_MAX];
 
 // Scheduler pointers array (virtual addresses)
+__attribute__((section (".wdata"))) 
 static_scheduler_t* boot_schedulers[NB_CLUSTERS * NB_PROCS_MAX];
 
 // Next free PT2 index array
+__attribute__((section (".wdata"))) 
 unsigned int boot_next_free_pt2[GIET_NB_VSPACE_MAX] =
 { [0 ... GIET_NB_VSPACE_MAX - 1] = 0 };
 
 // Max PT2 index 
+__attribute__((section (".wdata"))) 
 unsigned int boot_max_pt2[GIET_NB_VSPACE_MAX] =
 { [0 ... GIET_NB_VSPACE_MAX - 1] = 0 };
Index: /soft/giet_vm/mappings/4c_1p_40.xml
===================================================================
--- /soft/giet_vm/mappings/4c_1p_40.xml	(revision 244)
+++ /soft/giet_vm/mappings/4c_1p_40.xml	(revision 245)
@@ -23,4 +23,6 @@
             <pseg name = "PSEG_TTY"  type = "PERI" base = "0x00B4000000" length = "0x0000001000" /> 
             <pseg name = "PSEG_NIC"  type = "PERI" base = "0x00B5000000" length = "0x0000021000" />
+            <pseg name = "PSEG_CMA"  type = "PERI" base = "0x00B6000000" length = "0x0000004000" />
+            <pseg name = "PSEG_IOB"  type = "PERI" base = "0x00BE000000" length = "0x0000100000" />
             <pseg name = "PSEG_ROM"  type = "ROM"  base = "0x00BFC00000" length = "0x0000100000" />
 
@@ -46,9 +48,9 @@
             </proc> 
 
-            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "1" /> 
+            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "4" /> 
             <periph type = "XICU" psegname = "PSEG_XICU" channels = "18" />
             <periph type = "IOC"  psegname = "PSEG_IOC"  channels = "1" /> 
             <periph type = "TTY"  psegname = "PSEG_TTY"  channels = "8" /> 
-            <periph type = "NIC"  psegname = "PSEG_NIC"  channels = "8" />
+            <periph type = "NIC"  psegname = "PSEG_NIC"  channels = "2" />
             <periph type = "FBF"  psegname = "PSEG_FBF" />
         </cluster>
@@ -64,5 +66,5 @@
             </proc>
 
-            <periph type = "DMA"  psegname = "PSEG_DMA" channels = "1" />
+            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "4" />
             <periph type = "XICU" psegname = "PSEG_XICU" channels = "2" />
         </cluster>
@@ -78,5 +80,5 @@
             </proc>
 
-            <periph type = "DMA"  psegname = "PSEG_DMA" channels = "1" />
+            <periph type = "DMA"  psegname = "PSEG_DMA"  channels = "4" />
             <periph type = "XICU" psegname = "PSEG_XICU" channels = "2" />
         </cluster>
@@ -92,5 +94,5 @@
             </proc>
 
-            <periph  type = "DMA" psegname = "PSEG_DMA"  channels = "1" />
+            <periph  type = "DMA" psegname = "PSEG_DMA"  channels = "4" />
             <periph type = "XICU" psegname = "PSEG_XICU" channels = "2" />
         </cluster>
@@ -106,9 +108,12 @@
             <vobj name = "boot_code"      type = "ELF" length = "0x00008000" binpath	= "build/boot/boot.elf" />
         </vseg>
-        <vseg name = "seg_boot_mapping"   vbase = "0xBFC08000" mode = "C_W_" clusterid = "0" psegname = "PSEG_ROM" ident = "1" >
+        <vseg name = "seg_boot_data"      vbase = "0x00000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
+            <vobj name = "boot_data"      type = "ELF" length = "0x00001000" binpath	= "build/boot/boot.elf" />
+        </vseg>
+        <vseg name = "seg_boot_stack"     vbase = "0x00001000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
+            <vobj name = "boot_stack"     type = "BUFFER" length = "0x00003000" />
+        </vseg>
+        <vseg name = "seg_boot_mapping"   vbase = "0x00004000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
             <vobj name = "boot_mapping"   type = "BLOB" length  = "0x00004000" binpath	= "map.bin" />
-        </vseg>
-        <vseg name = "seg_boot_stack"     vbase = "0x00000000" mode = "C_W_" clusterid = "0" psegname = "PSEG_RAM" ident = "1" >
-            <vobj name = "boot_stack"     type = "BUFFER" length = "0x00004000" />
         </vseg>
 
Index: /soft/giet_vm/xml/xml_parser.c
===================================================================
--- /soft/giet_vm/xml/xml_parser.c	(revision 244)
+++ /soft/giet_vm/xml/xml_parser.c	(revision 245)
@@ -2212,4 +2212,9 @@
             count++;
         }
+        else if ( strcmp(vseg[vseg_id]->name, "seg_boot_data") == 0 )
+        {
+            ld_write(fdout, "seg_boot_data_base      ",  vseg[vseg_id]->vbase);
+            count++;
+        }
         else if ( strcmp(vseg[vseg_id]->name, "seg_boot_stack") == 0 )
         {
@@ -2243,9 +2248,10 @@
         }
     }
-    if ( count != 7 )
+    if ( count != 8 )
     { 
         printf ("[XML ERROR] Missing Boot or Kernel vseg : only %d\n", count);
         printf ("Mandatory segments are :\n");
         printf (" - seg_boot_code\n");
+        printf (" - seg_boot_data\n");
         printf (" - seg_boot_stack\n");
         printf (" - seg_boot_mapping\n");
