The "get_llp_reg_info(): gpdma id 32 out of array bounds."
message is hit constantly with current mainline topologies with
no apparent impact to functinality.
The log is printed at a very high rate, which causes CPU and SRAM
traffic pressure that affects test execution.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
This patch is used to make sure profiling code only can be run
with performance profiling build, and unify all performance profiling
with same format and usage.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
Duplicated dai index results to module initialization
faiure in multi-stream test. Dai 2 should be used by
stream nocodec-2.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Trying avoid out-of-sync situations like commit a3b3c525d1 ("west:
update to newer rimage baseline").
Also explain why sof cannot be cloned as "sof2"
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Upgrade Zephyr from 0956647aaf6bd2b1e840adcc86db503f274d84a9 to
ed661a6c6909b338035b026cfc101ddda65ab8eb (1020 commits, including
441 since v3.2.0 tag).
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
The log print for SOF build and ABI version numbers at boot time, is
only printed in dma_trace_enable(). It is done here to ensure
the log is not emitted until logging infrastructure is in place
and the log print is not lost.
The information is very useful, so similar log should be emitted
also in SOF Zephyr builds, where the Zephyr logging subsystem is
used instead of SOF's own trace infra.
As Zephyr logging subsystem is available early, this code
can now be added directly to primary_core_init(), which is called
from sof_main().
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
After add this file, with -o app/perf_overlay.conf in build command
line, profiling functionality will be enabled and mtrace/sof log will
have performance data for further analysis.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
2 small changes required:
- Stop calling sys.exit(1) in case of error not to exit the importer
- Change EraseVars() to return the checksum value instead of printing
it. Move the print() to the main() function
This is required by the new sof-bin tests that compare signed with
unsigned binaries; submitted in
https://github.com/thesofproject/sof-bin/pull/105
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Similar to IPC3, seeing all IPC messages in the log is very useful
for debugging, e.g. when matching kernel and firmware logs. Use a
format similar to IPC3.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
It's now possible to rebuild just only one modified topology without
rebuilding all of them from scratch.
Building topologies v2 has two steps:
1. concatenation of abi.conf with topo.conf
2. run alsatplg on the concatenation
Concatenation step 1. was wrongly implemented at configuration time, not
at build time. So when the topology source of step 1 (topo.conf) was
modified, the dependency of step 2 (= the concatenation) was not
affected and the topology was not rebuilt.
Fix this by moving the concatenation to build time.
Fixes commit 308a24a92b ("topology2: Add build support")
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Make prints a line for every topology that is already up to date and not
rebuilt. It's impossible to see what was done.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This makes it possible to find stuff in the output of `ninja help`.
Zero effect on the build artefacts.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
`docker images` has no globbing option so just use `grep zephyr`
This fixes two different issues:
- Fixes tabulation images with names of a different length
- Displays any internal local cache some users may have
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Fixes commit d09844ab98 ("zephyr/docker-build.sh: match UID with
'adduser' instead of 'chgrp -R'")
Also clarify comment and add reference to new sudo-cwd.sh script.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Besides making things more obvious, the important functional change is
that the user switch is now performed for _every_ invoked, command, not
just for the build command.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
In tests with repeated IPCs that require handling in
the pipeline context (such as SET_PIPELINE_STATE), the delayed_reply
state sometimes goes out of sync.
When this happens, pipeline has processed the message and called
ipc_compound_msg_done(), but the next call to ipc_wait_for_compound_msg()
does not see the correct value, leading to a timeout.
Fix the problem by using atomic primitives to maintain the state.
Also make it explicit that the delayed_reply is a boolean
condition and in current code, having multiple IPC messages in
flight concurrently should never happen.
BugLink: https://github.com/thesofproject/sof/issues/6220
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Set the logging thread stack size explicitly for SOF builds
and use a safe default of 4096 bytes. Individual board overlays
can override this default to save stack space.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Set CONFIG_LOG_BUFFER_SIZE=4096 for all SOF builds.
As SOF uses DEFERRED mode for logging, the frontend buffer for
logs must be large enough to cover all typical burts of messages.
Tests using CONFIG_LOG_MEM_UTILIZATION debugging infrastructure,
show that maximum buffer usage is over 2048 bytes in typical
sof-test run on a SOF nocodec topology, tested on Intel TGL
hardware.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Logging output of SOF is sporadic in nature (unless debug configuration
is used) and it cannot be assumed that a steady flow of log messages
is output at all times. During stable state, there are either no or very
few messages output. When the DSP pipeline state is modified, there is
a flurry of event. Similarly upon errors, a burst of log messages is
output.
For better balance between delay in writing logs, and limiting overhead
of the logging thread, set new defaults to:
CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD=5
CONFIG_LOG_PROCESS_THREAD_SLEEP_MS=100
The SLEEP_MS sets an upper bound how long a single log message can
stay in the log frontend buffer.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Calls to log messages are done in many places in SOF code,
including latency sensitive low-latency code paths. To minimize
the cost to low-latency path, use CONFIG_LOG_MODE_DEFERRED=y
by default for all SOF Zephyr builds. This will offload log
processing and output to a separate low priority thread.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
This commit lets user to set data blob from host.
For example:
$ amixer -Dhw:0 controls | grep RTNR
numid=47,iface=MIXER,name='RTNR10.0 rtnr_bytes_10'
numid=48,iface=MIXER,name='RTNR10.0 rtnr_data_10'
numid=49,iface=MIXER,name='RTNR10.0 rtnr_enable_10'
$ sof-ctl -Dhw:0 -n 48 -b -s ./preset.bin
A new empty data control added to the topology will be used to send the
blob.
Model handler is now used for transferring the blob data.
Signed-off-by: Ming Jen Tai <mingjen_tai@realtek.com>
Code Refine
Use switch-case instead of if-else, add a local variable for a
repeating pointer dereference and remove a resundant local variable.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
With IPC4 commands are sent to each pipeline individually, therefore
there is no need to propagate them to connected pipelines in the
firmware. We use IPC4_MOD_ID() to detect the IPC4 mode: it returns a
non-zero module ID under IPC4 and 0 under IPC3.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The following race has been observed:
core 0 core 3
timer IRQ
spin_lock(&timeout_lock)
IPC IRQ
task remove
zephyr_domain_unregister()
spin_lock(&timeout_lock)
timer remove
spin_unlock(&timeout_lock)
k_timer_stop()
z_abort_timeout()
z_timer_expiration_handler()
z_add_timeout()
which leads to the LL domain timer being added needlessly and to a
later lock up and an IPC timeout on the host. Fix this by removing
the timer in such cases.
BugLink: https://github.com/thesofproject/sof/issues/6173
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This patch adds the SOF component for Mel Frequency Cepstral
Coefficients (MFCC) streaming to sink from source PCM stream.
The MFCC audio features are commonly used for neural network
based speech recognition services.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
The increase of non-32bit aligned blob sizes needs to be removed
because it can cause mismatch of blob binary header vs. actual
size. Instead error if blob size is not multiple of four bytes.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds initial version of MFCC setup tool setup_mfcc.m. It
outputs a configuration topology macro file that matches the current
Matlab concept code. The configuration can be tested in testbench
with the supplied scripts run_mfcc.sh and decode_ceps.m.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This patch adds basic macros needed for MFCC in testbench and in
developmemnt topologies for hda-generic-2ch and up2. The
configuration blob in this matches the reference Matlab code
as configured to match Pytorch default MFCC.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This topology is used for i.MX8QXP/i.MX8QM with baseboard
to enable both cs42888 and wm8960 codecs.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
This reverts commit e31c7abeeb.
This caused most tests to fail on sh-tglu-rvp-nocodec-ci-02
in daily run 15919, see some more errors in logs shared in
initial PR #6318 and new issue #6367
FW reported error: 113 - Invalid destination queue (pin) ID provided
ipc error for msg 0x45000004|0x6
sof_ipc4_route_setup: failed to bind modules copier.SSP.8.1 -> gain.7.1
I don't know why this failed and I did NOT test this revert, however:
- This topology change is apparently the only thing that changed
compared to the day before.
- The error message seems very much related.
- Other people seem to agree.
- According to Ranjani, this feature is not urgent.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This time the target is to make the demuxer more modular so that it is
not coupled with file reading operations and it is easy to use
alsa-lib directly.
Signed-off-by: Jyri Sarha <jyri.sarha@intel.com>