Fireworks Firmware Tool
Short help:
Usage: ./ffado-fireworks-downloader [-g GUID] [-m MAGIC] [-p PORT] [-v LEVEL]
[--guid=GUID] [--magic=MAGIC] [--port=PORT] [--verbose=LEVEL]
OPERATION [ARGUMENTS]
fireworks-downloader -- firmware downloader application for ECHO Fireworks
devices
OPERATIONS:
list
Lists devices on the bus
display
Display information about a device and it's firmware
info FILE
Display information about the firmware contained in FILE
upload FILE
Upload the firmware contained in FILE to the device
download FILE START_ADDR LEN
Download the flash contents from the device to FILE
Starts at address START_ADDR and reads LEN quadlets
verify FILE
Verify that the firmware contained in the device corresponds
to the one contained in FILE
-g, --guid=GUID GUID of the target device
-m, --magic=MAGIC A magic number you have to obtain before this code
will work.Specifying it means that you accept the
risks that come with this tool.
-p, --port=PORT Port to use
-v, --verbose=LEVEL Produce verbose output (set level 0-10)
Disclamer
Messing with firmware can be a dangerous thing. It can seriously damage your device. To make sure you are aware of this, the downloader tool does not work unless you specify the correct magic option. This means that you have to add "-m 0x001807198000LL" to the options before the downloader will work. By doing so you acknowledge that you're working at own risk. Otherwise you will get the following error:
04144000490: (fireworks-downloader.cpp)[ 104] main: Magic number not correct. Please specify the correct magic using the '-m' option. 04144000600: (fireworks-downloader.cpp)[ 105] main: Manipulating firmware can cause your device to magically stop working (a.k.a. 'bricking'). 04144000609: (fireworks-downloader.cpp)[ 106] main: Specifying the magic number indicates that you accept the risks involved 04144000616: (fireworks-downloader.cpp)[ 107] main: with using this tool. The magic number can be found in the source code.
Listing Devices
To use the tool, first connect a fireworks device, and then run (replace XXX with the correct magic):
$ ./ffado-fireworks-downloader -m XXX list
This will display a list of devices on the bus:
Node id GUID Vendor - Model 0 0x314fc00036de6850 'Linux - ohci1394 ' - '' 1 0x001486065ba9cc5f 'Echo Digital Audio' - 'AudioFire8'
Displaying device info
Pick the device you want to upload a new firmware to from the list, and get the GUID. In this example the GUID is 0x001486065ba9cc5f. Then display the device info:
./ffado-fireworks-downloader -m XXX -g 0x001486065ba9cc5f display
This results in:
04306670482: Debug (efc_cmd.cpp)[ 171] showEfcCmd: EFC Length: 6
04306670498: Debug (efc_cmd.cpp)[ 172] showEfcCmd: EFC Header:
04306670506: Debug (efc_cmd.cpp)[ 173] showEfcCmd: Version : 0x00000000
04306670514: Debug (efc_cmd.cpp)[ 174] showEfcCmd: Sequence number : 0x00000002
04306670522: Debug (efc_cmd.cpp)[ 175] showEfcCmd: Category : 0x00000000
04306670530: Debug (efc_cmd.cpp)[ 176] showEfcCmd: Command : 0x00000000
04306670570: Debug (efc_cmd.cpp)[ 177] showEfcCmd: Return Value : 0x00000000
04306670583: Debug (efc_cmds_hardware.cpp)[ 127] showEfcCmd: EFC HW CAPS info:
04306670591: Debug (efc_cmds_hardware.cpp)[ 128] showEfcCmd: Flags : 0x00000011
04306670599: Debug (efc_cmds_hardware.cpp)[ 129] showEfcCmd: GUID : 001486065BA9CC5F
04306670607: Debug (efc_cmds_hardware.cpp)[ 130] showEfcCmd: HwType : 0x00000AF8
04306670615: Debug (efc_cmds_hardware.cpp)[ 131] showEfcCmd: Version : 0
04306670622: Debug (efc_cmds_hardware.cpp)[ 132] showEfcCmd: Vendor : Echo Digital Audio
04306670629: Debug (efc_cmds_hardware.cpp)[ 133] showEfcCmd: Model : AudioFire8
04306670645: Debug (efc_cmds_hardware.cpp)[ 135] showEfcCmd: Supported Clocks : 0x0000000D
04306670653: Debug (efc_cmds_hardware.cpp)[ 136] showEfcCmd: # 1394 Playback : 10
04306670660: Debug (efc_cmds_hardware.cpp)[ 137] showEfcCmd: # 1394 Record : 10
04306670667: Debug (efc_cmds_hardware.cpp)[ 138] showEfcCmd: # Physical out : 10
04306670674: Debug (efc_cmds_hardware.cpp)[ 139] showEfcCmd: # Physical in : 10
04306670681: Debug (efc_cmds_hardware.cpp)[ 142] showEfcCmd: # Output Groups : 2
04306670688: Debug (efc_cmds_hardware.cpp)[ 145] showEfcCmd: Group 0: Type 0x00, count 8
04306670696: Debug (efc_cmds_hardware.cpp)[ 145] showEfcCmd: Group 1: Type 0x01, count 2
04306670713: Debug (efc_cmds_hardware.cpp)[ 147] showEfcCmd: # Input Groups : 2
04306670721: Debug (efc_cmds_hardware.cpp)[ 150] showEfcCmd: Group 0: Type 0x00, count 8
04306670728: Debug (efc_cmds_hardware.cpp)[ 150] showEfcCmd: Group 1: Type 0x01, count 2
04306670736: Debug (efc_cmds_hardware.cpp)[ 152] showEfcCmd: # Midi out : 1
04306670743: Debug (efc_cmds_hardware.cpp)[ 153] showEfcCmd: # Midi in : 1
04306670750: Debug (efc_cmds_hardware.cpp)[ 154] showEfcCmd: Max Sample Rate : 96000
04306670757: Debug (efc_cmds_hardware.cpp)[ 155] showEfcCmd: Min Sample Rate : 32000
04306670764: Debug (efc_cmds_hardware.cpp)[ 156] showEfcCmd: DSP version : 0x04080000
04306670779: Debug (efc_cmds_hardware.cpp)[ 157] showEfcCmd: ARM version : 0x04080000
04306670786: Debug (efc_cmds_hardware.cpp)[ 158] showEfcCmd: # Mix play chann. : 10
04306670793: Debug (efc_cmds_hardware.cpp)[ 159] showEfcCmd: # Mix rec chann. : 10
04306670811: Debug (ffadodevice.cpp)[ 205] showDevice: Attached to port.......: 0 (ohci1394)
04306670821: Debug (ffadodevice.cpp)[ 206] showDevice: Node...................: 1
04306670834: Debug (ffadodevice.cpp)[ 208] showDevice: Vendor name............: Echo Digital Audio
04306670843: Debug (ffadodevice.cpp)[ 210] showDevice: Model name.............: AudioFire8
04306670856: Debug (ffadodevice.cpp)[ 212] showDevice: GUID...................: 001486065ba9cc5f
04306670890: Debug (ffadodevice.cpp)[ 217] showDevice: Assigned ID....: dev?
Summary
-------
Nr | AddressType | Direction | SubUnitType | SubUnitId | FunctionBlockType | FunctionBlockId | Id | Type |Name
---+-----------------+-----------+-------------+-----------+-------------------+-----------------+------+--------------+------
Connections
-----------
digraph avcconnections {
}
Use "dot -Tps FILENAME.dot -o FILENAME.ps" to generate graph
Uploading firmware
Aquiring the firmware file
Get the fireworks firmware files for your device. You can get these by running the ECHO driver package for windows under wine. This will extract the audiofire firmware files into your wine drive C. In my case the files can be found here:
~/.wine/drive_c/Program Files/Echo Digital Audio/AudioFire/
For the AudioFire?2 and AudioFire?4 the firmware file is:
- Fireworks3.dat
NOTE: AF8 and AF12 firmware upload is not functional at the moment. For the AudioFire?8 the firmware file are:
- bootstrap.dat
- audiofire8.dat
- audiofire8_E.dat
- FireworksARM.dat
For the AudioFire?12 the firmware file are:
- bootstrap.dat
- audiofire8.dat
- audiofire8_E.dat
- FireworksARM.dat
Uploading the firmware file(s)
Pick the device you want to upload a new firmware to from the list, and get the GUID. In this example the GUID is 0x001486065ba9cc5f.
Then upload the files:
./ffado-fireworks-downloader -m XXX -g 0x001486065ba9cc5f upload FILENAME
Where you replace FILENAME with the filename(s) of the firmware. Note that for the AudioFire?8 and AudioFire?12 you have to upload multiple files. Please upload them in the order they are listed on this page.
Attachments
- echo-firmware-4.8.tar.gz (380.3 kB) -
Firmware files for the ECHO AudioFire? range (v4.8)
, added by ppalmers on 06/20/08 01:52:02.
