[U-Boot] [PATCH 1/7] MIPS: add unified u-boot.lds file

Andrew Dyer amdyer at gmail.com
Tue Jan 29 21:50:51 CET 2013


On Tue, Jan 29, 2013 at 11:13 AM, Gabor Juhos <juhosg at openwrt.org> wrote:

> 2013.01.29. 11:44 keltezéssel, Daniel Schwierzeck írta:
> > 2013/1/29 Gabor Juhos <juhosg at openwrt.org>:
> >> The patch adds an unified linker script file which
> >> can be used for all currently supported MIPS targets.
> >>
> >> Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
> >> Cc: Daniel Schwierzeck <daniel.schwierzeck at googlemail.com>
> >> Cc: Vlad Lungu <vlad at comsys.ro>
> >> Cc: Thomas Sailer <sailer at scs.ch>
> >> Cc: Stefan Roese <sr at denx.de>
> >> Cc: Wolfgang Denk <wd at denx.de>
> >> Cc: Thomas Lange <thomas at corelatus.se>
> >> Cc: Xiangfu Liu <xiangfu at openmobilefree.net>
> >
> > AFAIK you can remove Vlad Lungu and Thomas Lange from the list of
> > board maintainers
>
> Ok. I will remove Thomas Sailer as well because his e-mail address bounces.
>
> >> ---
> >>  arch/mips/cpu/u-boot.lds |   90
> ++++++++++++++++++++++++++++++++++++++++++++++
> >>  1 file changed, 90 insertions(+)
> >>  create mode 100644 arch/mips/cpu/u-boot.lds
> >>
>
> <...>
>
> >> +OUTPUT_FORMAT(MIPS_FORMAT, MIPS_FORMAT, MIPS_FORMAT)
> >
> > we need to get rid of OUTPUT_FORMAT. This was always misused due to
> > some endianess and toolchain problems which have been resolved in the
> meantime.
> >
> > We should use gcc flags like it is done in linux kernel. The config.mk
> > of mips64 already
> > has those flags. Mips32 and xburst need to be extended with:
> >
> > PLATFORM_CPPFLAGS += -mabi=32 -DCONFIG_32BIT
> > ifdef CONFIG_SYS_BIG_ENDIAN
> > PLATFORM_LDFLAGS  += -m elf32btsmip
> > else
> > PLATFORM_LDFLAGS  += -m elf32ltsmip
> > endif
>
> Makes sense. However I would do that in a separate change. Either before or
> after the current series.
>
> >
> >> +OUTPUT_ARCH(mips)
> >> +ENTRY(_start)
> >> +SECTIONS
> >> +{
> >> +       . = 0x00000000;
> >> +
> >> +       . = ALIGN(4);
> >> +       .text       :
> >> +       {
> >> +         *(.text*)
> >> +       }
> >
> > please fix the style globally to
> >
> > .text : {
> >         *(.text*)
> > }
>
> Ok, will change it.
>
> >
> >> +
> >> +       . = ALIGN(4);
> >> +       .rodata  : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
> >> +
> >> +       . = ALIGN(4);
> >> +       .data  : { *(.data*) }
> >> +
> >> +       . = .;
> >> +       _gp = ALIGN(16) +0x7ff0;
> >> +
> >> +       .got  : {
> >> +               __got_start = .;
> >> +               *(.got)
> >> +               __got_end = .;
> >> +       }
> >> +
> >> +       . = ALIGN(4);
> >> +       .sdata  : { *(.sdata*) }
> >
> > *(.sdata*) should be merged with .data
>
> This is separated in all current linker scripts, so the merge should be
> done in
> a separate patch IMHO.
>

IIRC, If you put .sdata in with .data, you also have to adjust the _gp
initialization so the .sdata section is within the signed 16 bit address
offset allowed.


> >
> >> +
> >> +       . = ALIGN(4);
> >> +       .u_boot_list : {
> >> +               #include <u-boot.lst>
> >> +       }
> >> +
> >> +       uboot_end_data = .;
> >> +
> >> +       num_got_entries = (__got_end - __got_start) >> PTR_COUNT_SHIFT;
> >> +
> >> +       . = ALIGN(4);
> >> +       .sbss  : { *(.sbss*) }
> >> +       .bss : {
> >> +               *(.bss*)
> >> +               . = ALIGN(4);
> >> +       }
> >
> > . = ALIGN(4);
> > .bss : {
> >         *(.bss*)
> >         *(.sbss*)
> >         . = ALIGN(4);
> > }
>
> Same as above.
>
> Thank you for the review!
>
> -Gabor
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>


More information about the U-Boot mailing list