[U-Boot] ppc, flash init on mpc8247, Unknown FLASH on Bank 0
wind_embedded
wind_embedded at sina.com
Wed Oct 13 06:50:47 CEST 2010
Hello:
Now I port u-boot into mpc8247, I need everyone's help, thanks!
my board configuration is following:
chip select chip size address
CS0 AM29LV040B 512K 0xfff00000
CS1 S29GL256P 64M 0xff800000
CS2 SDRAM 256M 0x00000000
Before I use VxWorks, it works fine. When I port u-boot, my project
based on IDS8247. I changed configuration in IDS8247.h and updated
flash.c, after I compiled u-boot, I burned u-boot.bin into AM29LV040B.
Console output(DEBUG is defined):
CPU: MPC8247 (HiP7 Rev 14, Mask 1.0 1K50M) at 400 MHz
Board: ADS 8247
I2C: ready
DRAM: 128 MB
Top of RAM usable for U-Boot at: 08000000
Reserving 160k for U-Boot at: 07fd7000
Reserving 192k for malloc() at: 07fa7000
Reserving 76 Bytes for Board Info at: 07fa6fb4
Reserving 72 Bytes for Global Data at: 07fa6f6c
Stack Pointer at: 07fa6f48
New Stack Pointer is: 07fa6f48
Now running in RAM - U-Boot at: 07fd7000
FLASH: Manuf. ID @ 0xfff00000: 0x00000004
## Unknown FLASH on Bank 0 - Size = 0x00000000 = 0 MB
flash_protect ON: from 0xFFF00000 to 0xFFF22FFF
flash_protect ON: from 0xFFF70000 to 0xFFF7FFFF
*** failed ***
### ERROR ### Please RESET the board ###
I found the manufacture ID of flash is error , it should be 0x01, but
it is 0x04, it is the first byte that u-boot.bin file was burned into
AM29LV040. In my flash.c file, the code that I get manufacture ID as
following:
...
flash_cmd_autoselect (base);
mfrId= U8_READ (base);
flash_cmd_reset (base);
...
The functions that above code called is as following:
#define U8_WRITE(reg, val) (*((volatile uchar *)(reg)) =
((uchar)((val)&0xFF)))
#define U8_READ(reg) (*((volatile uchar *)(reg)))
static void flash_cmd_reset (ulong base)
{
U8_WRITE (base + 0x0, 0xF0);
}
static void flash_cmd_unlock (ulong base)
{
U8_WRITE (base + 0x555, 0xAA);
U8_WRITE (base + 0x2AA, 0x55);
}
static void flash_cmd_autoselect (ulong base)
{
flash_cmd_unlock (base + 0x555);
U8_WRITE (base + 0x555, 0x90);
}
I want to get everyone's help, thank you very much!
More information about the U-Boot
mailing list