Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Thread

LPC2119 Replacing Flash Boot Loader

LPC2119 Replacing Flash Boot Loader

2004-07-11 by alipowsky

I'm trying to setup a failproof flash update method, so an interrupted
and incomplete flash update would not force to open the unit and
insert a jumper etc.

We did thuch things with other controllers, by using one sector as a
fixed service monitor, which was always called by reyset, and then
passed operation to the application, after the application had been
proved valid by checking some CRC or so.

This service monitor was never deleted, and allowed for recover, if
something went wrong during flash update procedure.

Now the LPC family incorporates something similar with the Flash Boot
Loader, but unfortunately this original Boot Loader is restricted to
the serial port, which is not available on top of every box we do.

So we came to the point, that replacing this Flash Boot Loader might
be the way out. 
Did anybody else try this? 
Is it possible, are there any restrictions?

Thanks,
Andreas

Re: [lpc2000] LPC2119 Replacing Flash Boot Loader

2004-07-11 by Robert Adsett

At 08:48 AM 7/11/04 +0000, you wrote:
>So we came to the point, that replacing this Flash Boot Loader might
>be the way out.
>Did anybody else try this?
>Is it possible, are there any restrictions?

The biggest restriction is that it is protected.  The second is that it 
contains the IAP and ISP support so even if you could erase it you would 
then have to somehow reverse engineer the flash algorithm (and there is no 
reason to believe that will stay constant over silicon revs).  There has 
been a rumor that someone erased the boot block accidentally but there have 
been no details so I don't believe it.  You should read back through the 
recent discussions "Activating Boot Loader..." and "Loading hexes..."

I think we came up with four basic techniques.
         1- (probably the most foolproof), Bring P0.14 (and serial port) 
out to a connector  These could be to a set of reserved pins or a reserved 
connector.  It's not as if d-subs are expensive.  Alternatively if you want 
to protect the interface you could place a standard ISP header in the box.
         2- As you suggested reserve the first sector as a utility block 
and place basic support routines and a program utility.  These are slightly 
more vulnerable but not much.  And of course a lot of people have written 
such utilities.
         3- Add a small micro as a monitor chip to monitor the incoming 
data and switch the micro to programming mode.
         4- erase the first sector so that the micro will automatically 
enter ISP mode on the next reset.  Probably the most vulnerable of the 4 to 
badly timed resets or power glitches (also programming errors) but with 
careful programming the window of vulnerability should be reduced to quite 
a small one.

I don't know of anyone doing 3 or 4 yet.  I would like to hear if anyone 
does and what their experience is.

If you are wanting to use something other than the serial port (or JTAG) 
then I think your only reasonable approaches are either 2 or 3 (Imagine 
using a LPC2104 to monitor an incoming communication line and on a magic 
sequence resetting the application LPC , decrypting the incoming data 
stream and using the standard ISP techniques to program the application LPC ;)

I would normally prefer #1.  The only argument I've heard against it that 
makes sense to me is for an application where an erased micro leaves behind 
potentially valuable information.  The other case I've had experience with 
is where a unprogrammed or partially programmed micro may be dangerous.  In 
that case though you usually want to do the programming in a more 
controlled environment and it probably makes sense to do that as a factory 
return. Someone has said they ran into a problem with people making bad 
cables and then the unit didn't operate but I don't see that as peculiar to 
ISP.  Pin headers and d-subs aren't particularly expensive and even if you 
are in an environment that required a sealed or ruggedized connector you 
can often add a pin or two w/o much cost increment.

Robert

" 'Freedom' has no meaning of itself.  There are always restrictions,
be they legal, genetic, or physical.  If you don't believe me, try to
chew a radio signal. "

                         Kelvin Throop, III

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.