diff options
Diffstat (limited to 'board/fads')
-rw-r--r-- | board/fads/config.mk | 8 | ||||
-rw-r--r-- | board/fads/fads.c | 17 | ||||
-rw-r--r-- | board/fads/lamp.c | 5 | ||||
-rw-r--r-- | board/fads/u-boot.lds | 44 |
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) |