/*
  * Machine setup..
  */
+static struct resource rodata_resource = {
+       .name   = "Kernel rodata",
+       .start  = 0,
+       .end    = 0,
+       .flags  = IORESOURCE_BUSY | IORESOURCE_SYSTEM_RAM
+};
+
 static struct resource data_resource = {
        .name   = "Kernel data",
        .start  = 0,
 
        code_resource.start = __pa_symbol(_text);
        code_resource.end = __pa_symbol(_etext)-1;
-       data_resource.start = __pa_symbol(_etext);
+       rodata_resource.start = __pa_symbol(__start_rodata);
+       rodata_resource.end = __pa_symbol(__end_rodata)-1;
+       data_resource.start = __pa_symbol(_sdata);
        data_resource.end = __pa_symbol(_edata)-1;
        bss_resource.start = __pa_symbol(__bss_start);
        bss_resource.end = __pa_symbol(__bss_stop)-1;
 
        /* after parse_early_param, so could debug it */
        insert_resource(&iomem_resource, &code_resource);
+       insert_resource(&iomem_resource, &rodata_resource);
        insert_resource(&iomem_resource, &data_resource);
        insert_resource(&iomem_resource, &bss_resource);