
MPC8641HPVN saveenv, newstart u-boot stops
Hi All,
ich used the board freescale HPCN8641D board with nwest u-boot. only after saveenv and following power off and on, u-boot stops directly without serial output.
Because analyse ich have seen: The command "saveenv" writes environment variable directy the code-area from u-boot(flash).
I thing, the hard coded offset to flash "environment variable " after the .text area in the flash is to be small actually.
I give some informations: Power PC MPC8641D Flash area u-boot: version_string: 0xeff00004 .... __bss_end__ 0xeff7a360 size = 0x7a360
In command saveenv...env_flash.c Routine saveenv if (flash_sect_erase((long)flash_addr, end_addr)) used following addresses: flash_addr = 0xeff60000 end_addr = 0xeff6ffff
static env_t *flash_addr = (env_t *)CONFIG_ENV_ADDR;
File MPC8641HPCN.h #ifndef CONFIG_SYS_RAMBOOT #define CONFIG_ENV_IS_IN_FLASH 1 #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE + 0x60000) #define CONFIG_ENV_SECT_SIZE 0x10000 /* 64K(one sector) for env */ #else #define CONFIG_ENV_IS_NOWHERE 1 /* Store ENV in memory only */ #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - 0x1000) #endif
#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE /* start of monitor */ #define CONFIG_SYS_TEXT_BASE 0xeff00000
I thing the constand with 0x60000 is to small (u-boot size is bigger)
For my test I have changed 0x60000 into 0x70000 #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE + 0x70000)
Can someone evaluate this analysis?
Thanks for the Help. Thiesen