blob: 604e1c1f12a404ce45ab8a7f9632ec0dbcbd8224 (
plain) (
tree)
|
|
ASoC Firmware Generation Tool
=============================
This is a generic tool that allows users to generate new firmware files
for ASoC sound drivers. It's intended to be used to generate the
generic elements like DAPM objects (widgets, graphs, pins), kcontrols
and coefficients.
The tool generates a firmware file that takes input files and defined
configuration data to create a new file that contains the input files
and configurations with headers to define each object. The header data
is then interpreted by the ASoC core to instantiate the objects within
the sound driver.
The input firmware files can be anything, but normally will be
propriatary firmware text/config. The are treated as opaque data and not
inspected at all.
The configuration data is compiled into shared object data that
the tool will open as a plugin at startup. This is then written as
binary data to the output file. The configuration data files represent
coefficients, mixers, DAPM, etc and are external plugins since they
may include some propriatary software derived from the firmware. The
configuration data source files are in the plugins directory.
Build Instructions
==================
After checking out from git :-
./autogen.sh
./configure --with-linux-dir=/path/to/linux.git --enable-omap4
make
sudo make install
This will install the binary and plugins and enable OMAP4+ support.
Usage Instructions
==================
Thios tool creates a command called socfw with the following args :-
Add plugin data [-p plugin]
Add controls [-c controls]
Add vendor firmware [-vfw firmware]
Add vendor coefficients [-vcf coefficients]
Add vendor configuration [-vcn config]
Add vendor codec [-vcd codec]
Usage is socfw outfile [args].
e.g. To create FW file called omap4_abe_new with coefficients and DAPM :-
socfw omap4_abe_new \
-p dl1.so \
-p abe-dl1dl2-twl6040.so \
-vfw omap_abe_fw
Where dl1.so, abe-dl1dl2-twl6040 and omap_abe_fw are coefficients, DAPM graph
and fw text respectively.
There are some helper scripts in the scripts directory for certain targets.
|