1 |
ea1423e7
|
laforge
|
<section>Device Firmware Upgrade</section>
|
2 |
|
|
<para>
|
3 |
|
|
Since the device firmware is Free Software licensed under GNU GPL,
|
4 |
|
|
we encourage and enable users to enhance and adapt the firmware according to
|
5 |
|
|
their needs. In order to really benefit from this freedom, we have embedded
|
6 |
|
|
an easy mechanism to update the device firmware without any special tools /
|
7 |
|
|
adapters / cables / programmers or the like.
|
8 |
|
|
</para>
|
9 |
|
|
<para>
|
10 |
|
|
The OpenPICC implements the USB Device Firmware Upgrade speficication,
|
11 |
|
|
as released by the USB Association. Using this protocol, it is possible to
|
12 |
|
|
update the device firmware via special-purpose USB control requests.
|
13 |
|
|
</para>
|
14 |
|
|
<para>
|
15 |
|
|
A software implementation of the USB DFU host side was already available for
|
16 |
|
|
Linux under the name of "dfu-programmer". However, this program did not
|
17 |
|
|
implement the true standard, but some vendor-specific dialect of it.
|
18 |
|
|
Therefore, dfu-programmer has been enhanced to have full native support
|
19 |
|
|
for standard DFU.
|
20 |
|
|
</para>
|
21 |
|
|
</section> <!-- DFU -->
|
22 |
|
|
|
23 |
|
|
<section>Emergency Firmware Flash</section>
|
24 |
|
|
<para>
|
25 |
|
|
The AT91SAM7 microcontroller used in the device contains a USB flash loader
|
26 |
|
|
(called SAM-BA) in read-only memory. By setting a jumper on the PCB and
|
27 |
|
|
powering up the device for 20 seconds, this loader can be copied into the
|
28 |
|
|
first 8kb of flash memory, overwriting the existing content.
|
29 |
|
|
</para>
|
30 |
|
|
<para>
|
31 |
|
|
So if the DFU loader has become inoperable, e.g. because of bugs in
|
32 |
|
|
experimental DFU modifications, SAM-BA can be employed to rescue the system.
|
33 |
|
|
</para>
|
34 |
|
|
<para>
|
35 |
|
|
Apart from proprietary Windows software by Atmel, there's the Free Software
|
36 |
|
|
sam7utils project which provides a host program called 'sam7' to interface
|
37 |
|
|
with SAM-BA and facilitate a full-flash rewrite with DFU and the device firmware.
|
38 |
|
|
</para>
|
39 |
|
|
<para>
|
40 |
|
|
For more information on the flash procedure, we refer to the AT91SAM7 product
|
41 |
|
|
documentation, as well as the sam7utils documentation.
|
42 |
|
|
</para>
|
43 |
|
|
</section> <!-- SAM-BA -->
|