uboot-mt623x/board/gen860t
Trent Piepho f62fb99941 Fix all linker script to handle all rodata sections
A recent gcc added a new unaligned rodata section called '.rodata.str1.1',
which needs to be added the the linker script.  Instead of just adding this
one section, we use a wildcard ".rodata*" to get all rodata linker section
gcc has now and might add in the future.

However, '*(.rodata*)' by itself will result in sub-optimal section
ordering.  The sections will be sorted by object file, which causes extra
padding between the unaligned rodata.str.1.1 of one object file and the
aligned rodata of the next object file.  This is easy to fix by using the
SORT_BY_ALIGNMENT command.

This patch has not be tested one most of the boards modified.  Some boards
have a linker script that looks something like this:

*(.text)
. = ALIGN(16);
*(.rodata)
*(.rodata.str1.4)
*(.eh_frame)

I change this to:

*(.text)
. = ALIGN(16);
*(.eh_frame)
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))

This means the start of rodata will no longer be 16 bytes aligned.
However, the boundary between text and rodata/eh_frame is still aligned to
16 bytes, which is what I think the real purpose of the ALIGN call is.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2009-03-20 22:39:12 +01:00
..
Makefile Move "ar" flags to config.mk to allow for silent "make -s" 2006-10-09 01:02:05 +02:00
README Big white-space cleanup. 2008-05-21 00:14:08 +02:00
beeper.c Cleanup: fix "MHz" spelling 2008-10-21 11:25:39 +02:00
beeper.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
config.mk Initial revision 2002-09-18 19:52:13 +00:00
flash.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
fpga.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
fpga.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
gen860t.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
ioport.c Big white-space cleanup. 2008-05-21 00:14:08 +02:00
ioport.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
u-boot-flashenv.lds Fix all linker script to handle all rodata sections 2009-03-20 22:39:12 +01:00
u-boot.lds Fix all linker script to handle all rodata sections 2009-03-20 22:39:12 +01:00

README

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 relatively straightforward:

	One eight bit wide boot (FLASH) memory
	32 bit main memory using SDRAM
	DOC 2000+
	Ethernet PHY
	Some I2C peripheral devices: Atmel AT24C256 EEPROM, Maxim DS1337 RTC.
	Some other miscellaneous peripherals

NOTE: There are references to a XIlinx FPGA and Mil-Std 1553 databus in this
port.  I guess the computer is not as generic as I first said 8)  However,
these extras can be safely ignored.

Given the GEN860T files, it should be pretty easy to reverse engineer the
hardware configuration, if that's useful to you.  Hopefully, this code will
be useful to someone as a basis for a port to a new system or as a head start
on a custom design.  If you end up using any of this, I would appreciate
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.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 mibibytes
	Chip	: Two Micron MT48LC16M16A2TG-7E
	CS		: MPC860T CS1*/UPMA
	UPMA CONNECTIONS:
		SDRAM A10	: GPLA0*
		SDRAM CAS*	: GPLA2*
		SDRAM WE*	: GPLA3*
		SDRAM RAS*	: GPLA4*

Boot memory:
	Type	: FLASH
	Width	: 8 bits
	Size	: 16 mibibytes
	Chip	: One Intel 28F128J3A (StrataFlash)
	CS		: MPC860T CS0*/GPCM (this is the "boot" chip select)

EEPROM memory:
	Type	: Serial I2C EEPROM
	Width	: 8 bits
	Size	: 32 kibibytes
	Chip	: One Atmel AT25C256
	CS		: 0x50 (external I2C address pins on device are tied to GND)

Filesystem memory:
	Type	: NAND FLASH (Toshiba)
	Width	: 8 bits (i.e. interface to DOC is 8 bits)
	Size	: 32 mibibytes
	Chip	: One DiskOnCHip Millenium Plus (DOC 2000+)
	CS		: MPC860T CS2*/GPCM

Network support:
	MAC		: MPC86OT FEC (Fast Ethernet Controller)
	PHY		: Intel LXT971A
	MII Addr: 0x0 (hardwired on the board)
	MII IRQ	:

Console:
	RS-232 on SMC1 (Maxim MAX3232 LVCMOS-RS232 level shifter)

Real Time Clock:
	Type	: Low power, I2C interface
	Chip	: Maxim DS1337
	CS		: Address 0x68 on I2C bus

	The MPC860T's internal RTC has a defect in Mask rev D that increases
	the current drain on the KAPWR line to 10 mA.  Since this is an
	unreasonable amount of current draw for a RTC, and Motorola does not
	plan to fix this in future mask revisions, a serial (I2C) RTC that
	works has been included instead.  NOTE that the DS1337 can be
	configured to output a 32768 Hz clock while the main power is on.
	This clock output has been routed to the MPC860T's EXTAL pin to allow
	the internal RTC to be used.  NOTE also that due to yet another
	defect in the rev D mask, the RTC does not operate reliably when the
	internal RTC divisor is set to use a 32768 Hz reference.  So just use
	the I2C RTC.

Miscellaneous:
	Xilinx Virtex FPGA on CS3*/GPCM.
	Virtex FPGA slave SelectMap interface on cs4*/UPMB.
	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
	does not recognize this device.  As of this writing, it seems that MTD
	does not support the DOC 2000+ either.

Status:
	Everything appears to work except DOC support. As of this writing,
	David Woodhouse has stated on the MTD mailing list that he has no
	knowledge of the DOC Millineum Plus and therfore there is no support
	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 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-2003
	Keith Outwater (keith_outwater@mvis.com)

and the following license applies:

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,
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

Thanks to Wolfgang Denk for a great software package and to everyone
who contributed to its development.

Keith Outwater
Sr. Staff Engineer
Microvision, Inc.
<keith_outwater@mvis.com>
<outwater@eskimo.com>