[U-Boot] Flashing PPC440gx Using BDI3000

Hello,
I realize this isn't a BDI3000 mailing list but I was hoping to get some input on my problem. I am trying to program u-boot onto the flash (S29GL512N) of a ppc440gx target using a BDI3000 but I am getting some weird behavior.
With my current BDI3000 (firmware v1.18) configuration (using SDRAM as the BDI workspace) the first program attempt always fails. Successive attempts after the failed one will work.
440GX>e;p;v Erasing flash at 0xfff80000 Erasing flash at 0xfffa0000 Erasing flash at 0xfffc0000 Erasing flash at 0xfffe0000 Erasing flash passed Programming u-boot.bin , please wait .... Programming flash passed Verifying u-boot.bin , please wait .... # Verifying target memory failed at 0xfff80004 440GX>e;p;v Erasing flash at 0xfff80000 Erasing flash at 0xfffa0000 Erasing flash at 0xfffc0000 Erasing flash at 0xfffe0000 Erasing flash passed Programming u-boot.bin , please wait .... Programming flash passed Verifying u-boot.bin , please wait .... Verifying target memory passed 440GX>
One interesting thing is when I dump the failed programming attempt and diff it's contents versus my u-boot image it's only the first 512 bytes that are incorrect. Within the 512 bytes I can partially see the contents of the image with some of the data corrupted.
Another characteristic of my problem is I can program the flash if I allow u-boot to configure the board.
440GX>reset halt - TARGET: processing user reset request - TARGET: resetting target passed - TARGET: processing target startup .... - TARGET: core #0 PVR is 0x51B21892 - TARGET: processing target startup passed 440GX>go 0xfffffffc 440GX>halt Core number : 0 Core state : debug mode Debug entry cause : JTAG stop request Current PC : 0x0ff57a70 Current CR : 0x24ff4f22 Current MSR : 0x00008000 Current LR : 0x0ff57a70 440GX>e;p;v Erasing flash at 0xfff80000 Erasing flash at 0xfffa0000 Erasing flash at 0xfffc0000 Erasing flash at 0xfffe0000 Erasing flash passed Programming u-boot.bin , please wait .... Programming flash passed Verifying u-boot.bin , please wait .... Verifying target memory passed 440GX>
Finally, if I comment out the BDI's [FLASH] workspace line within the configuration I am able to program the flash but it takes a bit longer.
Has anyone else experienced a similar problem? Why would the initial write to flash fail but all other writes work? Any idea why writes to flash work if u-boot initializes the ppc440gx?
If this question is way out of line for this list does anyone know where I can find BDI support?
Thank you, Kyle

Hi Kyle,
On Wednesday 28 October 2009 01:21:21 Kyle Smith wrote:
I realize this isn't a BDI3000 mailing list but I was hoping to get some input on my problem. I am trying to program u-boot onto the flash (S29GL512N) of a ppc440gx target using a BDI3000 but I am getting some weird behavior.
With my current BDI3000 (firmware v1.18) configuration (using SDRAM as the BDI workspace) the first program attempt always fails. Successive attempts after the failed one will work.
<snip>
One interesting thing is when I dump the failed programming attempt and diff it's contents versus my u-boot image it's only the first 512 bytes that are incorrect. Within the 512 bytes I can partially see the contents of the image with some of the data corrupted.
Another characteristic of my problem is I can program the flash if I allow u-boot to configure the board.
This sounds like a memory configuration in your BDI script for me. I suggest you check again the SDRAM controller parameters against the ones configured in U-Boot.
Cheers, Stefan
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office@denx.de
participants (2)
-
Kyle Smith
-
Stefan Roese