diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2007-07-05 18:01:29 +0200 |
---|---|---|
committer | Sascha Hauer <sha@octopus.labnet.pengutronix.de> | 2007-07-05 18:01:29 +0200 |
commit | 708897f52f0d8ea042ccc3b68a5a5b43a162ef66 (patch) | |
tree | b23b906053c21529ba84ca923c09d789f38220a9 /arch/arm | |
parent | cb9dbba45b888992952d212c79f0b4a2abae1a3c (diff) | |
download | barebox-708897f52f0d8ea042ccc3b68a5a5b43a162ef66.tar.gz barebox-708897f52f0d8ea042ccc3b68a5a5b43a162ef66.tar.xz |
svn_rev_165
move arm board.c to generic
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/lib/board.c | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c deleted file mode 100644 index 8dc42ab905..0000000000 --- a/arch/arm/lib/board.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - * (C) Copyright 2002-2006 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Marius Groeger <mgroeger@sysgo.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 - */ - -/* - * To match the U-Boot user interface on ARM platforms to the U-Boot - * standard (as on PPC platforms), some messages with debug character - * are removed from the default U-Boot build. - * - * Define DEBUG here if you want additional info as shown below - * printed upon startup: - * - * U-Boot code: 00F00000 -> 00F3C774 BSS: -> 00FC3274 - * IRQ Stack: 00ebff7c - * FIQ Stack: 00ebef7c - */ - -#include <common.h> -#include <init.h> -#include <command.h> -#include <malloc.h> -#include <devices.h> -#include <version.h> -#include <net.h> -#include <cfi_flash.h> - -ulong load_addr = 0; /* Default Load Address */ - -DECLARE_GLOBAL_DATA_PTR; - -#if (CONFIG_COMMANDS & CFG_CMD_NAND) -void nand_init (void); -#endif - -ulong monitor_flash_len; - -#ifndef CONFIG_IDENT_STRING -#define CONFIG_IDENT_STRING "" -#endif - -const char version_string[] = - U_BOOT_VERSION" (" __DATE__ " - " __TIME__ ")"CONFIG_IDENT_STRING; - -/* - * Begin and End of memory area for malloc(), and current "brk" - */ -static ulong mem_malloc_start = 0; -static ulong mem_malloc_end = 0; -static ulong mem_malloc_brk = 0; - -static void mem_malloc_init (void) -{ - mem_malloc_start = _armboot_start - CFG_MALLOC_LEN; - mem_malloc_end = _armboot_start; - mem_malloc_brk = mem_malloc_start; - - memset ((void *) mem_malloc_start, 0, - mem_malloc_end - mem_malloc_start); -} - -void *sbrk (ptrdiff_t increment) -{ - ulong old = mem_malloc_brk; - ulong new = old + increment; - - if ((new < mem_malloc_start) || (new > mem_malloc_end)) { - return (NULL); - } - mem_malloc_brk = new; - - return ((void *) old); -} - -/************************************************************************ - * Init Utilities * - ************************************************************************ - * Some of this code should be moved into the core functions, - * or dropped completely, - * but let's get it working (again) first... - */ - -static int display_banner (void) -{ - printf ("\n\n%s\n\n", version_string); - debug ("U-Boot code: %08lX -> %08lX BSS: -> %08lX\n", - _armboot_start, _bss_start, _bss_end); -#ifdef CONFIG_USE_IRQ - debug ("IRQ Stack: %08lx\n", IRQ_STACK_START); - debug ("FIQ Stack: %08lx\n", FIQ_STACK_START); -#endif - - return (0); -} - -/* - * Breathe some life into the board... - * - * Initialize a serial port as console, and carry out some hardware - * tests. - * - * The first part of initialization is running from Flash memory; - * its main purpose is to initialize the RAM so that we - * can relocate the monitor code to RAM. - */ - -/* - * All attempts to come up with a "common" initialization sequence - * that works for all boards and architectures failed: some of the - * requirements are just _too_ different. To get rid of the resulting - * mess of board dependent #ifdef'ed code we now make the whole - * initialization sequence configurable to the user. - * - * The requirements for any new initalization function is simple: it - * receives a pointer to the "global data" structure as it's only - * argument, and returns an integer return code, where 0 means - * "continue" and != 0 means "fatal error, hang the system". - */ - -extern initcall_t __u_boot_initcalls_start[], __u_boot_initcalls_end[]; - -void start_armboot (void) -{ - initcall_t *initcall; - int result; - int i = 'a'; - - /* compiler optimization barrier needed for GCC >= 3.4 */ - __asm__ __volatile__("": : :"memory"); - - monitor_flash_len = _bss_start - _armboot_start; - - /* armboot_start is defined in the board-specific linker script */ - mem_malloc_init(); - - serial_init(); /* serial communications setup */ - for (initcall = __u_boot_initcalls_start; initcall < __u_boot_initcalls_end; initcall++) { - result = (*initcall)(); - if (result) - hang(); - } - - display_banner(); - - /* enable exceptions */ - enable_interrupts (); - - /* main_loop() can return to retry autoboot, if so just run it again. */ - for (;;) { - main_loop (); - } - - /* NOTREACHED - no way out of command loop except booting */ -} - -void hang (void) -{ - puts ("### ERROR ### Please RESET the board ###\n"); - for (;;); -} |