[U-Boot-Users] Strange : Same 8248 image needs to be reprogrammed

Jerry Van Baren gerald.vanbaren at smiths-aerospace.com
Thu Jun 23 16:07:24 CEST 2005

Sam Song wrote:
> --- Sam Song <samsongshu at 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
>>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.


More information about the U-Boot mailing list