[U-Boot] [PATCH v2] nios2: link to CONFIG_SYS_MONITOR_BASE and remove text_base hook

Thomas Chou thomas at wytron.com.tw
Thu Aug 28 11:35:04 CEST 2014


This patch changes the link script to base at CONFIG_SYS_MONITOR_BASE.
Then we can remove the text_base hook in nios2-generic board.

Signed-off-by: Thomas Chou <thomas at wytron.com.tw>
---

Changes in v2:
- Remove text_base_hook() proto in nios2-generic.c

 arch/nios2/cpu/u-boot.lds                  |    2 +
 board/altera/nios2-generic/Makefile        |    1 -
 board/altera/nios2-generic/nios2-generic.c |    3 -
 board/altera/nios2-generic/text_base.S     |   21 -----
 board/altera/nios2-generic/u-boot.lds      |  118 ----------------------------
 5 files changed, 2 insertions(+), 143 deletions(-)
 delete mode 100644 board/altera/nios2-generic/text_base.S
 delete mode 100644 board/altera/nios2-generic/u-boot.lds

diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index be92e8e..6e174be 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -5,6 +5,7 @@
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
+#include <config.h>
 
 OUTPUT_FORMAT("elf32-littlenios2")
 OUTPUT_ARCH(nios2)
@@ -12,6 +13,7 @@ ENTRY(_start)
 
 SECTIONS
 {
+	. = CONFIG_SYS_MONITOR_BASE;
 	.text :
 	{
 	  arch/nios2/cpu/start.o (.text)
diff --git a/board/altera/nios2-generic/Makefile b/board/altera/nios2-generic/Makefile
index d3c5b43..5e4192c 100644
--- a/board/altera/nios2-generic/Makefile
+++ b/board/altera/nios2-generic/Makefile
@@ -8,4 +8,3 @@
 
 obj-y	:= nios2-generic.o
 obj-$(CONFIG_CMD_IDE) += ../common/cfide.o
-obj-y	+= text_base.o
diff --git a/board/altera/nios2-generic/nios2-generic.c b/board/altera/nios2-generic/nios2-generic.c
index 5ab9471..834cbeb 100644
--- a/board/altera/nios2-generic/nios2-generic.c
+++ b/board/altera/nios2-generic/nios2-generic.c
@@ -14,8 +14,6 @@
 #include <asm/io.h>
 #include <asm/gpio.h>
 
-void text_base_hook(void); /* nop hook for text_base.S */
-
 #if defined(CONFIG_ENV_IS_IN_FLASH) && defined(CONFIG_ENV_ADDR) && \
     defined(CONFIG_CFI_FLASH_MTD)
 static void __early_flash_cmd_reset(void)
@@ -30,7 +28,6 @@ void early_flash_cmd_reset(void)
 
 int board_early_init_f(void)
 {
-	text_base_hook();
 #ifdef CONFIG_ALTERA_PIO
 #ifdef LED_PIO_BASE
 	altera_pio_init(LED_PIO_BASE, LED_PIO_WIDTH, 'o',
diff --git a/board/altera/nios2-generic/text_base.S b/board/altera/nios2-generic/text_base.S
deleted file mode 100644
index f236db1..0000000
--- a/board/altera/nios2-generic/text_base.S
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * text_base
- *
- * (C) Copyright 2010, Thomas Chou <thomas at wytron.com.tw>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <config.h>
-
-#ifdef CONFIG_SYS_MONITOR_BASE
-	.text
-	/* text base used in link script u-boot.lds */
-	.global text_base
-	.equ text_base,CONFIG_SYS_MONITOR_BASE
-	/* dummy func to let linker include this file */
-	.global text_base_hook
-text_base_hook:
-	ret
-#endif
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
deleted file mode 100644
index e35fae5..0000000
--- a/board/altera/nios2-generic/u-boot.lds
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * (C) Copyright 2004, Psyent Corporation <www.psyent.com>
- * Scott McNutt <smcnutt at psyent.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-
-
-OUTPUT_FORMAT("elf32-littlenios2")
-OUTPUT_ARCH(nios2)
-ENTRY(_start)
-
-SECTIONS
-{
-	. = text_base;
-	.text :
-	{
-	  arch/nios2/cpu/start.o (.text)
-	  *(.text)
-	  *(.text.*)
-	  *(.gnu.linkonce.t*)
-	  *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-	  *(.gnu.linkonce.r*)
-	}
-	. = ALIGN (4);
-	_etext = .;
-	PROVIDE (etext = .);
-
-	/* CMD TABLE - sandwich this in between text and data so
-	 * the initialization code relocates the command table as
-	 * well -- admittedly, this is just pure laziness ;-)
-	 */
-
-	. = ALIGN(4);
-	.u_boot_list : {
-		KEEP(*(SORT(.u_boot_list*)));
-	}
-
-	/* INIT DATA sections - "Small" data (see the gcc -G option)
-	 * is always gp-relative. Here we make all init data sections
-	 * adjacent to simplify the startup code -- and provide
-	 * the global pointer for gp-relative access.
-	 */
-	_data = .;
-	.data :
-	{
-	  *(.data)
-	  *(.data.*)
-	  *(.gnu.linkonce.d*)
-	}
-
-	. = ALIGN(16);
-	_gp = .;			/* Global pointer addr */
-	PROVIDE (gp = .);
-
-	.sdata :
-	{
-	  *(.sdata)
-	  *(.sdata.*)
-	  *(.gnu.linkonce.s.*)
-	}
-	. = ALIGN(4);
-
-	_edata = .;
-	PROVIDE (edata = .);
-
-	/* UNINIT DATA - Small uninitialized data is first so it's
-	 * adjacent to sdata and can be referenced via gp. The normal
-	 * bss follows. We keep it adjacent to simplify init code.
-	 */
-	__bss_start = .;
-	.sbss (NOLOAD) :
-	{
-	  *(.sbss)
-	  *(.sbss.*)
-	  *(.gnu.linkonce.sb.*)
-	  *(.scommon)
-	}
-	. = ALIGN(4);
-	.bss (NOLOAD) :
-	{
-	  *(.bss)
-	  *(.bss.*)
-	  *(.dynbss)
-	  *(COMMON)
-	  *(.scommon)
-	}
-	. = ALIGN(4);
-	__bss_end = .;
-	PROVIDE (end = .);
-
-	/* DEBUG -- symbol table, string table, etc. etc.
-	 */
-	.stab 0 : { *(.stab) }
-	.stabstr 0 : { *(.stabstr) }
-	.stab.excl 0 : { *(.stab.excl) }
-	.stab.exclstr 0 : { *(.stab.exclstr) }
-	.stab.index 0 : { *(.stab.index) }
-	.stab.indexstr 0 : { *(.stab.indexstr) }
-	.comment 0 : { *(.comment) }
-	.debug		0 : { *(.debug) }
-	.line		0 : { *(.line) }
-	.debug_srcinfo	0 : { *(.debug_srcinfo) }
-	.debug_sfnames	0 : { *(.debug_sfnames) }
-	.debug_aranges	0 : { *(.debug_aranges) }
-	.debug_pubnames 0 : { *(.debug_pubnames) }
-	.debug_info	0 : { *(.debug_info) }
-	.debug_abbrev	0 : { *(.debug_abbrev) }
-	.debug_line	0 : { *(.debug_line) }
-	.debug_frame	0 : { *(.debug_frame) }
-	.debug_str	0 : { *(.debug_str) }
-	.debug_loc	0 : { *(.debug_loc) }
-	.debug_macinfo	0 : { *(.debug_macinfo) }
-	.debug_weaknames 0 : { *(.debug_weaknames) }
-	.debug_funcnames 0 : { *(.debug_funcnames) }
-	.debug_typenames 0 : { *(.debug_typenames) }
-	.debug_varnames	 0 : { *(.debug_varnames) }
-}
-- 
1.7.1



More information about the U-Boot mailing list