On Wednesday, October 13, 2010, wind_embedded <wind_embed...@sina.com> wrote: > 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):
What version of U-Boot are you using? It looks like you are not using the CFI driver which has supported the AM29LV040B for some time now. Have a look at the eNET board from current mainline - it uses the same flash without issue > 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! > Use the latest version of U-Boot and the CFI driver rather than this custom driver you are currently using Regards, Graeme _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot