Hi, This patchset is for alsa-tool repository[1] to add a new command-line tool, efw-downloader. The tools is designed to operate on-board flash memory for devices based on Fireworks board module. The patches are also available in my personal repository in github.com[2]. Fireworks board module was designed by Echo Digital Audio corporation. The board module has on-board flash memory to store firmware blob and session data. The contents of flash memory can be operated by software by a pair of asynchronous transactions defined by Echo Digital Audio corporation. Echo Digital Audio corporation also designed file format of firmware. Hardware Vendors including Echo Digital Audio corporation shipped several versions of firmware by the format in driver packages for Windows and macOS. The goal of this tool is to operate the flash memory to download any version of firmware. In this patchset, limited functionalities are added; read from the flash memory, and parse the content of file. The other functionalities are planned to added in future work. I thinks it possible to put actual firmware blobs into somewhere suitable for them (alsa-firmware or linux-firmware repositories). I think it better to prepare the files by reading on-board flash memory, with enough care of copyright of original firmware files shipped by vendor. In the case, it's preferable to use file format different from the original one. But it's my first time for this kind of work. I'd like to ask some advices to alsa developers. [1] https://github.com/alsa-project/alsa-tools/ [2] https://github.com/takaswie/alsa-tools/tree/topic/efw-downloader Takashi Sakamoto (25): efw-downloader: start a new project to operate on-board flash memory for Fireworks board module efw-downloader: efw-proto: define EfwProto as derived object of HinawaFwResp efw-downloader: efw-proto: add constructor, destructor, bind, unbind functions efw-downloader: efw-proto: add responded signal efw-downloader: efw-proto: add class virtual method to handle responded signal efw-downloader: efw-proto: add instance private structure efw-downloader: efw-proto: emit responded signal at receiving response efw-downloader: efw-proto: add function to finish transaction for command frame efw-downloader: efw-proto: add function to finish a pair of transactions efw-downloader: add parser for sub commands efw-downloader: subcmd-device: implement 'device' sub command to operate actual device efw-downloader: subcmd-device: open firewire character device by HinawaFwNode efw-downloader: config-rom: parse config rom to detect supported device efw-downloader: subcmd-device: check supported models or not efw-downloader: subcmd-device: bind Fireworks protocol efw-downloader: node_dispatcher: add event dispatcher utilizing GLib MainContext/MainLoop efw-downloader: subcmd-device: support debug output for response of Fireworks protocol efw-downloader: efw-commands: add support for a part of hardware command efw-downloader: efw-commands: add support for commands in flash category efw-downloader: subcmd-device: add read operation efw-downloader: file-cntr: add parser for data binary shipped by Echo Digital Audio corporation efw-downloader: subcmd-file: add 'file' sub command efw-downloader: subcmd-file: add parse operation efw-downloader: man: add online manual efw-downloader: add README formatted by reStructuredText efw-downloader/COPYING | 674 ++++++++++++++++++ efw-downloader/README.rst | 167 +++++ efw-downloader/man/efw-downloader.1 | 162 +++++ efw-downloader/meson.build | 14 + efw-downloader/meson_options.txt | 5 + efw-downloader/src/config-rom.c | 60 ++ efw-downloader/src/config-rom.h | 26 + efw-downloader/src/efw-commands.c | 243 +++++++ efw-downloader/src/efw-commands.h | 57 ++ .../src/efw-proto-sigs-marshal.list | 1 + efw-downloader/src/efw-proto.c | 401 +++++++++++ efw-downloader/src/efw-proto.h | 80 +++ efw-downloader/src/file-cntr.c | 183 +++++ efw-downloader/src/file-cntr.h | 39 + efw-downloader/src/main.c | 54 ++ efw-downloader/src/meson.build | 54 ++ efw-downloader/src/node-dispatcher.c | 86 +++ efw-downloader/src/node-dispatcher.h | 21 + efw-downloader/src/op-device-read.c | 104 +++ efw-downloader/src/op-file-parse.c | 106 +++ efw-downloader/src/subcmd-device.c | 182 +++++ efw-downloader/src/subcmd-file.c | 87 +++ efw-downloader/src/subcmds.h | 16 + 23 files changed, 2822 insertions(+) create mode 100644 efw-downloader/COPYING create mode 100644 efw-downloader/README.rst create mode 100644 efw-downloader/man/efw-downloader.1 create mode 100644 efw-downloader/meson.build create mode 100644 efw-downloader/meson_options.txt create mode 100644 efw-downloader/src/config-rom.c create mode 100644 efw-downloader/src/config-rom.h create mode 100644 efw-downloader/src/efw-commands.c create mode 100644 efw-downloader/src/efw-commands.h create mode 100644 efw-downloader/src/efw-proto-sigs-marshal.list create mode 100644 efw-downloader/src/efw-proto.c create mode 100644 efw-downloader/src/efw-proto.h create mode 100644 efw-downloader/src/file-cntr.c create mode 100644 efw-downloader/src/file-cntr.h create mode 100644 efw-downloader/src/main.c create mode 100644 efw-downloader/src/meson.build create mode 100644 efw-downloader/src/node-dispatcher.c create mode 100644 efw-downloader/src/node-dispatcher.h create mode 100644 efw-downloader/src/op-device-read.c create mode 100644 efw-downloader/src/op-file-parse.c create mode 100644 efw-downloader/src/subcmd-device.c create mode 100644 efw-downloader/src/subcmd-file.c create mode 100644 efw-downloader/src/subcmds.h -- 2.25.1