]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/karo/tx51/u-boot.lds
Merge branch 'karo-tx-uboot' into kc-merge
[karo-tx-uboot.git] / board / karo / tx51 / u-boot.lds
index 9180f865518e12ea0ed41a4422ee07544249e1ab..7c9ca893642c0b9c772e04bf53c37aa232db0921 100644 (file)
@@ -24,59 +24,77 @@ OUTPUT_ARCH(arm)
 ENTRY(_start)
 SECTIONS
 {
-        . = 0x00000000;
+       . = 0x00000000;
+       .text :
+       {
+               *(.__image_copy_start)
+               CPUDIR/start.o (.text*)
+               . = 0x400;
+               KEEP(board/karo/tx51/lowlevel_init.o (.text*))
+               *(.text*)
+       }
 
-        . = ALIGN(4);
-        .text :
-        {
-               board/karo/tx51/lowlevel_init.o (.text)
-                __image_copy_start = .;
-                CPUDIR/start.o (.text)
-                *(.text)
-        }
+       . = ALIGN(4);
+       .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
 
-        . = ALIGN(4);
-        .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
+       . = ALIGN(4);
+       .data : {
+               *(.data*)
+       }
 
-        . = ALIGN(4);
-        .data : {
-                *(.data)
-        }
+       . = ALIGN(4);
+       .u_boot_list : {
+               KEEP(*(SORT(.u_boot_list*)));
+       }
 
-        . = ALIGN(4);
+       . = ALIGN(4);
+       .image_copy_end :
+       {
+               *(.__image_copy_end)
+       }
 
-        . = .;
-        __u_boot_cmd_start = .;
-        .u_boot_cmd : { *(.u_boot_cmd) }
-        __u_boot_cmd_end = .;
+       .rel_dyn_start :
+       {
+               *(.__rel_dyn_start)
+       }
 
-        . = ALIGN(4);
+       .rel.dyn :
+       {
+               *(.rel*)
+       }
 
-        __image_copy_end = .;
+       .rel_dyn_end :
+       {
+               *(.__rel_dyn_end)
+       }
 
-        .rel.dyn : {
-                __rel_dyn_start = .;
-                *(.rel*)
-                __rel_dyn_end = .;
-        }
+       _end = .;
 
-        .dynsym : {
-                __dynsym_start = .;
-                *(.dynsym)
-        }
-
-        _end = .;
+/*
+ * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
+ * __bss_base and __bss_limit are for linker only (overlay ordering)
+ */
 
-        .bss __rel_dyn_start (OVERLAY) : {
-                __bss_start = .;
-                *(.bss)
-                 . = ALIGN(4);
-                __bss_end__ = .;
-        }
+       .bss_start __rel_dyn_start (OVERLAY) : {
+               KEEP(*(.__bss_start));
+               __bss_base = .;
+       }
 
-        /DISCARD/ : { *(.dynstr*) }
-        /DISCARD/ : { *(.dynamic*) }
-        /DISCARD/ : { *(.plt*) }
-        /DISCARD/ : { *(.interp*) }
-        /DISCARD/ : { *(.gnu*) }
+       .bss __bss_base (OVERLAY) : {
+               *(.bss*)
+               . = ALIGN(4);
+               __bss_limit = .;
+       }
+       .bss_end __bss_limit (OVERLAY) : {
+               KEEP(*(.__bss_end));
+       }
+       /DISCARD/ : { *(.bss*) }
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynsym*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.hash*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
 }