<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.14.1">
</HEAD>
<BODY>
I would have thought it would be nice to avoid an extra chip. I noticed after a quick scan through the documentation on the flash currently being used by the Neo that there is one 16K block of OTP memory. Of course this would only be any good if it could be mapped to the addresses that get downloaded by the CPU before it starts.<BR>
<BR>
I see a couple of problems with having one large complex bootloader. If it is large and complex there is more chance it will need to be changed due to changes in functionality or bugs. Each time it is changed you have a chance of bricking the device, either by the code not programming correctly or the code being wrong. If you always have a small stage 1 bootloader in place you can circumvent these problems.<BR>
<BR>
Regarding the &quot;simple interface&quot;, i agree that having an asynchronous serial interface (RS232) that goes to the outside world would be nice, but wonder how hard it would be to write a very basic USB driver with just enough functionality to do the job of downloading some fixed format data from a host. On the host side a simple program that can download data to a USB slave device would all that would be needed.&nbsp; From a user perspective it should be kept as simple as possible so if the main bootloader gets screwed up for whatever reason it would be nice to just plug it into your computer and execute a simple program to restore it.<BR>
<BR>
Simon<BR>
<BR>
<BR>
On Thu, 2007-05-17 at 01:58 -0300, Werner Almesberger wrote:<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">We rejected it, because we don't want to have yet more code</FONT>
<FONT COLOR="#000000">duplicating functionality found elsewhere to maintain. Besides, it</FONT>
<FONT COLOR="#000000">wouldn't be all that trivial, given that we don't have any &quot;simple&quot;</FONT>
<FONT COLOR="#000000">interfaces. (Anything that needs a debug board or other fancy</FONT>
<FONT COLOR="#000000">adapters doesn't count.)</FONT>

<FONT COLOR="#000000">Also, there really isn't much difference between a few protected</FONT>
<FONT COLOR="#000000">bytes or hundreds of protected kilobytes. We need an extra chip</FONT>
<FONT COLOR="#000000">anyway, and if we want something reasonably small and modern, it'll</FONT>
<FONT COLOR="#000000">have plenty of space. Thus there's no penalty in using it.</FONT>

<FONT COLOR="#000000">But yes, the &quot;small loader&quot; approach works well enough in other</FONT>
<FONT COLOR="#000000">contexts. I've used it myself.</FONT>

<FONT COLOR="#000000">- Werner</FONT>

</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>