From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerry Van Baren Date: Thu, 23 Jun 2005 10:07:24 -0400 Subject: [U-Boot-Users] Strange : Same 8248 image needs to be reprogrammed In-Reply-To: <20050623134611.48628.qmail@web15908.mail.cnb.yahoo.com> References: <20050623134611.48628.qmail@web15908.mail.cnb.yahoo.com> Message-ID: <42BAC21C.6020105@smiths-aerospace.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Sam Song wrote: > --- Sam Song 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