[U-Boot] [PATCH v2 0/7] MIPS: use an unified u-boot.lds script

This patch-set adds an unfied u-boot.lds file for the MIPS architecture, and removes the linker scripts of the individual boards.
The series depends on the following patch: MIPS: remove OUTPUT_FORMAT from linker scripts http://patchwork.ozlabs.org/patch/216892/
Gabor Juhos (7): MIPS: add unified u-boot.lds file MIPS: qemu-mips: use the unified u-boot.lds script MIPS: pb1x00: remove custom u-boot.lds script MIPS: vct: remove custom u-boot.lds script MIPS: incaip: remove custom u-boot.lds script MIPS: dbau1x00: remove custom u-boot.lds script MIPS: qi_lb60: remove custom u-boot.lds script
arch/mips/cpu/u-boot.lds | 84 +++++++++++++++++++++++++++++++++++++++++ board/dbau1x00/u-boot.lds | 65 ------------------------------- board/incaip/u-boot.lds | 65 ------------------------------- board/micronas/vct/u-boot.lds | 68 --------------------------------- board/pb1x00/u-boot.lds | 65 ------------------------------- board/qemu-mips/u-boot.lds | 70 ---------------------------------- board/qi/qi_lb60/u-boot.lds | 61 ------------------------------ 7 files changed, 84 insertions(+), 394 deletions(-) create mode 100644 arch/mips/cpu/u-boot.lds delete mode 100644 board/dbau1x00/u-boot.lds delete mode 100644 board/incaip/u-boot.lds delete mode 100644 board/micronas/vct/u-boot.lds delete mode 100644 board/pb1x00/u-boot.lds delete mode 100644 board/qemu-mips/u-boot.lds delete mode 100644 board/qi/qi_lb60/u-boot.lds

The patch adds an unified linker script file which can be used for all currently supported MIPS targets.
Signed-off-by: Gabor Juhos juhosg@openwrt.org Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com Cc: Stefan Roese sr@denx.de Cc: Wolfgang Denk wd@denx.de Cc: Xiangfu Liu xiangfu@openmobilefree.net --- Changes since v1: - use consistent coding style for all sections - remove the OUTPUT_FORMAT command from the unified script --- arch/mips/cpu/u-boot.lds | 84 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 arch/mips/cpu/u-boot.lds
diff --git a/arch/mips/cpu/u-boot.lds b/arch/mips/cpu/u-boot.lds new file mode 100644 index 0000000..37c9d23 --- /dev/null +++ b/arch/mips/cpu/u-boot.lds @@ -0,0 +1,84 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk Engineering, wd@denx.de + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#if defined(CONFIG_64BIT) +#define PTR_COUNT_SHIFT 3 +#else +#define PTR_COUNT_SHIFT 2 +#endif + +OUTPUT_ARCH(mips) +ENTRY(_start) +SECTIONS +{ + . = 0x00000000; + + . = ALIGN(4); + .text : { + *(.text*) + } + + . = 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*) + } + + . = 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); + } + uboot_end = .; +}

On 01/30/2013 03:31 PM, Gabor Juhos wrote:
The patch adds an unified linker script file which can be used for all currently supported MIPS targets.
Signed-off-by: Gabor Juhos juhosg@openwrt.org Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com Cc: Stefan Roese sr@denx.de Cc: Wolfgang Denk wd@denx.de Cc: Xiangfu Liu xiangfu@openmobilefree.net
Again, can't test but looks good. Thanks.
Acked-by: Stefan Roese sr@denx.de
Thanks, Stefan

2013.01.30. 15:34 keltezéssel, Stefan Roese írta:
On 01/30/2013 03:31 PM, Gabor Juhos wrote:
The patch adds an unified linker script file which can be used for all currently supported MIPS targets.
Signed-off-by: Gabor Juhos juhosg@openwrt.org Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com Cc: Stefan Roese sr@denx.de Cc: Wolfgang Denk wd@denx.de Cc: Xiangfu Liu xiangfu@openmobilefree.net
Again, can't test but looks good. Thanks.
Acked-by: Stefan Roese sr@denx.de
Thanks!
-Gabor

Remove the board specific linker script. It is not needed anymore, the unified MIPS linker script can be used instead.
All qemu_mips targets are producing identical binary images after the change than before.
Signed-off-by: Gabor Juhos juhosg@openwrt.org Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com --- Changes since v1: --- --- board/qemu-mips/u-boot.lds | 70 -------------------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 board/qemu-mips/u-boot.lds
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds deleted file mode 100644 index 33b42f3..0000000 --- a/board/qemu-mips/u-boot.lds +++ /dev/null @@ -1,70 +0,0 @@ -/* - * (C) Copyright 2003 - * Wolfgang Denk Engineering, wd@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_ARCH(mips) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - *(.text*) - } - - . = 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*) } - - . = ALIGN(4); - .u_boot_list : { - #include <u-boot.lst> - } - - uboot_end_data = .; -#if defined(CONFIG_64BIT) - num_got_entries = (__got_end - __got_start) >> 3; -#else - num_got_entries = (__got_end - __got_start) >> 2; -#endif - - . = ALIGN(4); - .sbss : { *(.sbss*) } - .bss : { *(.bss*) . = ALIGN(4); } - uboot_end = .; -}

Remove the board specific linker script. It is not needed anymore, the unified MIPS linker script can be used instead.
All pb1x00 targets are producing identical binary images after the change than before.
Signed-off-by: Gabor Juhos juhosg@openwrt.org Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com --- Changes since v1: --- --- board/pb1x00/u-boot.lds | 65 ----------------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 board/pb1x00/u-boot.lds
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds deleted file mode 100644 index d9c01af..0000000 --- a/board/pb1x00/u-boot.lds +++ /dev/null @@ -1,65 +0,0 @@ -/* - * (C) Copyright 2003 - * Wolfgang Denk Engineering, wd@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_ARCH(mips) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - *(.text*) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { *(.data*) } - - . = .; - _gp = ALIGN(16) + 0x7ff0; - - .got : { - __got_start = .; - *(.got) - __got_end = .; - } - - .sdata : { *(.sdata*) } - - . = ALIGN(4); - .u_boot_list : { - #include <u-boot.lst> - } - - uboot_end_data = .; - num_got_entries = (__got_end - __got_start) >> 2; - - . = ALIGN(4); - .sbss (NOLOAD) : { *(.sbss*) } - .bss (NOLOAD) : { *(.bss*) . = ALIGN(4); } - uboot_end = .; -}

Remove the board specific linker script. It is not needed anymore, the unified MIPS linker script can be used instead.
All vct targets are producing identical binary images after the change than before.
Signed-off-by: Gabor Juhos juhosg@openwrt.org Acked-by: Stefan Roese sr@denx.de Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com --- Changes since v1: --- --- board/micronas/vct/u-boot.lds | 68 ----------------------------------------- 1 file changed, 68 deletions(-) delete mode 100644 board/micronas/vct/u-boot.lds
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds deleted file mode 100644 index cc7db1b..0000000 --- a/board/micronas/vct/u-boot.lds +++ /dev/null @@ -1,68 +0,0 @@ -/* - * (C) Copyright 2003 - * Wolfgang Denk Engineering, wd@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_ARCH(mips) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - *(.text*) - } - - . = 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*) } - - . = ALIGN(4); - .u_boot_list : { - #include <u-boot.lst> - } - - . = ALIGN(4); - uboot_end_data = .; - num_got_entries = (__got_end - __got_start) >> 2; - - . = ALIGN(4); - .sbss (NOLOAD) : { *(.sbss*) } - . = ALIGN(4); - .bss (NOLOAD) : { *(.bss*) } - uboot_end = .; -}

Remove the board specific linker script. It is not needed anymore, the unified MIPS linker script can be used instead.
All incaip targets are producing identical binary images after the change than before.
Signed-off-by: Gabor Juhos juhosg@openwrt.org Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com Cc: Wolfgang Denk wd@denx.de --- Changes since v1: --- --- board/incaip/u-boot.lds | 65 ----------------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 board/incaip/u-boot.lds
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds deleted file mode 100644 index d9c01af..0000000 --- a/board/incaip/u-boot.lds +++ /dev/null @@ -1,65 +0,0 @@ -/* - * (C) Copyright 2003 - * Wolfgang Denk Engineering, wd@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_ARCH(mips) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - *(.text*) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { *(.data*) } - - . = .; - _gp = ALIGN(16) + 0x7ff0; - - .got : { - __got_start = .; - *(.got) - __got_end = .; - } - - .sdata : { *(.sdata*) } - - . = ALIGN(4); - .u_boot_list : { - #include <u-boot.lst> - } - - uboot_end_data = .; - num_got_entries = (__got_end - __got_start) >> 2; - - . = ALIGN(4); - .sbss (NOLOAD) : { *(.sbss*) } - .bss (NOLOAD) : { *(.bss*) . = ALIGN(4); } - uboot_end = .; -}

Remove the board specific linker script. It is not needed anymore, the unified MIPS linker script can be used instead.
All dbau1x00 targets are producing identical binary images after the change than before.
Signed-off-by: Gabor Juhos juhosg@openwrt.org Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com --- Changes since v1: --- --- board/dbau1x00/u-boot.lds | 65 --------------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 board/dbau1x00/u-boot.lds
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds deleted file mode 100644 index d9c01af..0000000 --- a/board/dbau1x00/u-boot.lds +++ /dev/null @@ -1,65 +0,0 @@ -/* - * (C) Copyright 2003 - * Wolfgang Denk Engineering, wd@denx.de - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_ARCH(mips) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - *(.text*) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { *(.data*) } - - . = .; - _gp = ALIGN(16) + 0x7ff0; - - .got : { - __got_start = .; - *(.got) - __got_end = .; - } - - .sdata : { *(.sdata*) } - - . = ALIGN(4); - .u_boot_list : { - #include <u-boot.lst> - } - - uboot_end_data = .; - num_got_entries = (__got_end - __got_start) >> 2; - - . = ALIGN(4); - .sbss (NOLOAD) : { *(.sbss*) } - .bss (NOLOAD) : { *(.bss*) . = ALIGN(4); } - uboot_end = .; -}

Remove the board specific linker script. It is not needed anymore, the unified MIPS linker script can be used instead.
The qi_lb60 target produces a slightly different image after the change than before. The value of 'num_got_entries' symbol is different:
@@ -49,7 +49,7 @@ 801000b4: 80122d00 lb s2,11520(zero) 801000b8: 80123500 lb s2,13568(zero) 801000bc: 80123ef8 lb s2,16120(zero) -801000c0: 00000139 0x139 +801000c0: 00000136 tne zero,zero,0x4
801000c4 <in_ram>: 801000c4: 8d0bfffc lw t3,-4(t0)
This is caused by the different placement of the '__got_start' and '__got_end' symbols between the board specific scrip and the unified script.
board specific script:
__got_start = .; .got : { *(.got) } __got_end = .;
unified script: .got : { __got_start = .; *(.got) __got_end = .; }
Despite this difference, the resulting images are functionally identical.
Signed-off-by: Gabor Juhos juhosg@openwrt.org Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com Cc: Xiangfu Liu xiangfu@openmobilefree.net --- Changes since v1: --- --- board/qi/qi_lb60/u-boot.lds | 61 ------------------------------------------- 1 file changed, 61 deletions(-) delete mode 100644 board/qi/qi_lb60/u-boot.lds
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds deleted file mode 100644 index d074a27..0000000 --- a/board/qi/qi_lb60/u-boot.lds +++ /dev/null @@ -1,61 +0,0 @@ -/* - * (C) Copyright 2006 - * Ingenic Semiconductor, jlwei@ingenic.cn - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -OUTPUT_ARCH(mips) -ENTRY(_start) -SECTIONS -{ - . = 0x00000000; - - . = ALIGN(4); - .text : - { - *(.text*) - } - - . = ALIGN(4); - .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } - - . = ALIGN(4); - .data : { *(.data*) } - - . = .; - _gp = ALIGN(16) + 0x7ff0; - - __got_start = .; - .got : { *(.got) } - __got_end = .; - - .sdata : { *(.sdata*) } - - - . = ALIGN(4); - .u_boot_list : { - #include <u-boot.lst> - } - - uboot_end_data = .; - num_got_entries = (__got_end - __got_start) >> 2; - - . = ALIGN(4); - .sbss : { *(.sbss*) } - .bss : { *(.bss*) . = ALIGN(4); } - uboot_end = .; -}
participants (2)
-
Gabor Juhos
-
Stefan Roese