Index: trunk/softs/tsar_boot/README.txt
===================================================================
--- trunk/softs/tsar_boot/README.txt	(revision 546)
+++ trunk/softs/tsar_boot/README.txt	(revision 554)
@@ -54,8 +54,9 @@
              We define two segments:
                 seg_stack_base: Base address of the stack used by processor 0
-                during the boot process.
+                during the boot process. read-write data and bss will also
+		be there.
 
-                seg_boot_base: Base address of the code and data defined for
-                this loader
+                seg_boot_base: Base address of the code and read-only data
+		defined for this loader
             
 Makefile    Makefile for compile the boot loader.
Index: trunk/softs/tsar_boot/conf/platform_fpga_de2-115/ldscript
===================================================================
--- trunk/softs/tsar_boot/conf/platform_fpga_de2-115/ldscript	(revision 546)
+++ trunk/softs/tsar_boot/conf/platform_fpga_de2-115/ldscript	(revision 554)
@@ -19,11 +19,15 @@
         *(.boot)
         *(.reset)
+	*(.rodata)
+	*(.rodata.*)
+	. = ALIGN(0x4);
+	dtb_addr = .;
+	INCLUDE "build/platform.ld";
     }
 
+    . = seg_stack_base;
     .data ALIGN(0x4) : {
-        *(.reset_data)
-        . = ALIGN(0x4);
-        dtb_addr = .;
-        INCLUDE "build/platform.ld";
+        *(.data)
+        *(.bss)
     }
 }
Index: trunk/softs/tsar_boot/conf/platform_tsarv4_mono_mmu_ioc/ldscript
===================================================================
--- trunk/softs/tsar_boot/conf/platform_tsarv4_mono_mmu_ioc/ldscript	(revision 546)
+++ trunk/softs/tsar_boot/conf/platform_tsarv4_mono_mmu_ioc/ldscript	(revision 554)
@@ -19,11 +19,15 @@
         *(.boot)
         *(.reset)
+	*(.rodata)
+	*(.rodata.*)
+	. = ALIGN(0x4);
+	dtb_addr = .;
+	INCLUDE "build/platform.ld";
     }
 
+    . = seg_stack_base;
     .data ALIGN(0x4) : {
-        *(.reset_data)
-        . = ALIGN(0x4);
-        dtb_addr = .;
-        INCLUDE "build/platform.ld";
+        *(.data)
+        *(.bss)
     }
 }
Index: trunk/softs/tsar_boot/conf/platform_vgsb_xicu_mmu/ldscript
===================================================================
--- trunk/softs/tsar_boot/conf/platform_vgsb_xicu_mmu/ldscript	(revision 546)
+++ trunk/softs/tsar_boot/conf/platform_vgsb_xicu_mmu/ldscript	(revision 554)
@@ -19,11 +19,15 @@
         *(.boot)
         *(.reset)
+	*(.rodata)
+	*(.rodata.*)
+	. = ALIGN(0x4);
+	dtb_addr = .;
+	INCLUDE "build/platform.ld";
     }
 
+    . = seg_stack_base;
     .data ALIGN(0x4) : {
-        *(.reset_data)
-        . = ALIGN(0x4);
-        dtb_addr = .;
-        INCLUDE "build/platform.ld";
+        *(.data)
+        *(.bss)
     }
 }
Index: trunk/softs/tsar_boot/src/boot_elf_loader.c
===================================================================
--- trunk/softs/tsar_boot/src/boot_elf_loader.c	(revision 546)
+++ trunk/softs/tsar_boot/src/boot_elf_loader.c	(revision 554)
@@ -17,5 +17,5 @@
 
 #if (BOOT_DEBUG == 1)
-static char* init_state_str[] = {
+static char const * const init_state_str[] = {
     "ELF_HEADER_STATE",
     "ELF_PROGRAM_HEADER_STATE",
Index: trunk/softs/tsar_boot/src/boot_ioc.c
===================================================================
--- trunk/softs/tsar_boot/src/boot_ioc.c	(revision 546)
+++ trunk/softs/tsar_boot/src/boot_ioc.c	(revision 554)
@@ -4,5 +4,5 @@
 
 static struct sdcard_dev  _sdcard_device;
-static struct spi_dev   * _spi_device   = ( struct spi_dev * )IOC_BASE;
+static struct spi_dev   *const  _spi_device   = ( struct spi_dev * )IOC_BASE;
 
 #endif // end ifndef SOCLIB_IOC
Index: trunk/softs/tsar_boot/src/reset.S
===================================================================
--- trunk/softs/tsar_boot/src/reset.S	(revision 546)
+++ trunk/softs/tsar_boot/src/reset.S	(revision 554)
@@ -139,7 +139,5 @@
     /* Initializes stack pointer */
 
-    la      k1,     seg_stack_base
-    li      k0,     BOOT_STACK_SIZE
-    addu    sp,     k1,     k0      /* sp <= seg_stack_base + BOOT_STACK_SIZE */
+    la      sp,     stk
 
     la      a0,     versionstr
@@ -220,4 +218,9 @@
     .set reorder
 
+    .section .data
+    .space BOOT_STACK_SIZE
+stk:
+    .space 1
+
 /*
  * vim: tabstop=4 : shiftwidth=4 : expandtab
