Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

topology2: add rt713_rt1316, no sdw_dmic config #14

Open
wants to merge 558 commits into
base: master
Choose a base branch
from
Open

Conversation

macchian
Copy link
Owner

@macchian macchian commented Oct 5, 2023

This is additional HW board: No SDW_DMIC connection

SDW0: rt713 Jack codec
SDW1: rt1316 smart amp r
SDW2: rt1316 smart amp l

softwarecki and others added 30 commits April 5, 2023 14:06
A new memory_alias structure containing memory address alias configurations
has been created. It was placed in the memory_config structure.

Signed-off-by: Adrian Warecki <[email protected]>
Changing the name of the structure type is a prelude to separating
information about the elf file from the information used during creation
of a manifest.

Signed-off-by: Adrian Warecki <[email protected]>
Changed the name of the fw_size variable to a more clear one and added
a description.

Signed-off-by: Adrian Warecki <[email protected]>
A is_bootloader field has been added to determine whether a module is
a bootloader. This is clearer than checking the module index and the number
of modules in different places in the program.

Signed-off-by: Adrian Warecki <[email protected]>
A new -l parameter has been added to the program's command line. It
instructs the program to not treat the first module as a bootloader
and not to skip the bss section for it.

Signed-off-by: Adrian Warecki <[email protected]>
Currently, sof incorrectly includes a private manifest.h header belonging
to the manifest.c module. Moved the MAN_MAX_SIZE_V1_8 definition used by
sof, to the public manifest header to allow sof to switch to using the
correct file.

Signed-off-by: Adrian Warecki <[email protected]>
The manifest for elf modules is read from their .module section.
The modules configuration parsed from a toml file was completely ignored.
After this change, the parsed configuration is treated as a template for
the module manifest.

Signed-off-by: Adrian Warecki <[email protected]>
Some platforms (eg. tgl) dont have modules configuration in a toml files.
An attempt to use the configuration template ended with a reference to
a null pointer. This commit fixes this issue.

Signed-off-by: Adrian Warecki <[email protected]>
The deleted "install" target copied only the rimage executable and
left the config files behind. This gave the wrong impression that the
executable is useful without config files.

"Installing" also gave the wrong impression that rimage versions are
somewhat stable and relatively independent of SOF versions: they're
not. In fact there is no such thing as an rimage "version": everyone
should always use the exact rimage _git commit_ from the west manifest
or git submodule. There are no rimage "releases" and no semantic
versioning or anything like it, rimage is effectively part of the SOF
source and build and run directly from its build directory by
practically every SOF developer and SOF CI thanks to

  sof/src/arch/xtensa/CMakeLists.txt#ExternalProject_Add(rimage_ep ...
  sof/scripts/xtensa-build-zephyr.py#def build_rimage()
  sof/zephyr/CMakeLists.txt#set(RIMAGE_CONFIG_PATH ...

etc.

Providing an "install" target greatly increases the chances of
different people and CIs using different rimage versions which is the
last thing we want considering the many significant rimage changes
happening right now, examples:

- zephyrproject-rtos/zephyr#56099
- zephyrproject-rtos/zephyr#54700
- thesofproject#7270
- thesofproject#7304
- thesofproject#7320
- thesofproject/rimage#155

While it's useful for multiple files (e.g.: config files), a CMake
target was always overkill to copy a single file. Someone or some
script who really wants to copy the rimage binary to some other place
that the build directory for some (discouraged) reason _can still do
so_ with a much more basic, simpler and more transparent file copy
command.

Finally, the default "bin" DESTINATION required root access which
is otherwise totally unncessary to build SOF.

Signed-off-by: Marc Herbert <[email protected]>
The SRC should be a normal LL component, it can process 1 ms blocks
of audio in real-time. The domain_types = "1" is for DP scheduling
that is not enabled currently in Zephyr configuration. It causes a
pipeline prepare fail when a topology contains SRC.

Signed-off-by: Seppo Ingalsuo <[email protected]>
This patch removes one unnecessary tab from section for SRCINTC.

Signed-off-by: Seppo Ingalsuo <[email protected]>
Fixes commit 77d4a2a ("cmake: remove "install" target")

Signed-off-by: Marc Herbert <[email protected]>
The original size given to the "calloc" call did not account for the
necessity to pad section sizes to a multiple of 4 bytes. As such, every
time we wrote a section that did not have a size multiple of 4 we would
overflow the allocated buffer.

Fix the calloc call to account for that padding requirement.

Signed-off-by: Paul Olaru <[email protected]>
Change of uuid
regarding Windows compatibility

Signed-off-by: Jaroslaw Stelter <[email protected]>
This patch adds Aria module for TGL and TGL-H platforms. The
used configuration data is copy from mtl.toml. This change
allows to use Aria component in topologies.

Signed-off-by: Seppo Ingalsuo <[email protected]>
Add vangogh toml file to support sof-vangogh.ri binary build

Signed-off-by: SaiSurya, Ch <[email protected]>
Fixes commit 6e3abe6 ("rimage: Add suport for loadable modules")

It looks like that commit mistook the `:` sign as a separator. This
accidentally added the requirement to give `-p` a parameter which is
then ignored. Remove the spurious `:`.

Signed-off-by: Marc Herbert <[email protected]>
This patch allows to load the DRC component.

Signed-off-by: Seppo Ingalsuo <[email protected]>
The comment for FIR module entry is corrected.

Signed-off-by: Seppo Ingalsuo <[email protected]>
We removed them from the main repo, lets remove them here too.

Signed-off-by: Curtis Malainey <[email protected]>
The configuration is for now copy from IIR, name and UUID are
changed. The init_config is set to 1 to let kernel know that the
base_cfg_ext is passed to firmware.

Signed-off-by: Seppo Ingalsuo <[email protected]>
The ADSP.man contents is different for ACE_V1_5 layout
compared to CAVS_V2_5 layout. so the ADSP.man length should
be adjusted accordingly.

With this fix, sof_ri_info.py can be used to analyze
LNL and MTL firmware images created with rimage.

Closes: thesofproject#8073
Signed-off-by: Kai Vehmanen <[email protected]>
This PR adds the crossover component for MTL and LNL. The
parameters are copied from TGL and TGL-H configuration of
crossover.

Signed-off-by: Seppo Ingalsuo <[email protected]>
Add CPS and CPC consumptions for given modules

Signed-off-by: Krzysztof Frydryk <[email protected]>
Fill in measured cps consumption data for: mixin, mixout, copier,
peakvol, gain, src, updwnmixer for a range of supported formats.

Signed-off-by: Krzysztof Frydryk <[email protected]>
Fill in measured cps consumption data for ASRC module for various
formats.

Signed-off-by: Krzysztof Frydryk <[email protected]>
Fill in measured cps consumption data for SMATEST module

Signed-off-by: Adrian Bonislawski <[email protected]>
Fill in measured cps consumption data for EQIIR module

Signed-off-by: Adrian Bonislawski <[email protected]>
Fill in measured cps consumption data for COPIER & GAIN  modules

Signed-off-by: Adrian Bonislawski <[email protected]>
nashif and others added 3 commits October 11, 2023 17:07
A stray } is at the end of RIMAGE_CONFIG_PATH causing issues when
signing images.

Signed-off-by: Anas Nashif <[email protected]>
With input_audio_format/output_audio_format objects in preparation to
deprecate the audio_format class.

Signed-off-by: Ranjani Sridharan <[email protected]>
@macchian macchian force-pushed the mac-sdw branch 3 times, most recently from f9f9483 to dce3649 Compare October 13, 2023 01:57
iuliana-prodan and others added 22 commits October 13, 2023 09:13
…nvalid"

This reverts 'commit e847c8b ("module_adapter: avoid module
init crash in case of ipc data invalid")'.

No data is not an invalid case for mixer, for example.

Fixes: thesofproject#8265
Signed-off-by: Iuliana Prodan <[email protected]>
This patch adds the widget class dcblock and a sample
bytes configuration blobs.

Signed-off-by: Seppo Ingalsuo <[email protected]>
This patch uses cavs-benchmark-hda.conf to build topologies to
test components in a simple playback and capture configuration.

host copier --> component --> DAI copier
host copier <-- component <-- DAI copier

The built topologies are
sof-hda-benchmark-dcblock16/24/32-tgl.tplg

The shell script bench_comp_generate.sh is added to conveniently
generate include files needed to build new test topologies for
component with s16/s24/s32 format.

Signed-off-by: Seppo Ingalsuo <[email protected]>
This patch adds DRC test topologies build.

Signed-off-by: Seppo Ingalsuo <[email protected]>
This patch adds IIR EQ topologies build.

Signed-off-by: Seppo Ingalsuo <[email protected]>
This patch adds FIR EQ topologies build.

Signed-off-by: Seppo Ingalsuo <[email protected]>
name

rt713 and rt1713 are in different SoundWire links. So, no DAI type will
be appended to DAI link name. We should use default stream name in
the topology.

Signed-off-by: Bard Liao <[email protected]>
This is fixup for 689e8e9

Incorrect list pointer has been used

Signed-off-by: Marcin Szkudlinski <[email protected]>
Based on this we select proper firmware in order to
support multi-fifo.

Signed-off-by: Daniel Baluta <[email protected]>
MICFIL can support up to 8 channels. In order for this to work
we need to use multi-fifo script.

Signed-off-by: Daniel Baluta <[email protected]>
On i.MX8MP PDM fifo has 32 entries (each with 4 bytes).

Signed-off-by: Daniel Baluta <[email protected]>
In order to enable PDM we need to use Multi-fifo support
and mcu_2_sai RAM script.

This script defines watermark level as follows:

r7 = Watermark
    bit0~11: watermark level(wml*fifo_number)
    bit15~12: to do-fifo number
    bit16~19: fifo offset
    bit27~24: sw done selector
    bit28~31: # audio channels in one frame, 0: 1 channel,1: 2 channels
    bit23: sw done enabled

Configuration parameters should come from DAI (PDM in our specific case)
but there is no easy way to forward such information so we just make
use of some default configuration, 4 fifos, 1 channel per fifo, sw done
enabled.

Signed-off-by: Daniel Baluta <[email protected]>
With multi-fifo we need to enable done bit from software
as we have multiple fifos.

For this we make use of sw_done_sel configurations bits and
write proper bits into SDMA_DONE0 register.

For more information see `SDMA DONE0 Configuration
(SDMAARMx_DONE0_CONFIG)` SDMA register from i.MX8 reference manual.

Signed-off-by: Daniel Baluta <[email protected]>
The first playback PCM is for AEC mic input via SSP0 LBM. The second
playback PCM is for AEC reference via SSP2 LBM. The first capture
PCM is the AEC output.

The AEC (mockup) can be run and tested with the topology like
this:

$ aplay -Dhw:0,0 mic_clip.wav &
$ aplay -Dhw:0,2 ref_clip.wav &
$ arecord -Dhw:0,0 -f dat -d 10 output.wav

With AEC mockup version output.wav is mix of microphone
and reference.

Signed-off-by: Seppo Ingalsuo <[email protected]>
This patch modifies script example_dblock.m to create in
addition to existing default coefficients blob with parameter
R=0.98 a set of blobs those provide (-3 dB) cut-off frequencies
20, 30, 40, 50, 100, 200 Hz for 16 kHz and 48 kHz for various
usages. Human understandable parameters for blobs helps to select
the configuration for the needed dcblock usage.

The parameter value R for given frequencies is calculated
with iterative function dcblock_rval_calculate(). A closed
form equation might be possible to derive from the transfer
function. If such is found this function can be replaced with
quicker equation -- or with more advanced faster converging
iteration.

The topology blob export functions are also modified to add
comment line for exact build command.

Signed-off-by: Seppo Ingalsuo <[email protected]>
We still have tomlc99 as a git submodule for now.

Signed-off-by: Marc Herbert <[email protected]>
For ease of use add sdma script code directly in the sdma
header file.

Signed-off-by: Daniel Baluta <[email protected]>
MICFIL needs multi-fifo SDMA script so select HAVE_SDMA_FIRMWARE.

Signed-off-by: Daniel Baluta <[email protected]>
Setting the in bit depth for the second audio format in the
host-gateway-capture object results in resetting the channel count to 2.
The in_bit_depth is set to 32-bit by default for all audio formats in
host-gateway-capture class already.

Fixes: 7a11e27 ('topology2: host-gateway-capture: Replace audio_format objects')
Signed-off-by: Ranjani Sridharan <[email protected]>
This is additional HW board: No SDW_DMIC connection

SDW0: rt713 Jack codec
SDW1: rt1316 smart amp l
SDW2: rt1316 smart amp r

Signed-off-by: Mac Chiang <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.