[U-Boot] u-boot hang after we changed the flash chip
raymond zhao
raymond.zhao.uboot at gmail.com
Mon Dec 13 22:49:13 CET 2010
Hi, everyone
I have a AMCC PowerPC 405EX based board. The u-boot version is U-Boot
1.3.2-RELEASE_11. It works fine until we have to change the NOR-Flash chip
from JS28F128P33B85 to JS28F128P33BF70 since the JS28F128P33B85 is obsolete.
I checked the datasheet of these two flash chips, they all support CFI and
we enabled CFI in u-boot. The different is the write buffer size: the old
one has 32 bytes and the new one has 256 bytes. I tracked into the u-boot
with BDI3000. The code fly away in the function i2c_init (CFG_I2C_SPEED,
CFG_I2C_SLAVE), which is called in init_func_i2c:
static int init_func_i2c (void)
{
puts ("I2C: ");
i2c_init (CFG_I2C_SPEED, CFG_I2C_SLAVE);
puts ("ready\n");
return (0);
}
In debug console: I actually see the out put I2C: . The codes fly away
inside i2c_init (CFG_I2C_SPEED, CFG_I2C_SLAVE); and never come back to
put("ready\n");
Another interesting thing is when I am in function init_func_i2c, I used bt
full in GDB to check the stack. I get the following:
(gdb) bt full
#0 <signal handler called>
No locals.
#1 0x00000000 in ?? ()
No symbol table info available.
#2 0x00000000 in ?? ()
No symbol table info available.
Previous frame inner to this frame (corrupt stack?)
Does this mean the stack is corrupted? There should have a stack already in
this moment, right?
Does anyone has any idea which direction I should go?
Thanks a lot,
Raymond
More information about the U-Boot
mailing list