summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorThomas Chou <thomas@wytron.com.tw>2012-04-23 10:55:02 +0800
committerThomas Chou <thomas@wytron.com.tw>2012-07-16 09:51:12 +0800
commit7dfb0602915447d10d89096634be7e9d15925eb3 (patch)
treebec0816e1ab3861d0cf735325893fc76d63df77f /arch
parent0b15d51ed07db4c318d9c6b02b394ba5a3bc4296 (diff)
nios2: move gd and bd into BSS
As suggested by Graeme Russ, move gd and bd data structrures to BSS instead of calculating the locations around the stack and heap. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Acked-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/nios2/lib/board.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/arch/nios2/lib/board.c b/arch/nios2/lib/board.c
index ca8a3e52462..1e495d442dc 100644
--- a/arch/nios2/lib/board.c
+++ b/arch/nios2/lib/board.c
@@ -87,17 +87,15 @@ void board_init (void)
{
bd_t *bd;
init_fnc_t **init_fnc_ptr;
+ static gd_t gd_data;
+ static bd_t bd_data;
- /* Pointer is writable since we allocated a register for it.
- * Nios treats CONFIG_SYS_GBL_DATA_OFFSET as an address.
- */
- gd = (gd_t *)CONFIG_SYS_GBL_DATA_OFFSET;
+ /* Pointer is writable since we allocated a register for it. */
+ gd = &gd_data;
/* compiler optimization barrier needed for GCC >= 3.4 */
__asm__ __volatile__("": : :"memory");
- memset( gd, 0, GENERATED_GBL_DATA_SIZE );
-
- gd->bd = (bd_t *)(gd+1); /* At end of global data */
+ gd->bd = &bd_data;
gd->baudrate = CONFIG_BAUDRATE;
gd->cpu_clk = CONFIG_SYS_CLK_FREQ;