summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2007-07-05 18:01:24 +0200
committerSascha Hauer <sha@octopus.labnet.pengutronix.de>2007-07-05 18:01:24 +0200
commit658cc34395e3780dc46d6ffdc61c95130d362661 (patch)
tree2a56eb0438b75e2ddc44970ff8be4d7af97e65fa /arch/arm
parent873c1d746ea291cdf0b73dbcc1f7f289984472f2 (diff)
downloadbarebox-658cc34395e3780dc46d6ffdc61c95130d362661.tar.gz
barebox-658cc34395e3780dc46d6ffdc61c95130d362661.tar.xz
svn_rev_118
thousands of things
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/Kconfig14
-rw-r--r--arch/arm/Makefile3
-rw-r--r--arch/arm/lib/board.c78
3 files changed, 27 insertions, 68 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a193ef0fae..78a2a8a7dc 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1,4 +1,10 @@
+config TEXT_BASE
+ string
+ default "0x08f00000" if MACH_MX1ADS
+ default "0x08f80000" if MACH_SCB9328
+ default "0x21e00000" if MACH_ECO920
+
config ARM920T
bool
@@ -20,6 +26,14 @@ config MACH_MX1ADS
help
Say Y here if you are using the Motorola MX1ADS board
+config MACH_SCB9328
+ bool "Syntertronixx scb9328"
+ select HAS_DM9000
+ select HAS_CFI
+ select ARCH_IMX
+ help
+ Say Y here if you are using the Synertronixx scb9328 board
+
config MACH_ECO920
bool "eco920"
select HAS_AT91_ETHER
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index ea3700b11f..0089d5012d 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -8,9 +8,10 @@ machine-$(CONFIG_ARCH_IMX) := imx
machine-$(CONFIG_ARCH_AT91RM9200) := at91rm9200
board-$(CONFIG_MACH_MX1ADS) := mx1ads
board-$(CONFIG_MACH_ECO920) := eco920
+board-$(CONFIG_MACH_SCB9328) := scb9328
cpu-$(CONFIG_ARM920T) := arm920t
-TEXT_BASE = 0x21e00000
+TEXT_BASE = $(CONFIG_TEXT_BASE)
CPPFLAGS += -mabi=apcs-gnu -DTEXT_BASE=$(TEXT_BASE)
CFLAGS := -fno-common -msoft-float -Os
diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index e930a82608..52241a8a1c 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -46,7 +46,7 @@
#include <net.h>
#include <cfi_flash.h>
-ulong load_addr = CFG_LOAD_ADDR; /* Default Load Address */
+ulong load_addr = 0; /* Default Load Address */
DECLARE_GLOBAL_DATA_PTR;
@@ -147,22 +147,6 @@ static int display_dram_config (void)
return (0);
}
-#ifndef CFG_NO_FLASH
-extern flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
-
-static void display_flash_config (ulong size)
-{
- int i;
-
- puts ("Flash Configuration:\n");
- for(i=0; i<CFG_MAX_FLASH_BANKS; i++) {
- printf ("Bank #%d: 0x%08lx ", i, flash_info[i].start[0]);
- print_size (flash_info[i].size, "\n");
- }
-}
-#endif /* CFG_NO_FLASH */
-
-
/*
* Breathe some life into the board...
*
@@ -189,6 +173,7 @@ static void display_flash_config (ulong size)
typedef int (init_fnc_t) (void);
extern int mem_init(void);
+extern int partition_init(void);
int print_cpuinfo (void); /* test-only */
@@ -203,6 +188,7 @@ init_fnc_t *init_sequence[] = {
#ifdef CONFIG_DRIVER_CFI
flash_init,
#endif
+ partition_init,
#ifdef CONFIG_CMD_MEMORY
mem_init,
#endif
@@ -221,15 +207,11 @@ init_fnc_t *init_sequence[] = {
void start_armboot (void)
{
init_fnc_t **init_fnc_ptr;
- char *s;
-#ifndef CFG_NO_FLASH
- ulong size;
-#endif
#if defined(CONFIG_VFD) || defined(CONFIG_LCD)
unsigned long addr;
#endif
- /* Pointer is writable since we allocated a register for it */
+ /* Pointer is writable since we allocated a register for it */
gd = (gd_t*)(_armboot_start - CFG_MALLOC_LEN - sizeof(gd_t));
/* compiler optimization barrier needed for GCC >= 3.4 */
__asm__ __volatile__("": : :"memory");
@@ -240,46 +222,16 @@ void start_armboot (void)
monitor_flash_len = _bss_start - _armboot_start;
+ /* armboot_start is defined in the board-specific linker script */
+ mem_malloc_init (_armboot_start - CFG_MALLOC_LEN);
+
for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
- if ((*init_fnc_ptr)() != 0) {
+// serial_putc(i++ + 'a');
+ if ((*init_fnc_ptr)() != 0) {
hang ();
}
}
-#ifndef CFG_NO_FLASH
- /* configure available FLASH banks */
-// display_flash_config (size);
-#endif /* CFG_NO_FLASH */
-
-#ifdef CONFIG_VFD
-# ifndef PAGE_SIZE
-# define PAGE_SIZE 4096
-# endif
- /*
- * reserve memory for VFD display (always full pages)
- */
- /* bss_end is defined in the board-specific linker script */
- addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1);
- size = vfd_setmem (addr);
- gd->fb_base = addr;
-#endif /* CONFIG_VFD */
-
-#ifdef CONFIG_LCD
-# ifndef PAGE_SIZE
-# define PAGE_SIZE 4096
-# endif
- /*
- * reserve memory for LCD display (always full pages)
- */
- /* bss_end is defined in the board-specific linker script */
- addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1);
- size = lcd_setmem (addr);
- gd->fb_base = addr;
-#endif /* CONFIG_LCD */
-
- /* armboot_start is defined in the board-specific linker script */
- mem_malloc_init (_armboot_start - CFG_MALLOC_LEN);
-
#if (CONFIG_COMMANDS & CFG_CMD_NAND)
puts ("NAND: ");
nand_init(); /* go init the NAND */
@@ -288,11 +240,6 @@ void start_armboot (void)
/* initialize environment */
env_relocate ();
-#ifdef CONFIG_VFD
- /* must do this after the framebuffer is allocated */
- drv_vfd_init();
-#endif /* CONFIG_VFD */
-
jumptable_init ();
#if defined(CONFIG_MISC_INIT_R)
@@ -306,13 +253,10 @@ void start_armboot (void)
#ifdef BOARD_LATE_INIT
board_late_init ();
#endif
-#if (CONFIG_COMMANDS & CFG_CMD_NET)
-#if defined(CONFIG_NET_MULTI)
- puts ("Net: ");
-#endif
+#ifdef CONFIG_NET
eth_initialize(gd->bd);
#endif
- /* main_loop() can return to retry autoboot, if so just run it again. */
+ /* main_loop() can return to retry autoboot, if so just run it again. */
for (;;) {
main_loop ();
}