diff options
author | Wolfgang Denk <wd@denx.de> | 2007-09-16 17:10:04 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2007-09-16 17:20:37 +0200 |
commit | 67c31036acaaaa992fc346cc89db0909a7e733c4 (patch) | |
tree | 51c721627703ec40a724e1503061554401743f05 /board | |
parent | eb6da8050797c204c9d010548424186c7ce32fc1 (diff) | |
download | u-boot-67c31036acaaaa992fc346cc89db0909a7e733c4.tar.gz u-boot-67c31036acaaaa992fc346cc89db0909a7e733c4.tar.xz u-boot-67c31036acaaaa992fc346cc89db0909a7e733c4.zip |
TQM8xx[LM]: Fix broken environment alignment.
With recent toolchains, the environment sectors were no longer aligned to
sector boundaries. The reason was a combination of two bugs:
1) common/environment.c assumed that CONFIG_TQM8xxL would be defined
for all TQM8xxL and TQM8xxM boards. But "include/common.h", where
this gets defined, is not included here (and cannot be included
without causing lots of problems).
Added a new #define CFG_USE_PPCENV for all boards which really
want to put the environment is a ".ppcenv" section.
2) The linker scripts just include environment.o, silently assuming
that the objects in that file are really in the order in which
they are coded in the C file, i. e. "environment" first, then
"redundand_environment", and "env_size" last. However, current
toolchains (GCC-4.x) reorder the objects, causing the environment
data not to start on a flash sector boundary:
Instead of: we got:
40008000 T environment 40008000 T env_size
4000c000 T redundand_environment 40008004 T redundand_environment
40010000 T env_size 4000c004 T environment
Note: this patch fixes just the first part, and cures the alignment
problem by making sure that "env_size" gets placed correctly. However,
we still have a potential issue because primary and redundant
environment sectors are actually swapped, i. e. we have now:
40008000 T redundand_environment
4000c000 T environment
40010000 T env_size
This shall be fixed in the next version.
Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'board')
-rw-r--r-- | board/fads/fads.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/board/fads/fads.h b/board/fads/fads.h index a7fe2e9019..dea8a0dc10 100644 --- a/board/fads/fads.h +++ b/board/fads/fads.h @@ -229,6 +229,7 @@ #define CFG_ENV_SECT_SIZE 0x40000 /* see README - env sector total size */ #define CFG_ENV_OFFSET CFG_ENV_SECT_SIZE #define CFG_ENV_SIZE 0x4000 /* Total Size of Environment */ +#define CFG_USE_PPCENV /* Environment embedded in sect .ppcenv */ #define CFG_DIRECT_FLASH_TFTP |