X-Git-Url: http://rtime.felk.cvut.cz/gitweb/arc.git/blobdiff_plain/0d44d005276bbdfa60c2365f7055f37bbf332bb1..c2149e2a2b877007e2b34558fb580346dd0ad9a4:/arch/ppc/mpc55xx/scripts/linkscript_gcc.ldf diff --git a/arch/ppc/mpc55xx/scripts/linkscript_gcc.ldf b/arch/ppc/mpc55xx/scripts/linkscript_gcc.ldf index 945bbbcc..146e6443 100644 --- a/arch/ppc/mpc55xx/scripts/linkscript_gcc.ldf +++ b/arch/ppc/mpc55xx/scripts/linkscript_gcc.ldf @@ -45,6 +45,8 @@ MEMORY SECTIONS { + +#if 0 /* __CALIB_RAM_START, __CALIB_RAM_END, __CALIB_ROM_START are needed by the a2l and the rte generator. CALIBRATION_ENABLED, CALIBRATION_INITIALIZED_RAM, CALIBRATION_FLS_START are generated by rte */ @@ -93,11 +95,13 @@ __FLS_PROG_START__ = 0x20000; /* Must be aligned to a sector start. */ __FLS_PROG_START__ = 0; /* Must be aligned to a sector start. */ #endif +#if !defined(CFG_BOOT) .rcw __FLS_PROG_START__ : { *(.rcw) } > flash - - +#endif +#endif .text : { + crt0.o(.text); *(.text .text.* .init .fini* .eini* .gnu.linkonce* .gnu.warning); PROVIDE( btask_sup_matrix = .); SORT(*)(.test_btask); @@ -120,21 +124,23 @@ __FLS_PROG_START__ = 0; /* Must be aligned to a sector start. */ } > flash /* Read-only data section. */ - .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } > flash + .rodata : { + *(.rodata .rodata.* .gnu.linkonce.r.*); + *(.got.plt) *(.got) + } > flash /* initialized read-only small data section. */ .sdata2 : { _SDA2_BASE_ = .; /* r2 */ *(.sdata2 .sdata2.* .gnu.linkonce.s2.*); *(PPC.EMB.sdata2 .PPC.EMB.sbss2) + . = ALIGN(0x10); } > flash - /* uninitialized read-only small data section. */ .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*); __TEXT_END = .; - . = . + ALIGN(8); } > flash #if defined(CFG_MPC5516) @@ -148,18 +154,16 @@ __FLS_PROG_START__ = 0; /* Must be aligned to a sector start. */ .data : { - . = . + ALIGN(4); __DATA_RAM = .; *(.data .data.* .gnu.linkonce.d.* .gnu.linkonce.r.* .eh_frame) + . = ALIGN(0x10); } > ram AT> flash .sdata : { - . = . + ALIGN(4); __SDATA_START__ = .; _SDA_BASE_ = .; /* r13 */ *(.sdata .sdata.* .gnu.linkonce.s.*) *(PPC.EMB.sdata2 .PPC.EMB.sbss2) - . = . + ALIGN(8); __DATA_END = .; } > ram AT> flash @@ -171,33 +175,19 @@ __FLS_PROG_START__ = 0; /* Must be aligned to a sector start. */ _end = .; } > ram - .got2 ALIGN(0x10): - { - . = . + ALIGN(16); - *(.got2); - . = . + ALIGN(8); - } > ram - .fixup : - { - . = . + ALIGN(16); - *(.fixup); - . = . + ALIGN(8); - } > ram .t32_outport ALIGN(0x10): { *(.t32_outport); } > ram - - .got : AT(ALIGN(LOADADDR(.sdata)+SIZEOF(.sdata),4)) - { - *(.got.plt) *(.got) - } > ram - - .bss : AT(ADDR(.bss)) - { + + .bss (NOLOAD) : + { + *(.got2); + *(.fixup); *(.bss .bss.* COMMON .gnu.linkonce.b.*); __BSS_END = .; } > ram + .init_stack ALIGN(16) (NOLOAD) : { __SP_END = .; @@ -215,7 +205,7 @@ __FLS_PROG_START__ = 0; /* Must be aligned to a sector start. */ KEEP (*(SORT(.ctors.*))) } -.uninit ALIGN(0x10): { *(.winidea_port .ramlog .dem_eventmemory_pri) ; } > ram +.uninit ALIGN(0x10) (NOLOAD) : { *(.winidea_port .ramlog .dem_eventmemory_pri) ; } > ram /* Always place last in RAM */ .heap ALIGN(0x4): { @@ -280,12 +270,12 @@ __BSS_START = ADDR(.sbss); /* __SBSS_END__ = ADDR(.sbss) + SIZEOF(.sbss); */ __SDATA2_START__ = ADDR(.sdata2); __SBSS2_END__ = ADDR(.sbss2) + SIZEOF(.sbss2); -__GOT_START__ = ADDR(.got); -__GOT_END__ = ADDR(.got) + SIZEOF(.got); -__GOT2_START__ = ADDR(.got2); -__GOT2_END__ = ADDR(.got2) + SIZEOF(.got2); -__FIXUP_START__ = ADDR(.fixup); -__FIXUP_END__ = ADDR(.fixup) + SIZEOF(.fixup); +//__GOT_START__ = ADDR(.got); +//__GOT_END__ = ADDR(.got) + SIZEOF(.got); +//__GOT2_START__ = ADDR(.got2); +//__GOT2_END__ = ADDR(.got2) + SIZEOF(.got2); +//__FIXUP_START__ = ADDR(.fixup); +//__FIXUP_END__ = ADDR(.fixup) + SIZEOF(.fixup); __EXCEPT_START__ = 0x0; __EXCEPT_END__ = 0x0;