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 <ffado-devel@lists.sf.net>.
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
