
Sam Song wrote:
--- Sam Song samsongshu@yahoo.com.cn wrote:
Hi all,
After porting u-boot on a 8248 board, I was confused
by a programming problem with WireTAP. For the sake of 8248/8260 HRCW theory, RSTCONF must pull up to connect 8248 target with a No-head config file when there is a blank FLASH on board or WireTAP cannot init the target correctly. The programming process is as follows:
Pull up RSTCONF -> Connect WireTAP with No-head config file -> Program the image on 0xff000000 -> Disconnect WireTAP -> Pull down RSTCONF -> Power-on -> No serial output -> Power-down -> Connect WireTAP with head config file -> Reprogram the same image at 0xff000000 -> Disconnect WireTAP -> Power-on -> Work!
We suspected sth wrong on first programmig. So we checked the FLASH content with WireTAP but found at least first and last three bytes had the right content. Should I need to check all FLASH content? The image I compiled first is about 100KByte!!!
Ummm, a little improvement. I finally found out the problem was due to first program itself. The new flash with first config file could only be programmed with a limited sector.
Programmed part location: 0x0 - 0x800; 0x10000 - 0x10800; 0x20000 - 0x20800.
Seems 2KB in every 64KB area was programmed when RSTCONF pulls up. Still a strang phenomenon to me:-)
Could anyone have similar experience on 8260 series target? How about BDI2000 on it? Any idea?
If anyone share their experience on BDI would be a great help.
Thanks,
Sam
The reason your first approach didn't work is because the HRCW gets read from the _first_32_bytes_ of flash (four reads at offsets 0, 8, 16, 24 with CS0 asserted). It isn't read from any true "address" - BR0/OR0 are configured by the HRCW and thus cannot be used for reading the HRCW. When you programmed u-boot at 0xFFF00000, u-boot was programmed into the proper location but the HRCW got programmed into the top part of your flash device, _not_ the first 32 bytes. When you programmed u-boot at 0xFF000000, you got the HRCW in the right place but not u-boot (but that was OK because you programmed it in the right place previously).
This is another reason for doing "low-boot" rather than "high-boot": in "low-boot" mode, both u-boot and the HRCW get placed in the proper memory locations inherently.
Answering your second question, my experience is that RSTCONF is necessary and _barely_ sufficient to program the HRCW in the first 32 bytes of flash. I never try to do more than that. Once you have a valid HRCW programmed, deassert RSTCONF, cycle power (IMPORTANT since the HRCW is only read on a full reset) and proceed normally.
gvb