summaryrefslogtreecommitdiff
path: root/board/fads
diff options
context:
space:
mode:
Diffstat (limited to 'board/fads')
-rw-r--r--board/fads/config.mk8
-rw-r--r--board/fads/fads.c17
-rw-r--r--board/fads/lamp.c5
-rw-r--r--board/fads/u-boot.lds44
4 files changed, 33 insertions, 41 deletions
diff --git a/board/fads/config.mk b/board/fads/config.mk
index a9dbb8e..bad02f2 100644
--- a/board/fads/config.mk
+++ b/board/fads/config.mk
@@ -22,9 +22,9 @@
#
#
-# FADS boards
+# Motorola old MPC821/860ADS, MPC8xxFADS, and new MPC866ADS boards
#
-#TEXT_BASE = 0xFE000000
-TEXT_BASE = 0x02800000
-OBJCFLAGS = --set-section-flags=.ppcenv=contents,alloc,load,data
+TEXT_BASE = 0xFE000000
+#TEXT_BASE = 0x02800000
+#OBJCFLAGS = --set-section-flags=.ppcenv=contents,alloc,load,data
diff --git a/board/fads/fads.c b/board/fads/fads.c
index 3856b45..aca7b28 100644
--- a/board/fads/fads.c
+++ b/board/fads/fads.c
@@ -360,7 +360,11 @@ static int _draminit (uint base, uint noMbytes, uint edo, uint delay)
switch (noMbytes) {
case 4: /* 4 Mbyte uses only CS2 */
+#ifdef CONFIG_ADS
+ memctl->memc_mamr = 0xc0a21114;
+#else
memctl->memc_mamr = 0x13a01114; /* PTA 0x13 AMA 010 */
+#endif
memctl->memc_or2 = 0xffc00800; /* 4M */
break;
@@ -393,17 +397,18 @@ static int _draminit (uint base, uint noMbytes, uint edo, uint delay)
memctl->memc_br2 = 0x81 + base; /* use upma */
+ *((uint *) BCSR1) &= ~BCSR1_DRAM_EN; /* enable dram */
+
/* if no dimm is inserted, noMbytes is still detected as 8m, so
* sanity check top and bottom of memory */
- *((uint *) BCSR1) &= ~BCSR1_DRAM_EN; /* enable dram */
-
/* check bytes / 2 because dram_size tests at base+bytes, which
* is not mapped */
- if (dram_size ((long *) base, noMbytes << 19) != noMbytes << 19) {
- *((uint *) BCSR1) |= BCSR1_DRAM_EN; /* disable dram */
- return -1;
- }
+ if (noMbytes == 8)
+ if (dram_size ((long *) base, noMbytes << 19) != noMbytes << 19) {
+ *((uint *) BCSR1) |= BCSR1_DRAM_EN; /* disable dram */
+ return -1;
+ }
return 0;
}
diff --git a/board/fads/lamp.c b/board/fads/lamp.c
index b121477..4e58291 100644
--- a/board/fads/lamp.c
+++ b/board/fads/lamp.c
@@ -1,4 +1,7 @@
#include <config.h>
+
+#ifndef CONFIG_ADS /* Old ADS has not got any user-controllable LED */
+
#include <common.h>
void
@@ -40,3 +43,5 @@ fast_blink(unsigned int n)
signal_delay(0x00100000);
}
}
+
+#endif /* !CONFIG_ADS */
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index 41776d1..5fe5e22 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -22,9 +22,6 @@
*/
OUTPUT_ARCH(powerpc)
-SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
-/* Do we need any of these for elf?
- __DYNAMIC = 0; */
SECTIONS
{
/* Read-only sections, merged into text segment: */
@@ -33,41 +30,30 @@ SECTIONS
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
- .rel.text : { *(.rel.text) }
+ .rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) }
- .rel.data : { *(.rel.data) }
+ .rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) }
- .rel.got : { *(.rel.got) }
- .rela.got : { *(.rela.got) }
+ .rel.got : { *(.rel.got) }
+ .rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
- .rel.bss : { *(.rel.bss) }
- .rela.bss : { *(.rela.bss) }
- .rel.plt : { *(.rel.plt) }
- .rela.plt : { *(.rela.plt) }
- .init : { *(.init) }
+ .rel.bss : { *(.rel.bss) }
+ .rela.bss : { *(.rela.bss) }
+ .rel.plt : { *(.rel.plt) }
+ .rela.plt : { *(.rela.plt) }
+ .init : { *(.init) }
.plt : { *(.plt) }
.text :
{
- /* WARNING - the following is hand-optimized to fit within */
- /* the sector layout of our flash chips! XXX FIXME XXX */
+ cpu/mpc8xx/start.o (.text)
- cpu/mpc8xx/start.o (.text)
-/*
- cpu/mpc8xx/start.o (.text)
- common/dlmalloc.o (.text)
- lib_ppc/ppcstring.o (.text)
- lib_generic/vsprintf.o (.text)
- lib_generic/crc32.o (.text)
- lib_generic/zlib.o (.text)
-
- . = env_offset;
- common/environment.o(.text)
-*/
+ . = DEFINED(env_offset) ? env_offset : .;
+ common/environment.o (.ppcenv)
*(.text)
*(.fixup)
@@ -136,11 +122,7 @@ SECTIONS
*(.bss)
*(COMMON)
}
- . = ALIGN(256 * 1024);
- .ppcenv :
- {
- common/environment.o (.ppcenv)
- }
_end = . ;
PROVIDE (end = .);
}
+ENTRY(_start)