Changes from Version 1 of FireworksFirmwareTool

Show
Ignore:
Author:
ppalmers (IP: 134.58.253.57)
Timestamp:
06/10/08 02:07:07 (16 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FireworksFirmwareTool

    v0 v1  
     1= Fireworks Firmware Tool = 
     2 
     3Short help: 
     4{{{ 
     5Usage: ./ffado-fireworks-downloader [-g GUID] [-m MAGIC] [-p PORT] [-v LEVEL] 
     6            [--guid=GUID] [--magic=MAGIC] [--port=PORT] [--verbose=LEVEL] 
     7            OPERATION [ARGUMENTS] 
     8fireworks-downloader -- firmware downloader application for ECHO Fireworks 
     9devices 
     10 
     11OPERATIONS: 
     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 
     37Messing 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{{{ 
     4004144000490:  (fireworks-downloader.cpp)[ 104] main: Magic number not correct. Please specify the correct magic using the '-m' option. 
     4104144000600:  (fireworks-downloader.cpp)[ 105] main: Manipulating firmware can cause your device to magically stop working (a.k.a. 'bricking'). 
     4204144000609:  (fireworks-downloader.cpp)[ 106] main: Specifying the magic number indicates that you accept the risks involved 
     4304144000616:  (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 
     48To 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 
     53This will display a list of devices on the bus: 
     54{{{ 
     55Node id        GUID                  Vendor - Model 
     560              0x314fc00036de6850    'Linux - ohci1394 ' - '' 
     571              0x001486065ba9cc5f    'Echo Digital Audio' - 'AudioFire8' 
     58}}} 
     59 
     60== Displaying device info == 
     61 
     62Pick 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 
     67This results in: 
     68{{{ 
     6904306670482: Debug (efc_cmd.cpp)[ 171] showEfcCmd: EFC Length: 6 
     7004306670498: Debug (efc_cmd.cpp)[ 172] showEfcCmd: EFC Header: 
     7104306670506: Debug (efc_cmd.cpp)[ 173] showEfcCmd:  Version         : 0x00000000 
     7204306670514: Debug (efc_cmd.cpp)[ 174] showEfcCmd:  Sequence number : 0x00000002 
     7304306670522: Debug (efc_cmd.cpp)[ 175] showEfcCmd:  Category        : 0x00000000 
     7404306670530: Debug (efc_cmd.cpp)[ 176] showEfcCmd:  Command         : 0x00000000 
     7504306670570: Debug (efc_cmd.cpp)[ 177] showEfcCmd:  Return Value    : 0x00000000 
     7604306670583: Debug (efc_cmds_hardware.cpp)[ 127] showEfcCmd: EFC HW CAPS info: 
     7704306670591: Debug (efc_cmds_hardware.cpp)[ 128] showEfcCmd:  Flags   : 0x00000011 
     7804306670599: Debug (efc_cmds_hardware.cpp)[ 129] showEfcCmd:  GUID    : 001486065BA9CC5F 
     7904306670607: Debug (efc_cmds_hardware.cpp)[ 130] showEfcCmd:  HwType  : 0x00000AF8 
     8004306670615: Debug (efc_cmds_hardware.cpp)[ 131] showEfcCmd:  Version : 0 
     8104306670622: Debug (efc_cmds_hardware.cpp)[ 132] showEfcCmd:  Vendor  : Echo Digital Audio 
     8204306670629: Debug (efc_cmds_hardware.cpp)[ 133] showEfcCmd:  Model   : AudioFire8 
     8304306670645: Debug (efc_cmds_hardware.cpp)[ 135] showEfcCmd:  Supported Clocks   : 0x0000000D 
     8404306670653: Debug (efc_cmds_hardware.cpp)[ 136] showEfcCmd:  # 1394 Playback    : 10 
     8504306670660: Debug (efc_cmds_hardware.cpp)[ 137] showEfcCmd:  # 1394 Record      : 10 
     8604306670667: Debug (efc_cmds_hardware.cpp)[ 138] showEfcCmd:  # Physical out     : 10 
     8704306670674: Debug (efc_cmds_hardware.cpp)[ 139] showEfcCmd:  # Physical in      : 10 
     8804306670681: Debug (efc_cmds_hardware.cpp)[ 142] showEfcCmd:  # Output Groups    : 2 
     8904306670688: Debug (efc_cmds_hardware.cpp)[ 145] showEfcCmd:      Group 0: Type 0x00, count 8 
     9004306670696: Debug (efc_cmds_hardware.cpp)[ 145] showEfcCmd:      Group 1: Type 0x01, count 2 
     9104306670713: Debug (efc_cmds_hardware.cpp)[ 147] showEfcCmd:  # Input Groups     : 2 
     9204306670721: Debug (efc_cmds_hardware.cpp)[ 150] showEfcCmd:      Group 0: Type 0x00, count 8 
     9304306670728: Debug (efc_cmds_hardware.cpp)[ 150] showEfcCmd:      Group 1: Type 0x01, count 2 
     9404306670736: Debug (efc_cmds_hardware.cpp)[ 152] showEfcCmd:  # Midi out         : 1 
     9504306670743: Debug (efc_cmds_hardware.cpp)[ 153] showEfcCmd:  # Midi in          : 1 
     9604306670750: Debug (efc_cmds_hardware.cpp)[ 154] showEfcCmd:  Max Sample Rate    : 96000 
     9704306670757: Debug (efc_cmds_hardware.cpp)[ 155] showEfcCmd:  Min Sample Rate    : 32000 
     9804306670764: Debug (efc_cmds_hardware.cpp)[ 156] showEfcCmd:  DSP version        : 0x04080000 
     9904306670779: Debug (efc_cmds_hardware.cpp)[ 157] showEfcCmd:  ARM version        : 0x04080000 
     10004306670786: Debug (efc_cmds_hardware.cpp)[ 158] showEfcCmd:  # Mix play chann.  : 10 
     10104306670793: Debug (efc_cmds_hardware.cpp)[ 159] showEfcCmd:  # Mix rec chann.   : 10 
     10204306670811: Debug (ffadodevice.cpp)[ 205] showDevice: Attached to port.......: 0 (ohci1394) 
     10304306670821: Debug (ffadodevice.cpp)[ 206] showDevice: Node...................: 1 
     10404306670834: Debug (ffadodevice.cpp)[ 208] showDevice: Vendor name............: Echo Digital Audio 
     10504306670843: Debug (ffadodevice.cpp)[ 210] showDevice: Model name.............: AudioFire8 
     10604306670856: Debug (ffadodevice.cpp)[ 212] showDevice: GUID...................: 001486065ba9cc5f 
     10704306670890: Debug (ffadodevice.cpp)[ 217] showDevice: Assigned ID....: dev? 
     108 
     109Summary 
     110------- 
     111 
     112Nr | AddressType     | Direction | SubUnitType | SubUnitId | FunctionBlockType | FunctionBlockId | Id   | Type         |Name 
     113---+-----------------+-----------+-------------+-----------+-------------------+-----------------+------+--------------+------ 
     114 
     115Connections 
     116----------- 
     117digraph avcconnections { 
     118} 
     119Use "dot -Tps FILENAME.dot -o FILENAME.ps" to generate graph 
     120}}} 
     121 
     122== Uploading firmware == 
     123 
     124=== Aquiring the firmware file === 
     125Get 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 
     130For the AudioFire2 and AudioFire4 the firmware file is:  
     131 * Fireworks3.dat 
     132 
     133For the AudioFire8 the firmware file are:  
     134 * bootstrap.dat 
     135 * audiofire8.dat 
     136 * audiofire8_E.dat 
     137 * FireworksARM.dat 
     138 
     139For 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 
     147Pick 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 
     149Then upload the files: 
     150{{{ 
     151./ffado-fireworks-downloader -m XXX -g 0x001486065ba9cc5f upload FILENAME 
     152}}} 
     153 
     154Where 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