Add firmware for the ATUSB IEEE 802.15.4 USB Adapter
[linux-libre-firmware.git] / atusb / README
1 Requires a very recent toolchain, because ATmega32U2 is relatively new.
2
3 - Building:
4
5   make
6
7 - Uploading the firmware to a Ben (for flashing with the atusb-pgm cable):
8
9   make HOST=<hostname> upload
10
11   Example:
12
13   make HOST=ben upload
14
15   HOST defaults to "jlime".
16
17 - Flashing the boot loader:
18
19   Prerequisite: avrdude on the Ben.
20
21   Disconnect the atusb board from USB. Insert the atusb-pgm connector into
22   the Ben. Place the atusb-pgm adapter on the exposed contact pads of the
23   atusb board and push it down. Then run
24
25   make prog
26
27   This takes about 30 seconds. If the programming fails with an error
28   message like "Yikes!  Invalid device signature.", verify that the
29   atusb-pgm board is properly connected and placed, then try again.
30
31 - Uploading the application:
32
33   Prerequisite: dfu-util installed on the PC.
34
35   Insert atusb into the PC, then run
36
37   make dfu
38
39   Note: since the boot loader resets the USB bus after timing out,
40   this operation can fail with a message like "No DFU capable USB device
41   found". Just retry, and it will eventually get through.
42
43
44 HULUSB notes:
45 -------------
46 To prepare and flash the firmware on a HULUSB device some additional steps are
47 needed;
48
49 avr-objcopy -O ihex -R .signature -R .fuse -R .eeprom hulusb.elf hulusb.hex
50 dfu-programmer at90usb1287 flash hulusb.hex
51 dfu-programmer at90usb1287 reset
52
53 --------------------------
54
55 Making the toolchain:
56
57 # patches according to
58 # http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=789527
59
60 # some gcc prerequisites
61
62 apt-get remove avr-libc gcc-avr binutils-avr
63 apt-get install libmpfr-dev libmpc-dev
64
65 # binutils
66
67 wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.tar.bz2
68 tar xfj binutils-2.21.tar.bz2 
69 cd binutils-2.21
70 ./configure --target=avr --disable-nls
71 make
72 make install
73
74 # gcc
75
76 wget http://ftpmirror.gnu.org/gcc/gcc-4.5.2/gcc-4.5.2.tar.bz2
77 wget -O gcc_452_avr.patch http://gcc.gnu.org/bugzilla/attachment.cgi?id=23050
78 tar xfj gcc-4.5.2.tar.bz2
79 cd gcc-4.5.2
80 patch -p1 -s <../gcc_452_avr.patch
81 mkdir obj-avr
82 cd obj-avr
83 ../configure --target=avr --enable-languages=c \
84     --disable-nls --disable-libssp --with-dwarf2
85 make
86 make install
87
88 wget http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.7.1.tar.bz2
89 tar xfj avr-libc-1.7.1.tar.bz2 
90 cd avr-libc-1.7.1
91 ./bootstrap     # the automake at the end takes a while
92 ./configure --build=`./config.guess` --host=avr
93 make
94 make install