
On Sun, Jun 22, 2003 at 06:22:03PM +0200, Wolfgang Denk wrote:
In message 20030621002854.GA27308@zumanetworks.com you wrote:
On Sat, Jun 21, 2003 at 02:21:36AM +0200, Wolfgang Denk wrote:
Setting CFG_MONITOR_LEN correctly is correct. But why removing which #ifdefs ?
if ENV_IS_EMBEDDED is set, nothing in environment.c gets compiled, and cpu/mpc8xx/start.S has a few
#if defined(CONFIG_FADS) || defined(CONFIG_ICU862)
directives which surround GOT_ENTRY(environment) and GOT(environment) references...
safe to remove these?
No.
If you look at the u-boot.map file when building for the ICU862 board you can see this:
... 0x40f22b3c __init_end = . 0x40f22b3c __bss_start = .
.bss 0x40f22c00 0x417c ... 0x40f26c30 flash_info 0x40f40000 . = ALIGN (0x40000)
.ppcenv 0x40f40000 0x4000 common/environment.o(.ppcenv) .ppcenv 0x40f40000 0x4000 common/environment.o 0x40f40000 environment 0x40f44000 _end = . 0x40f44000 PROVIDE (end, .)
shouldn't the ifdef depend on ENV_IS_EMBEDDED? If that is set, even in the ICU862 case, nothing in environment.c gets compiled (ALL of the code is ifdef'ed out), and "environment" will be unresolved..
The #ifdef in "cpu/mpc8xx/start.S" makes sure that clear_bss() does not attempt to clear any memory that belongs to the environment.
but only if ENV_IS_EMBEDDED is NOT set... unless i'm missing something obvious?
btw. wolfgang, this patch is growing larger and larger every week, I'm not sure how easy it is going to be for me to split it up into digestible chunks for you...
Split it now, and submit any stable parts of it.
Too much is tangled together, i will try, but it doesn't look good.
TIA