Move data objects at the end of flash.
[gnuk/gnuk.git] / src / gnuk.ld.in
index 6283d7d..cb65772 100644 (file)
@@ -3,8 +3,8 @@
  */
 __main_stack_size__      = 0x0080;      /* Exception handlers     */
 __process0_stack_size__  = 0x0100;      /* main */
-__process1_stack_size__  = 0x0180;      /* ccid */
-__process2_stack_size__  = 0x0160;      /* rng */
+__process1_stack_size__  = 0x01a0;      /* ccid */
+__process2_stack_size__  = 0x0180;      /* rng */
 __process3_stack_size__  = 0x1640;      /* gpg */
 __process4_stack_size__  = 0;           /* --- */
 __process5_stack_size__  = @MSC_SIZE@;  /* msc */
@@ -34,10 +34,10 @@ SECTIONS
        KEEP(*(.sys.version))
        KEEP(*(.sys.board_id))
        KEEP(*(.sys.board_name))
-       build/sys.o(.text)
-       build/sys.o(.text.*)
-       build/sys.o(.rodata)
-       build/sys.o(.rodata.*)
+       build/sys-*.o(.text)
+       build/sys-*.o(.text.*)
+       build/sys-*.o(.rodata)
+       build/sys-*.o(.rodata.*)
        . = ALIGN(1024);
        *(.sys.0)
        *(.sys.1)
@@ -171,10 +171,6 @@ SECTIONS
     .gnuk_flash :
     {
         . = ALIGN (@FLASH_PAGE_SIZE@);
-        _data_pool = .;
-        KEEP(*(.gnuk_data))
-        . = ALIGN(@FLASH_PAGE_SIZE@);
-        . += @FLASH_PAGE_SIZE@;
         _keystore_pool = .;
         . += 512;
         . = ALIGN(@FLASH_PAGE_SIZE@);
@@ -185,6 +181,10 @@ SECTIONS
         _updatekey_store = .;
         . += 1024;
         . = ALIGN(@FLASH_PAGE_SIZE@);
+        _data_pool = .;
+        KEEP(*(.gnuk_data))
+        . = ALIGN(@FLASH_PAGE_SIZE@);
+        . += @FLASH_PAGE_SIZE@;
     } > flash =0xffffffff
 }