[PATCH 00/25] alsa-tools: efw-downloader: add initial version of firmwre downloader for Echo Audio Fireworks devices
Takashi Sakamoto
o-takashi at sakamocchi.jp
Fri Aug 21 09:30:46 CEST 2020
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
More information about the Alsa-devel
mailing list