]> rtime.felk.cvut.cz Git - sysless.git/blobdiff - board/h8300/h8canusb/libs/h8canusb.ld-boot
h8300: Yet another update of bloader
[sysless.git] / board / h8300 / h8canusb / libs / h8canusb.ld-boot
index 97e3292b51865304ce7537f52e2e817c9639db73..b50ec7da2b0d422a5a2db7b2cbbf785ca7508201 100644 (file)
@@ -3,35 +3,51 @@
 INCLUDE "h8canusb.ld-cfg"
 
 PROVIDE( ___stack_top = ( __iram0_end & ~ 3 ) - 4 );
+/*PROVIDE( ___setup_board = _start);*/
 
 STARTUP(crt0.o)
+INPUT(bsp0common.o)
+INPUT(bsp0hwinit.o setup_board.o)
 
 SECTIONS
 {
        .fvector :
        {
          ___flashbb_vector = . ;
-         LONG( ABSOLUTE( _start ) )
+         LONG( ABSOLUTE( ___setup_board ) )
          *(.fvector)
        } > flashvec
        
+       .shadreg (NOLOAD) :
+       {
+         *(.shadreg)
+         . = ALIGN( 0x4 ) ;
+       } > iram0
+
+       .text.boot_fn ALIGN(4) :
+       {
+         . = ALIGN( 0x4 ) ;
+          KEEP (boot_fn.o(.text))
+         KEEP (boot_fn.o(.rodata))
+         KEEP (boot_fn.o(.strings))
+         . = ALIGN( 4 ) ;
+       } > iram0 AT>flashbb
+       ___boot_fn_start = ADDR(.text.boot_fn);
+       ___boot_fn_end   = ADDR(.text.boot_fn) + SIZEOF(.text.boot_fn);
+       ___boot_fn_load  = LOADADDR(.text.boot_fn);
+
         .text :
        {
          text_start = . ;
          KEEP (crt0.o(.text))
-         . = ALIGN( 4 ) ;
-         ___boot_fn_start = ALIGN( 0x4 ) ;
-          KEEP (*boot_fn.o(.text))
-         KEEP (*boot_fn.o(.rodata))
-         . = ALIGN( 4 ) ;
-         ___boot_fn_end = ALIGN( 0x4 ) ;
           *(.text)
          *(.rodata)                            
+         *(.text .stub .text.* .gnu.linkonce.t.*)
+         *(.rodata .rodata.* .gnu.linkonce.r.*)
          *(.strings)
          . = ALIGN( 0x4 ) ;
          _etext = ALIGN( 0x4 ) ;
         } > flashbb
-
        .tors : 
        {
          ___ctors = . ;
@@ -69,13 +85,41 @@ SECTIONS
          _usrprog_start = . ;
        } > flashusr
 
-       .stab  0 (NOLOAD) : 
-       {
-         [ .stab ]
-       }
-
-       .stabstr  0 (NOLOAD) :
-       {
-         [ .stabstr ]
-       }
+       /* Stabs debugging sections.  */
+       .stab          0 (NOLOAD): { *(.stab) }
+       .stabstr       0 (NOLOAD): { *(.stabstr) }
+       .stab.excl     0 (NOLOAD): { *(.stab.excl) }
+       .stab.exclstr  0 (NOLOAD): { *(.stab.exclstr) }
+       .stab.index    0 (NOLOAD): { *(.stab.index) }
+       .stab.indexstr 0 (NOLOAD): { *(.stab.indexstr) }
+       .comment       0 (NOLOAD): { *(.comment) }
+       /* DWARF debug sections.
+          Symbols in the DWARF debugging sections are relative to the beginning
+          of the section so we begin them at 0.  */
+       /* DWARF 1 */
+       .debug          0 (NOLOAD): { *(.debug) }
+       .line           0 (NOLOAD): { *(.line) }
+       /* GNU DWARF 1 extensions */
+       .debug_srcinfo  0 (NOLOAD): { *(.debug_srcinfo) }
+       .debug_sfnames  0 (NOLOAD): { *(.debug_sfnames) }
+       /* DWARF 1.1 and DWARF 2 */
+       .debug_aranges  0 (NOLOAD): { *(.debug_aranges) }
+       .debug_pubnames 0 (NOLOAD): { *(.debug_pubnames) }
+       /* DWARF 2 */
+       .debug_info     0 (NOLOAD): { *(.debug_info .gnu.linkonce.wi.*) }
+       .debug_abbrev   0 (NOLOAD): { *(.debug_abbrev) }
+       .debug_line     0 (NOLOAD): { *(.debug_line) }
+       .debug_frame    0 (NOLOAD): { *(.debug_frame) }
+       .debug_str      0 (NOLOAD): { *(.debug_str) }
+       .debug_loc      0 (NOLOAD): { *(.debug_loc) }
+       .debug_macinfo  0 (NOLOAD): { *(.debug_macinfo) }
+       /* SGI/MIPS DWARF 2 extensions */
+       .debug_weaknames 0 (NOLOAD): { *(.debug_weaknames) }
+       .debug_funcnames 0 (NOLOAD): { *(.debug_funcnames) }
+       .debug_typenames 0 (NOLOAD): { *(.debug_typenames) }
+       .debug_varnames  0 (NOLOAD): { *(.debug_varnames) }
+       /* DWARF 3 */
+       .debug_pubtypes 0 (NOLOAD): { *(.debug_pubtypes) }
+       .debug_ranges   0 (NOLOAD): { *(.debug_ranges) }
+       .gnu.attributes 0 (NOLOAD): { KEEP (*(.gnu.attributes)) }
 }