Set of tools designed to help develop and debug software and firmware on Intel platforms with AudioDSP onboard.
Related to alsa-utils which is also set of utilities but targets AdvancedLinuxSoundArchitecture (ALSA) audience in more general fashion.
Majority of the tools found here are C# and .NET based. Either .NET 6.0+ or .NET Framework 4.6+ can
be used to build the components. .NET 6.0 and onward is the recommended option as it's available
through package manager on most major Linux distributions. For additional information visit
Install .NET on Linux.
.NET Framework is supported on Windows natively while Linux support is provided with
Mono.
.NET 6.0+ configurations shall be built using dotnet build
CLI which invokes msbuild for .NET
under the hood. For .NET Framework, a Makefile which is part of every project can be used to compile
using msbuild for Mono
.
For C++ fwlog_parser, standard gcc toolchain and boost libraries (program_options and filesystem) are required - widely available on both Windows and Linux platforms.
A UseCaseManagement (UCM) serializer library for .NET. Concentrates on topology side of UCM syntax and hosts wide range of Section objects.
Behavior is similar to native to .NET XmlSerializer. Both serialization and deserialization are supported. avstplg is an example its utilization.
Converts topology configuration files from a more friendly XML format into UCM i.e.: alsa-lib friendly format.
avs-topology-xml hosts a wide range of topology configuration files which are input for this tool.
Parses the binary AudioDSP log file into a human-friendly text equivalent given the symbol dictionary. The symbol dictionaries are not part of the repository yet. References will be provided in the future revision.
NonHDAudioLinkTable (NHLT) decoder and encoder. The NHLT is part of ACPICA and consists of hardware related information for I2S and Digital Microphone (DMIC) devices. The specification is available on 01.org.
The tool allows for conversion of NHLT binary into a XML document file and vice versa.
Straightforward extractor of wave data from the AudioDSP probe dumps. The data-probing functionality is a debug feature which is part of AudioDSP firmware and allows for verifying the impact of module's data processing on the stream as a whole by extracting or injecting data directly from or to given module.
As the information is not gathered in real-time, the data comes in form of packets. The tool simplifies the process of its extraction. Obtained wave file can be then verified.
While getting a firm grasp of the tooling requires some AudioDSP knowledge, especially in the driver <-> firmware interaction area, all contributions are welcome. Project follows submission guidelines similar to those of high-profile projects, such as the Linux kernel.
Commit message title line length is limited to 72 characters.
Scoping shall be used to indicate the context of introduced changes, through adding subdirectory tag ('tag: ') at the beginning of commit's title. Leave the scope out only when submitting repository-wide changes.
The scopes for subdirectories go as follows:
NUcmSerializer/ ucm
avstplg/ avstplg
fwlog_parser/ fwlog
nhltdecode/ nhltdecode
probe2wav/ probe2wav
Regardless of type of change you want to submit, it must be described. Please follow Describe your changes guide for the best practises of doing so. The guide is quite lengthy, the essence is captured below:
- State the motivation behind the change
- Be transparent, do not hide things
- Describe user impact if any
- Use imperative mood
- The lower level the problem is, the more detailed the description should be.
- Ensure any links or references appended are actually working
- Keep the line width with 72 characters margin
Optionally, at the bottom of commit message tags (kind of keywords) can be appended. These tags serve informational purposes, further enhancing code documentation and enabling fixes propagation through automated tasks. Below are guides for a range of such tags:
When to use Acked-by:, Cc:, and Co-developed-by:
Using Reported-by:, Tested-by:, Reviewed-by:, Suggested-by: and Fixes:
The final paragraphs of Describe your changes help
setup git config so appending correctly formatted Fixes: tag becomes trivial.