Commit Graph

1066 Commits

Author SHA1 Message Date
Stefan Schmidt 805db6ebf5 fw/atusb: add extra steps needed for HULUSB in README
To preapre the firmware image and flash it onto the device some
different steps are needed as the bootloader uses Atmels DFU variant.

Document the use of dfu-programmer to get the firmware onto the device.
2017-09-13 18:03:02 +02:00
Josef Filzmaier ea23c905d3 atusb/fw: Introduction of a new board named HULUSB
The Busware HUL v1.1 dongle is a product very similar
to the rzusb dongle but with the at86rf212 instead of
the at86rf230 transceiver.

Some code refactoring has been made in order to better
support multiple hardware targets. This includes:

The reset_rf functions are now in the board specific files.
The led functions are now in the board specific files.
The register read/write functions are moved from mac.c to the generic
board.c file as they are used by functions like reset_rf that are
not within the mac.c file. Also the subreg_read and subreg_write
functions were introduced for convenience.
The function to change state is now also in board.c.

The hardware types are moved into the atusb.h file (which is always
synchrornized with the linux atusb driver) because they are now used
by the driver to identify and configure the hardware.

Within the makefile a new target name is specified called: hulusb

Signed-off-by: Josef Filzmaier <j.filzmaier@gmx.at>
2017-09-13 17:45:54 +02:00
Josef Filzmaier 8c574484b8 atusb/fw: Introduce DEBUG flag
This flag can be used to enable debugging over uart. Currently only
available for boards with the at90usb1287 chip.

Signed-off-by: Josef Filzmaier <j.filzmaier@gmx.at>
2017-09-13 17:45:54 +02:00
Werner Almesberger ac710d0de4 web/index.html: update shop links; status table; link to ATUSB schematics 2017-05-10 09:11:00 -03:00
Stefan Schmidt 63ebcb535a web: update link to new firmware version 2016-12-04 12:15:36 +01:00
Stefan Schmidt 03ee256a3b web: add 0.3 firmware binaries into release folder for web page
Next to the atusb 0.3 release file we also have the file to be flashed
onto the Atmel Raven USB dongles for the first time with this release.

Also adding checksums here to verify a download.
2016-12-04 12:15:28 +01:00
Stefan Schmidt 5c5a93686b atusb/fw: update changelog for 0.3 firmware release
Update changes that come with the new release.
2016-11-23 23:45:20 +01:00
Stefan Schmidt 35d14c74d6 atusb: fw: define a new hardware type for the rzusb dongle
So far we do not need this in the firmware or in the driver but this might
become handy later on.

Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
2016-11-23 23:43:46 +01:00
Stefan Schmidt ae1455cc7d atusb-eui64: print out set address with upper case characters in hex
Align read out format with parameter format to allow easier
scripting for production.
2016-11-23 23:40:41 +01:00
Stefan Schmidt 434b4716d0 web: update status and links on the webpage
Linux-wpan is way further now and the driver is already in
mainline. Make sure our page is a bit more accurate.
2016-08-01 19:10:53 +02:00
Werner Almesberger e587d39d3d atusb/usb.sch, atusb.pro: replace CONN_1 with TESTPOINT 2016-08-01 12:17:18 -03:00
Werner Almesberger 087ef0ebf6 atusb/: use "r" and "c" from kicad-libs, instead of KiCad "device"
The latter even has incompatible changes. We really don't want that.
2016-08-01 12:10:15 -03:00
Werner Almesberger 7df9215b38 atusb/: ATmega32U2 symbol was "lost"; update 2016-08-01 12:06:25 -03:00
Stefan Schmidt 869f3c43bd atusb: fw: use extended operation mode also for transmitting
With this switch we have RX as well as TX extended operation mode for the
transceiver enabled. Tested and verified for atusb as well as rzusb.

The biggest change coming with this is that the hardware no handles automatic
retransmit of frames if an ACK was requested but not received. The needed
changes to the atusb kernel driver are also done already and will be submitted
once we release version 0.3 with this change included.
2016-04-22 22:25:20 +02:00
Stefan Schmidt dce8462939 atusb: fw: leave the FCS check to the kernel stack
This check is more harm than good. For example in promiscuous mode we might want
to get frames with invalid CRC. The kernel subsystem is in a way better
situation to understand what the user want thus we deliver all packets and leave
the decision to him.
2016-04-22 22:25:10 +02:00
Stefan Schmidt c6e776e714 atusb: fw: make the ifdefs in mac handling transceiver specific and not board specific
There could be different combinations here. E.g. there is a rzusb like board
with the transceiver replaced with an at86rf233.
2016-04-03 11:39:21 +02:00
Stefan Schmidt 968721c335 atusb: fw: re-factor SPI, USB and board_app code for board specifics
Move board specific code form spi, usb and board_app into the new board specific
files to avoid to many ifdefs.
2016-03-30 22:24:17 +02:00
Stefan Schmidt 65912c2acb atusb: fw: first round of re-factor after the integration of rzusb as a board
Move board specific parts in board_$NAME.c/h for a little abstraction and less
ifdef handling in common code.
2016-03-30 22:23:33 +02:00
Stefan Schmidt 9d043dcfd4 atusb: fw: make sure we return correctly for both atusb as well as rzusb
This was changed by the rzusb support patch. We should use the new generic
define here which maps it correctly on both devices.
2016-03-18 22:25:24 +01:00
Alexander Aring 5129029d3b atusb: fw: add support for rzusbstick
This patch adds support for the rzusbstick for the atusb firmware.
More detailed information about this usb stick:

http://www.atmel.com/tools/rzusbstick.aspx

Original I have the rzraven kit:

http://www.atmel.com/tools/rzraven.aspx

Which comes with a special cable and avr dragon programmer. You need
some programmer and wires to the programmers pins. To lookup how to
connect the programmer to the rzusbstick pinout, see:

http://www.atmel.com/Images/doc8117.pdf

page 22 (schematics of the rzusbstick).

Difference between atusb and rzusbstick(rzusb) is mainly the at86rf231
vs at86rf230 one. The rzusb contains the at86rf230 which is a little bit
hard to deal with it (and has a huge errata inside the datasheet).
Nevertheless with small schanges the atusb firmware can run now on the
rzusb. The rzusb contains also a bigger mcu, so we can maybe cache more
pdus for receive handling.

To compile the rzusb firmware call:
make NAME=rzusb

this will generate the rzusb.bin

then call the programmer (in my case avrdude):
avrdude -P usb -c dragon_jtag -p usb1287 -U flash:w:rzusb.bin

NOTE: currently there is no chance (I suppose) to ensure that the atusb
receive the correct firmware, so don't try to flash the atusb with the
rzusb firmware! Also the vendor and product id is the same.

This currently a RFC, it's a quick hack and I think we should update
more the documentation to support the rzusb.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Cc: Stefan Schmidt <stefan@osg.samsung.com>
Cc: Werner Almesberger <werner@almesberger.net>
2016-03-18 20:45:40 +01:00
Stefan Schmidt fde38d59e3 atusb/fw: Bump version to 0.3 after adding EUI64 read/write handling 2016-03-17 22:30:00 +01:00
Stefan Schmidt 583a7b72ee atusb/fw: add EUI64 read and write fw interface to permanently set an EUI64
The kernel driver will now ask for ATUSB_EUI64_READ during init and sets this
extended address if available. Use the atusb-eui64 utility from the tools folder
to read or set the permanent address.

After a new address is set the device will reset to make sure we are in a sane
state after the change.
2016-03-17 22:30:00 +01:00
Stefan Schmidt 55de8c6373 atusb-eui64: add utility to read/write and EUI64 from/to the device EEPROM
Together with the new fw version (starting with version 0.3) it is now possible
to set a permament EUI64 address into the devices EEPROM. The Linux driver will
get updated to choose this address, if available, instead of using a randomly
generated address.
2016-03-17 22:29:43 +01:00
Stefan Schmidt 15b15b9524 flashi/spi: Use tabs instead of spaces.
Purely cosmetic. No idea when this sneaked in here.
2015-06-09 22:43:32 +02:00
Werner Almesberger 37a4f00e41 atusb/fw/flash.c (flash_ops): fix placement of "const" 2015-05-29 09:43:02 -03:00
Werner Almesberger 9e9f65992c Merge branch 'master' of projects.qi-hardware.com:ben-wpan 2015-05-22 04:52:35 -03:00
Stefan Schmidt a0e3ad301e web: Correct fw path for atusb release and make rsync verbose 2015-05-22 09:48:52 +02:00
Stefan Schmidt d2a0bfa176 web: Add first atusb firmware release to website.
I decided to actually keep the file directly in the repo. Its small enough
and we have the rest of the website here already.
2015-05-21 15:41:41 +02:00
Stefan Schmidt c6a87b488e web: Update links to linux-wpan project, driver and general status
We are in a way better state now than two years ago. :)
2015-05-21 15:41:41 +02:00
Stefan Schmidt 809a0935d8 atusb/fw: Bump minor version to mark first public release.
With version 0.2 we made the first public release in binary form of the
firmware. This comes together with the merge of the ATUSB driver to the
mainline linux kernel.
2015-05-21 14:58:05 +02:00
Stefan Schmidt 3ebd17f9e6 atusb/fw: Add build system support for adding a DFU suffix to the fw file
DFU files need to have a valid DFU suffix which provides information about the
USB vendor and product ID it should be used for as well as same basic CRC file
integrity checking. The dfu-suffix tool can add this and got added to dfu-utils
in 0.7.

With the Makefile changes we take the original atusb-bin file, make a copy and
add the DFU suffix it before flashing.
2015-05-21 14:58:05 +02:00
Stefan Schmidt fc7551e532 atusb/fw: Use RX_AACK_ON instead of RX_ON in the firmware.
This allows to run the device in ARET networks as we handle the needed
automated ACK in hardware.
2015-05-20 15:02:19 +02:00
Stefan Schmidt 464ab40e39 Revert "atusb/fw/usb/: enable MCU reset on USB bus reset after config selection"
This reverts commit 9b2696b848.

With this patch ATUSB resets constantly when I use it in QEMU with USB
poassthrough.
2015-05-19 16:27:49 +02:00
Werner Almesberger f89ce523e8 atusb/fw/usb/usb.c (handle_setup): skip non-interface descriptors when processing SET_INTERFACE 2015-04-25 23:54:02 -03:00
Werner Almesberger 428390047f fw/atusb/ (dfu_flash_ops): make const 2015-04-21 08:11:50 -03:00
Werner Almesberger 4b6f390830 atusb/fw/usb/usb.c (handle_setup): also pass interface-level GET_DESCRIPTOR to get_descriptor 2015-04-12 04:16:23 -03:00
Werner Almesberger f7e684bbde atusb/fw/usb/usb.h: add endpoint types 2015-04-12 04:15:04 -03:00
Werner Almesberger a6c639bbb3 atusb/fw/usb/usb.h: add a few common class codes 2015-04-11 14:53:52 -03:00
Werner Almesberger 88e2bde7d6 atusb/fw/usb/: fix incorrect code point for USB_CLASS_PER_INTERFACE
The code of USB_CLASS_PER_INTERFACE is 0 and not 0xfe.
USB_CLASS_APP_SPEC is 0xfe. Also corrected the use in dfu.c
2015-04-11 14:49:41 -03:00
Werner Almesberger b51d442c31 atusb/fw/usb/dfu.c (config_descriptor): correct alt settings off-by-one error 2014-10-23 02:06:55 -03:00
Werner Almesberger f1e689eaa6 atusb/fw/: support alternative interface names with DFU 2014-03-25 20:54:09 -03:00
Werner Almesberger 8f2f13c30a atusb/fw/: DFU: support multiple sets of flash operations; support multiple alt settings 2014-03-24 17:18:02 -03:00
Werner Almesberger 8b0859486e atusb/fw/usb/: change a few more uses of ../board.h to board.h 2014-02-24 17:59:49 -03:00
Werner Almesberger 71ad8dae76 makefiles/Makefile.kicad (GERBERS): auto-choose between old and new file names
Recent versions of KiCAD use names like F_Cu.gtl, B_Mask.gbs, etc., while
older versions used Front.gtl, Mask_Back.gbs
2013-11-29 09:18:33 -03:00
Werner Almesberger a80ba86476 atusb/fw/usb/usb.h: define PID types (LS/FS) 2013-11-17 02:37:28 -03:00
Werner Almesberger c5f9cc1259 atusb/fw/: let include path find board.h instead of using ../board.h 2013-10-28 11:17:48 -03:00
Werner Almesberger 4690466a53 tools/lib/atusb-common.c (atusb_interrupt_wait): fix embarrassing build failure 2013-09-28 14:44:00 -03:00
Werner Almesberger bf067b3e73 atusb/fw/mac.c (RX_BUFS): increase buffer size from 2 to 3 frames 2013-07-30 20:38:13 -03:00
Werner Almesberger 08f4ac98fa Merge branch 'buffer-frames' 2013-07-30 20:37:12 -03:00
Werner Almesberger 873f80cb4d tools/atrf-txrx/atrf-txrx.c: option -q becomes "quick" and uses aggressive polling
This allows us to capture frames at full speed speed.
2013-07-30 20:16:02 -03:00