[U-Boot-Users] Strange : Same 8248 image needs to be reprogrammed
Jerry Van Baren
gerald.vanbaren at smiths-aerospace.com
Tue Jun 28 14:30:40 CEST 2005
Sam Song wrote:
> Jerry Van Baren wrote:
>>RSTCONF* is active low so either
>>a) you are pulling it down, not up
>>b) you have an inverter buffering it
>>c) are wrong (since you can program flash, this is
> Sure. Sth confused on RSTCONF#. Seems we should
> clarify the meaning of RSTCONF# first. I have no
> inverter buffering on RSTCONF#.
> When I say pull up RSTCONF#, i.e., deassert RSTCONF#,
> target will use the default value 0x00000000 as HRCW.
> At this time, 8248 doesn't get the HRCW from FLASH.
> Although the default value 0x00000000 isn't the
> expected, we can connect WireTAP or BDI to reset
> the target and program FLASH on board.
> By contraries, if RSTCONF# is pulled down, i.e.,
> assert RSTCONF#, 8248 does get the value from FLASH.
> At this time, if the FLASH content is 0xFFFFFFFF,
> 8248 core will stop work and even JTAG like WireTAP
> cannot reset the target.
> I got the above view from UM 5-1 ~ 5-13 Part II and
> my practice.
>>High boot: With RSTCONF* asserted, you can program
>>any of flash anywhere, so you could theoretically
>>program the HRCW and u-boot in the same programming
>>session (two programming operations). Since the
>>default HRCW when RSTCONF* is asserted sets the ISB
>>to 0x0000_0000, if
> Ummm, I found out the confusion coming from. Jerry,
> you thought the default HRCW value 0x000000 was due
> to RSTCONF# assertion(RSTCONF# pull low). Seems you
> inverted the view on default HRCW value.
> UM on line 11 P5-8 says, In a simple system that
> uses one stand-alone MPC8272, it is possible to use
> the default hard reset configuration words(all zeros).
> This is done by tying RSTCONF# input to VCC.
My bad. Indeed, I had the effect of RSTCONF* backwards: as you say,
pulling it down causes a fetch of the HRCW from flash while pulling it
up causes the default 0x00000000 to be used. Sorry.
> If inverted your RSTCONF# description, I come to find
> out several key point on BDI and a BRAND-NEW 8260
> serial target:
> * Low boot image programming : Deassert RSTCONF#,
> program u-boot, assert RSTCONF#, cycle power. Simple.
> OK, it's time for me to blame the reprogram strange
> things on WireTAP including it's config file. To
> program a boot-low image with WireTAP, H/W guy guides
> me pull up and down RSTCONF# with two different
> config files and reprogram the same image at the same
> location. There MUST sth needs improvement.
> Thanks again for your kind help,
Glad to help you shift the blame ;-), sorry about the confusion. FWIIW,
with the BDI2000 I need to use a different config file when I program an
erased (new) boot flash chip. The reason for this is because the IMMR
for the default HRCW (ISB) is at location 0x00000000. The first thing I
do in the config file is to move the IMMR to the "proper" place, after
which all the other initialization is fine because the IMMR is in the
same place. In "BDI2000 speak", WM32 is a 32 bit memory write, and the
following writes the IMMR register where it currently resides,
programming it to go to the proper location.
RSTCONF* deasserted (virgin/erased flash):
WM32 0x000101A8 0xF0000000 ; IMMR -> where we want it
RSTCONF* asserted (low) - this actually is a "NOP" but reminds me that
this is important and why when I try to use this config file to program
a virgin flash ;-).
WM32 0xF00101A8 0xF0000000 ; IMMR -> where we want it
This reminded me, my recipe needs another step to switch to your special
"RSTCONF* deasserted" BDI2000/WireTAP config before programming u-boot.
Programming u-boot is easier if you are using boot-low since one shot
programs it all.
If you are booting "high", you will need two programming operations, the
first being the HRCW at the first offsets of flash and the second to put
u-boot in. Note that it is pretty trivial to create a short s-record
file with just the HRCW (the easiest approach is to cut the first couple
of lines out of u-boot, but you will need to offset it properly,
typically via your WireTAP program command). Since the HRCW is pretty
constant, this isn't a big deal, but IMHO it is much easier, safer, and
better to use boot-low... but I'm preaching to the choir ;-).
More information about the U-Boot