1
|
<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 -->
|
44
|
|