| 1 | = Fireworks Firmware Tool = |
---|
| 2 | |
---|
| 3 | Short help: |
---|
| 4 | {{{ |
---|
| 5 | Usage: ./ffado-fireworks-downloader [-g GUID] [-m MAGIC] [-p PORT] [-v LEVEL] |
---|
| 6 | [--guid=GUID] [--magic=MAGIC] [--port=PORT] [--verbose=LEVEL] |
---|
| 7 | OPERATION [ARGUMENTS] |
---|
| 8 | fireworks-downloader -- firmware downloader application for ECHO Fireworks |
---|
| 9 | devices |
---|
| 10 | |
---|
| 11 | OPERATIONS: |
---|
| 12 | list |
---|
| 13 | Lists devices on the bus |
---|
| 14 | display |
---|
| 15 | Display information about a device and it's firmware |
---|
| 16 | info FILE |
---|
| 17 | Display information about the firmware contained in FILE |
---|
| 18 | upload FILE |
---|
| 19 | Upload the firmware contained in FILE to the device |
---|
| 20 | download FILE START_ADDR LEN |
---|
| 21 | Download the flash contents from the device to FILE |
---|
| 22 | Starts at address START_ADDR and reads LEN quadlets |
---|
| 23 | verify FILE |
---|
| 24 | Verify that the firmware contained in the device corresponds |
---|
| 25 | to the one contained in FILE |
---|
| 26 | |
---|
| 27 | -g, --guid=GUID GUID of the target device |
---|
| 28 | -m, --magic=MAGIC A magic number you have to obtain before this code |
---|
| 29 | will work.Specifying it means that you accept the |
---|
| 30 | risks that come with this tool. |
---|
| 31 | -p, --port=PORT Port to use |
---|
| 32 | -v, --verbose=LEVEL Produce verbose output (set level 0-10) |
---|
| 33 | }}} |
---|
| 34 | |
---|
| 35 | == Disclamer == |
---|
| 36 | |
---|
| 37 | 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: |
---|
| 38 | |
---|
| 39 | {{{ |
---|
| 40 | 04144000490: (fireworks-downloader.cpp)[ 104] main: Magic number not correct. Please specify the correct magic using the '-m' option. |
---|
| 41 | 04144000600: (fireworks-downloader.cpp)[ 105] main: Manipulating firmware can cause your device to magically stop working (a.k.a. 'bricking'). |
---|
| 42 | 04144000609: (fireworks-downloader.cpp)[ 106] main: Specifying the magic number indicates that you accept the risks involved |
---|
| 43 | 04144000616: (fireworks-downloader.cpp)[ 107] main: with using this tool. The magic number can be found in the source code. |
---|
| 44 | }}} |
---|
| 45 | |
---|
| 46 | == Listing Devices == |
---|
| 47 | |
---|
| 48 | To use the tool, first connect a fireworks device, and then run (replace XXX with the correct magic): |
---|
| 49 | {{{ |
---|
| 50 | $ ./ffado-fireworks-downloader -m XXX list |
---|
| 51 | }}} |
---|
| 52 | |
---|
| 53 | This will display a list of devices on the bus: |
---|
| 54 | {{{ |
---|
| 55 | Node id GUID Vendor - Model |
---|
| 56 | 0 0x314fc00036de6850 'Linux - ohci1394 ' - '' |
---|
| 57 | 1 0x001486065ba9cc5f 'Echo Digital Audio' - 'AudioFire8' |
---|
| 58 | }}} |
---|
| 59 | |
---|
| 60 | == Displaying device info == |
---|
| 61 | |
---|
| 62 | 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: |
---|
| 63 | {{{ |
---|
| 64 | ./ffado-fireworks-downloader -m XXX -g 0x001486065ba9cc5f display |
---|
| 65 | }}} |
---|
| 66 | |
---|
| 67 | This results in: |
---|
| 68 | {{{ |
---|
| 69 | 04306670482: Debug (efc_cmd.cpp)[ 171] showEfcCmd: EFC Length: 6 |
---|
| 70 | 04306670498: Debug (efc_cmd.cpp)[ 172] showEfcCmd: EFC Header: |
---|
| 71 | 04306670506: Debug (efc_cmd.cpp)[ 173] showEfcCmd: Version : 0x00000000 |
---|
| 72 | 04306670514: Debug (efc_cmd.cpp)[ 174] showEfcCmd: Sequence number : 0x00000002 |
---|
| 73 | 04306670522: Debug (efc_cmd.cpp)[ 175] showEfcCmd: Category : 0x00000000 |
---|
| 74 | 04306670530: Debug (efc_cmd.cpp)[ 176] showEfcCmd: Command : 0x00000000 |
---|
| 75 | 04306670570: Debug (efc_cmd.cpp)[ 177] showEfcCmd: Return Value : 0x00000000 |
---|
| 76 | 04306670583: Debug (efc_cmds_hardware.cpp)[ 127] showEfcCmd: EFC HW CAPS info: |
---|
| 77 | 04306670591: Debug (efc_cmds_hardware.cpp)[ 128] showEfcCmd: Flags : 0x00000011 |
---|
| 78 | 04306670599: Debug (efc_cmds_hardware.cpp)[ 129] showEfcCmd: GUID : 001486065BA9CC5F |
---|
| 79 | 04306670607: Debug (efc_cmds_hardware.cpp)[ 130] showEfcCmd: HwType : 0x00000AF8 |
---|
| 80 | 04306670615: Debug (efc_cmds_hardware.cpp)[ 131] showEfcCmd: Version : 0 |
---|
| 81 | 04306670622: Debug (efc_cmds_hardware.cpp)[ 132] showEfcCmd: Vendor : Echo Digital Audio |
---|
| 82 | 04306670629: Debug (efc_cmds_hardware.cpp)[ 133] showEfcCmd: Model : AudioFire8 |
---|
| 83 | 04306670645: Debug (efc_cmds_hardware.cpp)[ 135] showEfcCmd: Supported Clocks : 0x0000000D |
---|
| 84 | 04306670653: Debug (efc_cmds_hardware.cpp)[ 136] showEfcCmd: # 1394 Playback : 10 |
---|
| 85 | 04306670660: Debug (efc_cmds_hardware.cpp)[ 137] showEfcCmd: # 1394 Record : 10 |
---|
| 86 | 04306670667: Debug (efc_cmds_hardware.cpp)[ 138] showEfcCmd: # Physical out : 10 |
---|
| 87 | 04306670674: Debug (efc_cmds_hardware.cpp)[ 139] showEfcCmd: # Physical in : 10 |
---|
| 88 | 04306670681: Debug (efc_cmds_hardware.cpp)[ 142] showEfcCmd: # Output Groups : 2 |
---|
| 89 | 04306670688: Debug (efc_cmds_hardware.cpp)[ 145] showEfcCmd: Group 0: Type 0x00, count 8 |
---|
| 90 | 04306670696: Debug (efc_cmds_hardware.cpp)[ 145] showEfcCmd: Group 1: Type 0x01, count 2 |
---|
| 91 | 04306670713: Debug (efc_cmds_hardware.cpp)[ 147] showEfcCmd: # Input Groups : 2 |
---|
| 92 | 04306670721: Debug (efc_cmds_hardware.cpp)[ 150] showEfcCmd: Group 0: Type 0x00, count 8 |
---|
| 93 | 04306670728: Debug (efc_cmds_hardware.cpp)[ 150] showEfcCmd: Group 1: Type 0x01, count 2 |
---|
| 94 | 04306670736: Debug (efc_cmds_hardware.cpp)[ 152] showEfcCmd: # Midi out : 1 |
---|
| 95 | 04306670743: Debug (efc_cmds_hardware.cpp)[ 153] showEfcCmd: # Midi in : 1 |
---|
| 96 | 04306670750: Debug (efc_cmds_hardware.cpp)[ 154] showEfcCmd: Max Sample Rate : 96000 |
---|
| 97 | 04306670757: Debug (efc_cmds_hardware.cpp)[ 155] showEfcCmd: Min Sample Rate : 32000 |
---|
| 98 | 04306670764: Debug (efc_cmds_hardware.cpp)[ 156] showEfcCmd: DSP version : 0x04080000 |
---|
| 99 | 04306670779: Debug (efc_cmds_hardware.cpp)[ 157] showEfcCmd: ARM version : 0x04080000 |
---|
| 100 | 04306670786: Debug (efc_cmds_hardware.cpp)[ 158] showEfcCmd: # Mix play chann. : 10 |
---|
| 101 | 04306670793: Debug (efc_cmds_hardware.cpp)[ 159] showEfcCmd: # Mix rec chann. : 10 |
---|
| 102 | 04306670811: Debug (ffadodevice.cpp)[ 205] showDevice: Attached to port.......: 0 (ohci1394) |
---|
| 103 | 04306670821: Debug (ffadodevice.cpp)[ 206] showDevice: Node...................: 1 |
---|
| 104 | 04306670834: Debug (ffadodevice.cpp)[ 208] showDevice: Vendor name............: Echo Digital Audio |
---|
| 105 | 04306670843: Debug (ffadodevice.cpp)[ 210] showDevice: Model name.............: AudioFire8 |
---|
| 106 | 04306670856: Debug (ffadodevice.cpp)[ 212] showDevice: GUID...................: 001486065ba9cc5f |
---|
| 107 | 04306670890: Debug (ffadodevice.cpp)[ 217] showDevice: Assigned ID....: dev? |
---|
| 108 | |
---|
| 109 | Summary |
---|
| 110 | ------- |
---|
| 111 | |
---|
| 112 | Nr | AddressType | Direction | SubUnitType | SubUnitId | FunctionBlockType | FunctionBlockId | Id | Type |Name |
---|
| 113 | ---+-----------------+-----------+-------------+-----------+-------------------+-----------------+------+--------------+------ |
---|
| 114 | |
---|
| 115 | Connections |
---|
| 116 | ----------- |
---|
| 117 | digraph avcconnections { |
---|
| 118 | } |
---|
| 119 | Use "dot -Tps FILENAME.dot -o FILENAME.ps" to generate graph |
---|
| 120 | }}} |
---|
| 121 | |
---|
| 122 | == Uploading firmware == |
---|
| 123 | |
---|
| 124 | === Aquiring the firmware file === |
---|
| 125 | 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: |
---|
| 126 | {{{ |
---|
| 127 | ~/.wine/drive_c/Program Files/Echo Digital Audio/AudioFire/ |
---|
| 128 | }}} |
---|
| 129 | |
---|
| 130 | For the AudioFire2 and AudioFire4 the firmware file is: |
---|
| 131 | * Fireworks3.dat |
---|
| 132 | |
---|
| 133 | For the AudioFire8 the firmware file are: |
---|
| 134 | * bootstrap.dat |
---|
| 135 | * audiofire8.dat |
---|
| 136 | * audiofire8_E.dat |
---|
| 137 | * FireworksARM.dat |
---|
| 138 | |
---|
| 139 | For the AudioFire12 the firmware file are: |
---|
| 140 | * bootstrap.dat |
---|
| 141 | * audiofire8.dat |
---|
| 142 | * audiofire8_E.dat |
---|
| 143 | * FireworksARM.dat |
---|
| 144 | |
---|
| 145 | === Uploading the firmware file(s) === |
---|
| 146 | |
---|
| 147 | 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. |
---|
| 148 | |
---|
| 149 | Then upload the files: |
---|
| 150 | {{{ |
---|
| 151 | ./ffado-fireworks-downloader -m XXX -g 0x001486065ba9cc5f upload FILENAME |
---|
| 152 | }}} |
---|
| 153 | |
---|
| 154 | Where you replace FILENAME with the filename(s) of the firmware. Note that for the AudioFire8 and AudioFire12 you have to upload multiple files. Please upload them in the order they are listed on this page. |
---|
| 155 | |