u-boot/board/dbau1x00
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
..
config.mk * Patch by Steven Scholz, 10 Oct 2003 2003-10-09 20:09:04 +00:00
dbau1x00.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
flash.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
lowlevel_init.S rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
Makefile Move "ar" flags to config.mk to allow for silent "make -s" 2006-10-09 01:02:05 +02:00
README Cleanup 2004-10-11 23:10:30 +00:00
u-boot.lds Fix all linker script to handle all rodata sections 2009-03-20 22:39:12 +01:00

By Thomas.Lange@corelatus.se 2004-Oct-05
----------------------------------------
DbAu1xx0 are development boards from AMD containing
an Alchemy AU1xx0 series cpu with mips32 core.
Existing cpu:s are Au1000, Au1100, Au1500 and Au1550

Limitations & comments
----------------------
Support was originally big endian only.
I have not tested, but several u-boot users report working
configurations in little endian mode.

I named the board dbau1x00, to allow
support for all three development boards
( dbau1000, dbau1100 and dbau1500 ).
Now there is a new board called dbau1550 also, which
should be supported RSN.

I only have a dbau1000, so my testing is limited
to this board.

The board has two different flash banks, that can
be selected via dip switch. This makes it possible
to test new bootloaders without thrashing the YAMON
boot loader delivered with board.

NOTE! When you switch between the two boot flashes, the
base addresses will be swapped.
Have this in mind when you compile u-boot. TEXT_BASE has
to match the address where u-boot is located when you
actually launch.

Ethernet only supported for mac0.

PCMCIA only supported for slot 0, only 3.3V.

PCMCIA IDE tested with Sandisk Compact Flash and
IBM microdrive.

###################################
########     NOTE!!!!!!   #########
###################################
If you partition a disk on another system (e.g. laptop),
all bytes will be swapped on 16bit level when using
PCMCIA and running cpu in big endian mode!!!!

This is probably due to an error in Au1000 chip.

Solution:

a) Boot via network and partition disk directly from
dbau1x00. The endian will then be correct.

b) Partition disk on "laptop" and fill it with all files
you need. Then write a simple program that endian swaps
whole disk,

Example:
Original "laptop" byte order:
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9...

Dbau1000 byte order will then be:
B1 B0 B3 B2 B5 B4 B7 B6 B9 B8...