summaryrefslogtreecommitdiff
path: root/board/gen860t
diff options
context:
space:
mode:
authorwdenk <wdenk>2003-05-03 15:50:43 +0000
committerwdenk <wdenk>2003-05-03 15:50:43 +0000
commit7aa78614716b7bd7bdf68553f261ad0d5a12826a (patch)
tree756a98d1deac76f1cfba3d8da18c19e7183618c8 /board/gen860t
parent4532cb696eb717419022dbaa8d408e7df7df7b68 (diff)
downloadu-boot-imx-7aa78614716b7bd7bdf68553f261ad0d5a12826a.zip
u-boot-imx-7aa78614716b7bd7bdf68553f261ad0d5a12826a.tar.gz
u-boot-imx-7aa78614716b7bd7bdf68553f261ad0d5a12826a.tar.bz2
* Add support for Promess ATC board
* Patch by Keith Outwater, 28 Apr 2003: - Miscellaneous corrections and additions to GEN860T board specific code. - Added GEN860_SC variant to GEN860T. - Miscellaneous corrections to GEN860T documentation. - Correct duplicate entry in U-Boot CREDITS file. - Add GEN860T_SC entry in MAINTAINERS file. - Update CREDITS file with GEN860T_SC info. * Update Smiths Aerospace addresses in MAINTAINERS file * Fix error handling in hush's version of "run" command
Diffstat (limited to 'board/gen860t')
-rw-r--r--board/gen860t/README25
-rw-r--r--board/gen860t/gen860t.c22
-rw-r--r--board/gen860t/ioport.c69
-rw-r--r--board/gen860t/u-boot-flashenv.lds132
-rw-r--r--board/gen860t/u-boot.lds11
5 files changed, 217 insertions, 42 deletions
diff --git a/board/gen860t/README b/board/gen860t/README
index 761ceed..7c03f93 100644
--- a/board/gen860t/README
+++ b/board/gen860t/README
@@ -1,8 +1,7 @@
-
This directory contains board specific code for a generic MPC860T based
embedded computer, called 'GEN860T'. The design is generic in the sense that
common, readily available components are used and that the architecture of the
-system is i(relatively) straightforward:
+system is relatively straightforward:
One eight bit wide boot (FLASH) memory
32 bit main memory using SDRAM
@@ -23,14 +22,14 @@ hearing from you, especially if you discover bugs or find ways to improve the
quality of this U-Boot port.
Here are the salient features of the system:
-Clock : 33 Mhz oscillator
-Processor core frequency : 66 Mhz if in 1:2:1 mode; can also run 1:1
-Bus frequency : 33 Mhz
+Clock : 33.3 Mhz oscillator
+Processor core frequency : 66.6 Mhz if in 1:2:1 mode; can also run 1:1
+Bus frequency : 33.3 Mhz
Main memory:
Type : SDRAM
Width : 32 bits
- Size : 64 megabytes
+ Size : 64 mibibytes
Chip : Two Micron MT48LC16M16A2TG-7E
CS : MPC860T CS1*/UPMA
UPMA CONNECTIONS:
@@ -42,7 +41,7 @@ Main memory:
Boot memory:
Type : FLASH
Width : 8 bits
- Size : 16 megabytes
+ Size : 16 mibibytes
Chip : One Intel 28F128J3A (StrataFlash)
CS : MPC860T CS0*/GPCM (this is the "boot" chip select)
@@ -56,7 +55,7 @@ EEPROM memory:
Filesystem memory:
Type : NAND FLASH (Toshiba)
Width : 8 bits (i.e. interface to DOC is 8 bits)
- Size : 32 megabytes
+ Size : 32 mibibytes
Chip : One DiskOnCHip Millenium Plus (DOC 2000+)
CS : MPC860T CS2*/GPCM
@@ -92,6 +91,12 @@ Miscellaneous:
Mil-Std 1553 databus interface on CS5*/GPCM.
Audio sounder (beeper) with digital volume control connected to SPKROUT.
+SC variant:
+ A reduced-feature version of the GEN860T port is also supported: GEN860T_SC.
+ The 'SC' variant only provides support for the Virtex FPGA, SDRAM main
+ memory, EEPROM and flash memory. The system clock frequency is reduced
+ to 24 MHz.
+
Issues:
The DOC 2000+ returns 0x40 as its device ID when probed using the method
desxribed in the DOC datasheet. Unfortunately, the U-Boot DOC driver
@@ -105,11 +110,11 @@ Status:
in MTD for this device. I wish I had known this sooner :(
The GEN860T board specific files and configuration is based on the work
-of others who have contributed to U-Boot. The copright and license notices
+of others who have contributed to U-Boot. The copyright and license notices
of these authors have been retained wherever their code has been reused.
All new code to support the GEN860T board is:
- (C) Copyright 2001-2002
+ (C) Copyright 2001-2003
Keith Outwater (keith_outwater@mvis.com)
and the following license applies:
diff --git a/board/gen860t/gen860t.c b/board/gen860t/gen860t.c
index 16a3262..094eeef 100644
--- a/board/gen860t/gen860t.c
+++ b/board/gen860t/gen860t.c
@@ -271,18 +271,12 @@ misc_init_r (void)
int
last_stage_init(void)
{
+#if !defined(CONFIG_SC)
unsigned char buf[256];
int i;
/*
- * Set LEDs here since status LED init code has already run
- */
- status_led_set(STATUS_LED_BIT1, STATUS_LED_ON);
- status_led_set(STATUS_LED_BIT3, STATUS_LED_ON);
-
- /*
- * Turn the beeper volume all the way down in case this is a warm
- * boot.
+ * Turn the beeper volume all the way down in case this is a warm boot.
*/
set_beeper_volume(-64);
init_beeper();
@@ -294,6 +288,18 @@ last_stage_init(void)
if (i > 0) {
do_beeper(buf);
}
+#endif
return 0;
}
+
+/*
+ * Stub to make POST code happy. Can't self-poweroff, so just hang.
+ */
+void
+board_poweroff(void)
+{
+ puts("### Please power off the board ###\n");
+ while (1);
+}
+
/* vim: set ts=4 sw=4 tw=78 : */
diff --git a/board/gen860t/ioport.c b/board/gen860t/ioport.c
index 5d6524d..7b3ebd4 100644
--- a/board/gen860t/ioport.c
+++ b/board/gen860t/ioport.c
@@ -42,8 +42,9 @@
const mpc8xx_iop_conf_t iop_conf_tab[NUM_PORTS][PORT_BITS] = {
/*
* Port A configuration
- * Pin Signal Type Active Initial state
- * PA7 fpgaProgramLowOut Out Low High
+ * Pin Signal Type Active Initial state
+ * PA7 fpgaProgramLowOut Out Low High
+ * PA1 fpgaCoreVoltageFailLow In Low N/A
*/
{ /* conf ppar psor pdir podr pdat pint function */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* No pin */
@@ -62,22 +63,32 @@ const mpc8xx_iop_conf_t iop_conf_tab[NUM_PORTS][PORT_BITS] = {
/* PA4 */ { 1, 0, 0, 1, 0, 0, 0 }, /* red bicolor LED 0*/
/* PA3 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PA2 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+#if !defined(CONFIG_SC)
+ /* PA1 */ { 1, 0, 0, 0, 0, 0, 0 }, /* fpgaCoreVoltageFail*/
+#else
/* PA1 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+#endif
/* PA0 */ { 0, 0, 0, 0, 0, 0, 0 } /* */
},
/*
+ * Port B configuration
* Pin Signal Type Active Initial state
* PB14 docBusyLowIn In Low X
* PB15 gpio1Sig Out High Low
* PB16 fpgaDoneBi In High X
- * PB17 swBitOkLowOut Out Low Low
+ * PB17 swBitOkLowOut Out Low High
* PB19 speakerVolSig Out/Hi-Z High/Low High (Hi-Z)
* PB22 fpgaInitLowBi In Low X
* PB23 batteryOkSig In High X
- */
- { /* conf ppar psor pdir podr pdat pint function */
- /* PB31 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+ * PB31 pulseCatcherClr Out High 0
+ */
+ { /* conf ppar psor pdir podr pdat pint function */
+#if !defined(CONFIG_SC)
+ /* PB31 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+#else
+ /* PB31 */ { 1, 0, 0, 1, 0, 0, 0 }, /* pulseCatcherClr */
+#endif
/* PB30 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PB29 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PB28 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
@@ -85,19 +96,32 @@ const mpc8xx_iop_conf_t iop_conf_tab[NUM_PORTS][PORT_BITS] = {
/* PB26 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PB25 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PB24 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+#if !defined(CONFIG_SC)
/* PB23 */ { 1, 0, 0, 0, 0, 0, 0 }, /* batteryOk */
+#else
+ /* PB23 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+#endif
/* PB22 */ { 1, 0, 0, 0, 0, 0, 0 }, /* fpgaInitLowBi */
/* PB21 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PB20 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+#if !defined(CONFIG_SC)
/* PB19 */ { 1, 0, 0, 1, 1, 1, 0 }, /* speakerVol */
+#else
+ /* PB19 */ { 0, 0, 0, 1, 1, 1, 0 }, /* */
+#endif
/* PB18 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
- /* PB17 */ { 1, 0, 0, 1, 0, 0, 0 }, /* swBitOkLow */
+ /* PB17 */ { 1, 0, 0, 1, 0, 1, 0 }, /* swBitOkLow */
/* PB16 */ { 1, 0, 0, 0, 0, 0, 0 }, /* fpgaDone */
/* PB15 */ { 1, 0, 0, 1, 0, 0, 0 }, /* gpio1 */
+#if !defined(CONFIG_SC)
/* PB14 */ { 1, 0, 0, 0, 0, 0, 0 } /* docBusyLow */
- },
+#else
+ /* PB14 */ { 0, 0, 0, 0, 0, 0, 0 } /* */
+#endif
+ },
/*
+ * Port C configuration
* Pin Signal Type Active Initial state
* PC4 i2cBus1EnSig Out High High
* PC5 i2cBus2EnSig Out High High
@@ -108,29 +132,48 @@ const mpc8xx_iop_conf_t iop_conf_tab[NUM_PORTS][PORT_BITS] = {
* PC12 systemBitOkIn In High X
* PC15 selfDreqLow In Low X
*/
- { /* conf ppar psor pdir podr pdat pint function */
+ { /* conf ppar psor pdir podr pdat pint function */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PC15 */ { 1, 0, 0, 0, 0, 0, 0 }, /* selfDreqLowIn */
/* PC14 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PC13 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+#if !defined(CONFIG_SC)
/* PC12 */ { 1, 0, 0, 0, 0, 0, 0 }, /* systemBitOkIn */
+#else
+ /* PC12 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+#endif
/* PC11 */ { 1, 0, 0, 1, 0, 1, 0 }, /* fpgaResetLowOut */
+#if !defined(CONFIG_SC)
/* PC10 */ { 1, 0, 0, 1, 0, 1, 0 }, /* i2cBus4EnSig */
+#else
+ /* PC10 */ { 0, 0, 0, 1, 0, 1, 0 }, /* */
+#endif
/* PC9 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
+#if !defined(CONFIG_SC)
/* PC8 */ { 1, 0, 0, 1, 0, 1, 0 }, /* i2cBus3EnSig */
+#else
+ /* PC8 */ { 0, 0, 0, 1, 0, 1, 0 }, /* */
+#endif
/* PC7 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PC6 */ { 1, 0, 0, 1, 0, 1, 0 }, /* gpio0 */
+#if !defined(CONFIG_SC)
/* PC5 */ { 1, 0, 0, 1, 0, 1, 0 }, /* i2cBus2EnSig */
/* PC4 */ { 1, 0, 0, 1, 0, 1, 0 }, /* i2cBus1EnSig */
+#else
+ /* PC5 */ { 0, 0, 0, 1, 0, 1, 0 }, /* */
+ /* PC4 */ { 0, 0, 0, 1, 0, 1, 0 }, /* */
+#endif
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 } /* */
- },
+ },
- /* Port D configuration */
- { /* conf ppar psor pdir podr pdat pint function */
+ /*
+ * Port D configuration
+ */
+ { /* conf ppar psor pdir podr pdat pint function */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* PD15 */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
@@ -149,7 +192,7 @@ const mpc8xx_iop_conf_t iop_conf_tab[NUM_PORTS][PORT_BITS] = {
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 }, /* */
/* N/A */ { 0, 0, 0, 0, 0, 0, 0 } /* */
- }
+ }
};
/*
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
new file mode 100644
index 0000000..8b1ce1a
--- /dev/null
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -0,0 +1,132 @@
+/*
+ * Linker command file for the GEN860T board when the environment is
+ * stored in flash memory.
+ *
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.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
+ */
+
+OUTPUT_ARCH(powerpc)
+SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
+SECTIONS
+{
+ /*
+ * Read-only sections, merged into text segment:
+ */
+ . = + SIZEOF_HEADERS;
+ .interp : { *(.interp) }
+ .hash : { *(.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ .rel.text : { *(.rel.text) }
+ .rela.text : { *(.rela.text) }
+ .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.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) }
+ .plt : { *(.plt) }
+ .text :
+ {
+ cpu/mpc8xx/start.o (.text)
+ *(.text)
+ *(.fixup)
+ *(.got1)
+ }
+ _etext = .;
+ PROVIDE (etext = .);
+ .rodata :
+ {
+ *(.rodata)
+ *(.rodata1)
+ }
+ .fini : { *(.fini) } =0
+ .ctors : { *(.ctors) }
+ .dtors : { *(.dtors) }
+
+ /*
+ * Read-write section, merged into data segment:
+ */
+ . = (. + 0x00FF) & 0xFFFFFF00;
+ _erotext = .;
+ PROVIDE (erotext = .);
+ .reloc :
+ {
+ *(.got)
+ _GOT2_TABLE_ = .;
+ *(.got2)
+ _FIXUP_TABLE_ = .;
+ *(.fixup)
+ }
+ __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
+ __fixup_entries = (. - _FIXUP_TABLE_)>>2;
+
+ .data:
+ {
+ *(.data)
+ *(.data1)
+ *(.sdata)
+ *(.sdata2)
+ *(.dynamic)
+ CONSTRUCTORS
+ }
+ _edata = .;
+ PROVIDE (edata = .);
+
+ __start___ex_table = .;
+ __ex_table : { *(__ex_table) }
+ __stop___ex_table = .;
+
+ . = ALIGN(256);
+ __init_begin = .;
+ .text.init : { *(.text.init) }
+ .data.init : { *(.data.init) }
+ . = ALIGN(256);
+ __init_end = .;
+
+ __bss_start = .;
+ .bss :
+ {
+ *(.sbss) *(.scommon)
+ *(.dynbss)
+ *(.bss)
+ *(COMMON)
+ }
+
+ _end = . ;
+ PROVIDE (end = .);
+
+ .ppcenv:
+ {
+ . = env_offset;
+ common/environment.o
+ }
+}
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index 1b53c72..b67faa6 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -56,15 +56,6 @@ SECTIONS
.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) */
-
*(.text)
*(.fixup)
*(.got1)
@@ -128,8 +119,6 @@ SECTIONS
*(.bss)
*(COMMON)
}
-
_end = . ;
PROVIDE (end = .);
}
-