[PATCH 00/25] alsa-tools: efw-downloader: add initial version of firmwre downloader for Echo Audio Fireworks devices

Takashi Iwai tiwai at suse.de
Wed Aug 26 13:31:53 CEST 2020


On Wed, 26 Aug 2020 11:32:58 +0200,
Takashi Sakamoto wrote:
> 
> Hi,
> 
> Would I expect any reaction by maintainers of alsa-tools repository for
> the patches?

I'm reviewing those patches now.

Since it's based on meson build, it'll be tricky to include this in
alsa-tools whether others are all autoconf.  The tarball creation is
done in the top directory and that assumes the execution of "make
alsa-dist" in each subdirectory.  Without this integration, the
directory won't be included in the release.

Could you work on it, too?


thanks,

Takashi


> On Fri, Aug 21, 2020 at 04:30:46PM +0900, Takashi Sakamoto wrote:
> > 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
> 
> 
> Thanks
> 
> Takashi Sakamoto
> 


More information about the Alsa-devel mailing list