uboot-mt623x/board/trab
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 trab: make trab_fkt standalone code independent of libgcc 2008-12-16 16:22:50 +01:00
Pt1000_temp_data.h * Patch by Martin Krause, 11 Sep 2003: 2003-09-11 23:06:34 +00:00
README.kbd Initial revision 2002-11-03 00:24:07 +00:00
auto_update.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
cmd_trab.c Command usage cleanup 2009-01-28 08:49:52 +01:00
config.mk Add support for a saving build objects in a separate directory. 2006-09-01 19:49:50 +02:00
flash.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
lowlevel_init.S Big white-space cleanup. 2008-05-21 00:14:08 +02:00
memory.c board/trab/memory.c: Fix compile problems. 2008-12-16 22:32:25 +01:00
rs485.c * Patch by Martin Krause, 09 Oct 2003: 2003-10-09 13:16:55 +00:00
rs485.h Move TRAB burn-in tests to TRAB board directory 2003-09-12 15:35:15 +00:00
trab.c Command usage cleanup 2009-01-28 08:49:52 +01:00
trab_fkt.c trab: make trab_fkt standalone code independent of libgcc 2008-12-16 16:22:50 +01:00
tsc2000.c ARM: Use do_div() instead of division for "long long". 2008-09-09 02:14:41 +02:00
tsc2000.h Big white-space cleanup. 2008-05-21 00:14:08 +02:00
u-boot.lds Fix all linker script to handle all rodata sections 2009-03-20 22:39:12 +01:00
vfd.c Big white-space cleanup. 2008-05-21 00:14:08 +02:00

README.kbd

The TRAB keyboard implementation is similar to that for LWMON and
R360MPI boards. The only difference concerns key naming. There are 4
keys on TRAB: 1, 2, 3, 4.

1) The "kbd" command provides information about the current state of
   the keys. For example,

	TRAB # kbd
	Keys: 1 0 1 0

   means that keys 1 and 3 are pressed. The keyboard status is also
   stored in the "keybd" environment variable. In this example we get

	keybd=1010

2) The "preboot" variable is set according to current environment
   settings and keys pressed. This is an example:

	TRAB # setenv magic_keys XY
	TRAB # setenv key_magicX 12
	TRAB # setenv key_cmdX echo ## Keys 1 + 2 pressed ##\;echo
	TRAB # setenv key_magicY 13
	TRAB # setenv key_cmdY echo ## Keys 1 + 3 pressed ##\;echo

   Here "magic_keys=XY" means that the "key_magicX" and "key_magicY"
   variables will be checked for a match. Each variable "key_magic*"
   defines a set of keys. In the our example, if keys 1 and 3 are
   pressed during reset, then "key_magicY" matches, so the "preboot"
   variable will be set to the contents of "key_cmdY":

	preboot=echo ## Keys 1 + 3 pressed ##;echo

3) The TRAB board has optional modem support. When a certain key
   combination is pressed on the keyboard at power-on, the firmware
   performs the necessary initialization of the modem and allows for
   dial-in. The key combination is specified in the
   "include/configs/trab.h" file. For example:

	#define        CONFIG_MODEM_KEY_MAGIC  "23"

   means that modem will be initialized if and only if both keys 2, 3
   are pressed. Note that the format of this string is similar to the
   format of "key_magic*" environment variables described above.