diff options
author | Jerry Van Baren <gerald.vanbaren@comcast.net> | 2006-12-06 21:23:55 -0500 |
---|---|---|
committer | Kim Phillips <kim.phillips@freescale.com> | 2007-03-02 11:05:53 -0600 |
commit | f35f358241c549be3f75cfe2eaa642914275b7ba (patch) | |
tree | 538f0580734d1ee38f4fcb04866d6043ec8879a7 | |
parent | 48aecd969171a6e99a55fae04933857787f9a5bd (diff) |
mpc83xx: Put the version (and magic) after the HRCW.
Put the version (and magic) after the HRCW. This puts it in a fixed
location in flash, not at the start of flash but as close as we can get.
Signed-off-by: Jerry Van Baren <vanbaren@cideas.com>
-rw-r--r-- | cpu/mpc83xx/start.S | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/cpu/mpc83xx/start.S b/cpu/mpc83xx/start.S index 0f27bb61f8c..6ee9ec96c97 100644 --- a/cpu/mpc83xx/start.S +++ b/cpu/mpc83xx/start.S @@ -77,19 +77,11 @@ END_GOT /* - * Version string - must be in data segment because MPC83xx uses the - * first 256 bytes for the Hard Reset Configuration Word table (see - * below). Similarly, can't have the U-Boot Magic Number as the first - * thing in the image - don't know how this will affect the image tools, - * but I guess I'll find out soon. + * The Hard Reset Configuration Word (HRCW) table is in the first 64 + * (0x40) bytes of flash. It has 8 bytes, but each byte is repeated 8 + * times so the processor can fetch it out of flash whether the flash + * is 8, 16, 32, or 64 bits wide (hardware trickery). */ - .data - .globl version_string -version_string: - .ascii U_BOOT_VERSION - .ascii " (", __DATE__, " - ", __TIME__, ")" - .ascii " ", CONFIG_IDENT_STRING, "\0" - .text #define _HRCW_TABLE_ENTRY(w) \ .fill 8,1,(((w)>>24)&0xff); \ @@ -100,6 +92,18 @@ version_string: _HRCW_TABLE_ENTRY(CFG_HRCW_LOW) _HRCW_TABLE_ENTRY(CFG_HRCW_HIGH) +/* + * Magic number and version string - put it after the HRCW since it + * cannot be first in flash like it is in many other processors. + */ + .long 0x27051956 /* U-Boot Magic Number */ + + .globl version_string +version_string: + .ascii U_BOOT_VERSION + .ascii " (", __DATE__, " - ", __TIME__, ")" + .ascii " ", CONFIG_IDENT_STRING, "\0" + #ifndef CONFIG_DEFAULT_IMMR #error CONFIG_DEFAULT_IMMR must be defined |