]> git.kernelconcepts.de Git - karo-tx-uboot.git/commit
TQM8xx[LM]: Fix broken environment alignment.
authorWolfgang Denk <wd@denx.de>
Sun, 16 Sep 2007 15:10:04 +0000 (17:10 +0200)
committerWolfgang Denk <wd@denx.de>
Sun, 16 Sep 2007 15:20:37 +0000 (17:20 +0200)
commit67c31036acaaaa992fc346cc89db0909a7e733c4
tree51c721627703ec40a724e1503061554401743f05
parenteb6da8050797c204c9d010548424186c7ce32fc1
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>
26 files changed:
board/fads/fads.h
common/environment.c
include/configs/CATcenter.h
include/configs/FADS823.h
include/configs/FADS850SAR.h
include/configs/ICU862.h
include/configs/M5271EVB.h
include/configs/PPChameleonEVB.h
include/configs/R360MPI.h
include/configs/RRvision.h
include/configs/TQM823L.h
include/configs/TQM823M.h
include/configs/TQM850L.h
include/configs/TQM850M.h
include/configs/TQM855L.h
include/configs/TQM855M.h
include/configs/TQM860L.h
include/configs/TQM860M.h
include/configs/TQM862L.h
include/configs/TQM862M.h
include/configs/TQM866M.h
include/configs/cmi_mpc5xx.h
include/configs/hymod.h
include/configs/idmr.h
include/configs/trab.h
include/configs/virtlab2.h