= BeBoB Firmware Tool = Short help: {{{ Usage: ffado-bridgeco-downloader [OPTION...] OPERATION [ARGUMENTS] bridgeco-downloader -- firmware downloader application for BridgeCo devices OPERATION: GUID display GUID setguid NEW_GUID GUID firmware FILE GUID cne FILE GUID bcd FILE -b, --noboot Do no start bootloader (bootloader is already running) -f, --force Force firmware download -p, --port=PORT Set port -v, --verbose=level Produce verbose output -?, --help Give this help list --usage Give a short usage message -V, --version Print program version Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options. Report bugs to . }}} == Disclamer == Messing with firmware can be a dangerous thing. It can seriously damage your device. By using this tool you acknowledge that you're working at own risk. == Listing Devices == To use the tool, first connect a BeBoB device, and then run: {{{ ffado-bridgeco-downloader }}} This will display a list of devices on the bus: {{{ $ ffado-bridgeco-downloader Node id GUID Vendor - Model 0 0x00130e0100010265 'Focusrite' - 'Saffire' 1 0x314fc00036de6850 'Linux - ohci1394 ' - '' no message buffer overruns }}} == 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 0x00130e0100010265. Then display the device info: {{{ ffado-bridgeco-downloader GUID display }}} This results in: {{{ $ ffado-bridgeco-downloader 0x00130e0100010265 display 87075340408: (configrom.cpp)[ 581] printConfigRom: Config ROM 87075340516: (configrom.cpp)[ 582] printConfigRom: Current Node Id: 0 87075340526: (configrom.cpp)[ 583] printConfigRom: GUID: 0x00130E0100010265 87075340542: (configrom.cpp)[ 584] printConfigRom: Vendor Name: Focusrite 87075340553: (configrom.cpp)[ 585] printConfigRom: Model Name: Saffire 87075340562: (configrom.cpp)[ 586] printConfigRom: Node Vendor ID: 0x00130e 87075340572: (configrom.cpp)[ 587] printConfigRom: Model Id: 0x00000000 87075340580: (configrom.cpp)[ 588] printConfigRom: Unit Specifier ID: 0x00a02d 87075340598: (configrom.cpp)[ 589] printConfigRom: Unit version: 0x00010001 87075340608: (configrom.cpp)[ 590] printConfigRom: ISO resource manager: 0 87075340617: (configrom.cpp)[ 591] printConfigRom: Cycle master capable: 1 87075340625: (configrom.cpp)[ 592] printConfigRom: Bus manager capable: 1 87075340633: (configrom.cpp)[ 593] printConfigRom: Cycle clock accuracy: 100 87075340642: (configrom.cpp)[ 594] printConfigRom: Max rec: 8 (max asy payload: 512 bytes) Info Registers Manufactors Id: bridgeCo Protocol Version: 0x00000001 Bootloader Version: 0x00000000 GUID: 0x00130e0100010265 Hardware Model ID: 0x00000002 Hardware Revision: 0x00000001 Software Date: 14.12.2006, 16:50:00 Software Id: 0x00000000 Software Version: 0x02021d24 Base Address: 0x20080000 Max. Image Len: 0x00180000 Bootloader Date: 17.05.2005, 14:19:34 Debugger Id: 0x00000000 Debugger Version: 0x00000000 no message buffer overruns }}} == Uploading firmware == === Aquiring the firmware file === Focusrite firmwares can be downloaded here: http://mail.focusrite.com/beta/ Look for a file marked "This is the BCD file for use with 3rd party firmware tools." that corresponds to your device. === 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 0x00130e0100010265 Then upload the files: {{{ ffado-bridgeco-downloader GUID firmware FILENAME }}} Where you replace FILENAME with the filename of the firmware. Example for a Focusrite Saffire: {{{ $ ffado-bridgeco-downloader 0x00130e0100010265 firmware focusrite/BeBob_Saffire\ 02.02.7460.bcd 86426863684: (configrom.cpp)[ 581] printConfigRom: Config ROM 86426863804: (configrom.cpp)[ 582] printConfigRom: Current Node Id: 0 86426863813: (configrom.cpp)[ 583] printConfigRom: GUID: 0x00130E0100010265 86426863829: (configrom.cpp)[ 584] printConfigRom: Vendor Name: Focusrite 86426863839: (configrom.cpp)[ 585] printConfigRom: Model Name: Saffire 86426863848: (configrom.cpp)[ 586] printConfigRom: Node Vendor ID: 0x00130e 86426863856: (configrom.cpp)[ 587] printConfigRom: Model Id: 0x00000000 86426863865: (configrom.cpp)[ 588] printConfigRom: Unit Specifier ID: 0x00a02d 86426863881: (configrom.cpp)[ 589] printConfigRom: Unit version: 0x00010001 86426863891: (configrom.cpp)[ 590] printConfigRom: ISO resource manager: 0 86426863899: (configrom.cpp)[ 591] printConfigRom: Cycle master capable: 1 86426863907: (configrom.cpp)[ 592] printConfigRom: Bus manager capable: 1 86426863914: (configrom.cpp)[ 593] printConfigRom: Cycle clock accuracy: 100 86426863923: (configrom.cpp)[ 594] printConfigRom: Max rec: 8 (max asy payload: 512 bytes) Info Registers Manufactors Id: bridgeCo Protocol Version: 0x00000001 Bootloader Version: 0x00000000 GUID: 0x00130e0100010265 Hardware Model ID: 0x00000002 Hardware Revision: 0x00000001 Software Date: 14.12.2006, 16:50:00 Software Id: 0x00000000 Software Version: 0x02021d24 Base Address: 0x20080000 Max. Image Len: 0x00180000 Bootloader Date: 17.05.2005, 14:19:34 Debugger Id: 0x00000000 Debugger Version: 0x00000000 parse BCD file check firmware device compatibility... ok prepare for download (start bootloader) ..x.......... start downloading protocol for application image wait until flash erasing has terminated .............................. 1188840/1188840 bytes downloaded wait for transaction completion .......... download protocol successfuly completed start downloading protocol for CnE wait until flash erasing has terminated 86498052371: Debug (bebob_dl_mgr.cpp)[ 513] downloadObject: downloadObject: CRC match .............................. 4632/4632 bytes downloaded wait for transaction completion .......... download protocol successfuly completed setting CnE to factory default settings 86538070853: Debug (bebob_dl_mgr.cpp)[ 513] downloadObject: downloadObject: CRC match ..... start application Firmware download was successful no message buffer overruns }}} == Displaying firmware file info == To display firmware file information use: {{{ ffado-bridgeco-downloader GUID bcd FILENAME }}} {{{ $ ffado-bridgeco-downloader 0x00130e0100010265 bcd focusrite/BeBob_Saffire\ 02.02.7460.bcd 86951628521: (configrom.cpp)[ 581] printConfigRom: Config ROM 86951628622: (configrom.cpp)[ 582] printConfigRom: Current Node Id: 0 86951628631: (configrom.cpp)[ 583] printConfigRom: GUID: 0x00130E0100010265 86951628646: (configrom.cpp)[ 584] printConfigRom: Vendor Name: Focusrite 86951628656: (configrom.cpp)[ 585] printConfigRom: Model Name: Saffire 86951628665: (configrom.cpp)[ 586] printConfigRom: Node Vendor ID: 0x00130e 86951628674: (configrom.cpp)[ 587] printConfigRom: Model Id: 0x00000000 86951628682: (configrom.cpp)[ 588] printConfigRom: Unit Specifier ID: 0x00a02d 86951628698: (configrom.cpp)[ 589] printConfigRom: Unit version: 0x00010001 86951628707: (configrom.cpp)[ 590] printConfigRom: ISO resource manager: 0 86951628715: (configrom.cpp)[ 591] printConfigRom: Cycle master capable: 1 86951628723: (configrom.cpp)[ 592] printConfigRom: Bus manager capable: 1 86951628731: (configrom.cpp)[ 593] printConfigRom: Cycle clock accuracy: 100 86951628740: (configrom.cpp)[ 594] printConfigRom: Max rec: 8 (max asy payload: 512 bytes) Info Registers Manufactors Id: bridgeCo Protocol Version: 0x00000001 Bootloader Version: 0x00000000 GUID: 0x00130e0100010265 Hardware Model ID: 0x00000002 Hardware Revision: 0x00000001 Software Date: 14.12.2006, 16:50:00 Software Id: 0x00000000 Software Version: 0x02021d24 Base Address: 0x20080000 Max. Image Len: 0x00180000 Bootloader Date: 17.05.2005, 14:19:34 Debugger Id: 0x00000000 Debugger Version: 0x00000000 BCD Info BCD File Version 0 Software Date: 14.12.2006, 16:50:00 Software Version: 0x02021d24 Software Id: 0x00000000 Hardware ID: 0x00000002 Vendor OUI: 0x0000130e Image Offset: 0x00000074 Image Base Address: 0x20080000 Image Length: 0x001223e8 Image CRC: 0x62b9e2c3 CNE Length: 0x00001218 CNE Offset: 0x0012245c CNE CRC: 0x2deedfbe no message buffer overruns }}}