Add firmware for the ATUSB IEEE 802.15.4 USB Adapter
[linux-libre-firmware.git] / atusb / README
diff --git a/atusb/README b/atusb/README
new file mode 100644 (file)
index 0000000..99ceb22
--- /dev/null
@@ -0,0 +1,94 @@
+Requires a very recent toolchain, because ATmega32U2 is relatively new.
+
+- Building:
+
+  make
+
+- Uploading the firmware to a Ben (for flashing with the atusb-pgm cable):
+
+  make HOST=<hostname> upload
+
+  Example:
+
+  make HOST=ben upload
+
+  HOST defaults to "jlime".
+
+- Flashing the boot loader:
+
+  Prerequisite: avrdude on the Ben.
+
+  Disconnect the atusb board from USB. Insert the atusb-pgm connector into
+  the Ben. Place the atusb-pgm adapter on the exposed contact pads of the
+  atusb board and push it down. Then run
+
+  make prog
+
+  This takes about 30 seconds. If the programming fails with an error
+  message like "Yikes!  Invalid device signature.", verify that the
+  atusb-pgm board is properly connected and placed, then try again.
+
+- Uploading the application:
+
+  Prerequisite: dfu-util installed on the PC.
+
+  Insert atusb into the PC, then run
+
+  make dfu
+
+  Note: since the boot loader resets the USB bus after timing out,
+  this operation can fail with a message like "No DFU capable USB device
+  found". Just retry, and it will eventually get through.
+
+
+HULUSB notes:
+-------------
+To prepare and flash the firmware on a HULUSB device some additional steps are
+needed;
+
+avr-objcopy -O ihex -R .signature -R .fuse -R .eeprom hulusb.elf hulusb.hex
+dfu-programmer at90usb1287 flash hulusb.hex
+dfu-programmer at90usb1287 reset
+
+--------------------------
+
+Making the toolchain:
+
+# patches according to
+# http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=789527
+
+# some gcc prerequisites
+
+apt-get remove avr-libc gcc-avr binutils-avr
+apt-get install libmpfr-dev libmpc-dev
+
+# binutils
+
+wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.tar.bz2
+tar xfj binutils-2.21.tar.bz2 
+cd binutils-2.21
+./configure --target=avr --disable-nls
+make
+make install
+
+# gcc
+
+wget http://ftpmirror.gnu.org/gcc/gcc-4.5.2/gcc-4.5.2.tar.bz2
+wget -O gcc_452_avr.patch http://gcc.gnu.org/bugzilla/attachment.cgi?id=23050
+tar xfj gcc-4.5.2.tar.bz2
+cd gcc-4.5.2
+patch -p1 -s <../gcc_452_avr.patch
+mkdir obj-avr
+cd obj-avr
+../configure --target=avr --enable-languages=c \
+    --disable-nls --disable-libssp --with-dwarf2
+make
+make install
+
+wget http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.7.1.tar.bz2
+tar xfj avr-libc-1.7.1.tar.bz2 
+cd avr-libc-1.7.1
+./bootstrap    # the automake at the end takes a while
+./configure --build=`./config.guess` --host=avr
+make
+make install