Commit 3315681c69 ("cmake: make sure sha1 is computed without
filters") added the `--no-filters` option to the `git hash-object`
invocation used to produce a `src/` checksum embedded in all firmware
binaries and .ldc files.
This fixed a small mismatch for the (very few) people using the
_asymmetric_ `autocrlf = input`. However it created a huge mismatch for
the numerous people using the _symetric_ `autocrlf = true`.
So revert that commit, remove `--no-filters` and replace it with a build
time warning.
`--no-filters` produces a checksum of the files as they are on the
filesystem, as opposed to how they would be input into git after
optional CRLF -> LF conversion.
When `--no-filters` was added, no one was compiling in Windows. Most
developers were not performing any conversion because there is no
`autocrlf` conversion by default on Linux. Files were identical inside
and outside of git and life was simple.
Simple life except for at least one indomitable Linux developer who had
the _asymmetric_ `autocrlf = input` setting. Also, the SOF git repo
always had two exceptional (and generated) files with CRLF end of lines;
see issue #5917 for details (all other files have LF end of lines). So
for that "asymmetric" developer only and these two files only, `autocrlf
= input` converted these 2 files to LF before hashing and this caused a
different checksum. `--no-filters` stopped that conversion and "solved"
that mismatch.
But now Windows has entered the stage. On Windows, the default is
usually (and unfortunately) the symmetric `autocrlf = true`. It is the
default for Github's Windows runner. This symmetric default converts ALL
other files to CRLF when extracting them out of git. This causes `git
hash-object --no-filters` to produce a _different hash for all but 2
files on Windows_!
The only solution is to:
1. Drop the `--no-filters` to align everything on what is _stored in
git_. What is stored in git is the only thing we are sure all users have
in common.
2. Request users to use only _symmetric_ `autocrlf` settings so any
optional input+output conversion cancels itself out.
3. Convert odd files and make sure they all have LF end of lines.
4. In the future, drop this entire git hash-object technique which is
flawed in multiple ways and has been causing multiple issues. Much,
much more work than this very small revert though.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Add virtual memory regions info gathering from zephyr and introduce
structs agregating this information.
Add proper defines for memory management.
Signed-off-by: Jakub Dabek <jakub.dabek@intel.com>
DMIC_DRIVER_VERSION=3 is already set in mtl.conf. Other platforms
should use the default value in dmic-default.conf
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Somehow some SoundWire topologies don't have PREPROCESS_PLUGINS=nhlt
definition. It leads to nhlt is not included in those topologies.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
DFDSPBRCP register have been renamed to DSPCS in Zephyrs commit
21f278c04bc258eb344ac5b2123b49d760b5b71d. This commit changes the
references from old to new name.
Changed zephyr revision to d9c4ec31fc49e7eef3c8c3b0d07827cc04e6efee
Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
Pleasing checkpatch is hard when adding new files.
This is tricky and comes up every time someone adds new files, examples
in #6284, #6796, #6931 , etc.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Define HDMI_PCM_ID macro so that we can have different pcm id for
different topology. And change the hdmi pcm id of sof-hda-generic.tplg
to align with UCM.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
cavs-sdw.conf uses grouped route and pipeline id. And index 20 based is
for Speaker pcm. That will conflict with the existing hdmi1 pipeline id.
Update hdmi route and pipeline ids with the same formula to avoid the
conflict.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Add HiFi3 version implementation of FFT. Test with xtensa
simulator, we can save about 52.7% cycles for 16bit processing
and 58.1% for 32bit processing.
Signed-off-by: Andrula Song <andrula.song@intel.com>
The undefined function may cause the debugger not able to run
properly. Print a "set confirm off" instruction to the beginning of
output file to solve this problem.
(xt-gdb) break _MemErrorVector
Breakpoint 1 at 0x9f180400
(xt-gdb) break _MemoryExceptionVector_text_start
Function "_MemoryExceptionVector_text_start" not defined.
Make breakpoint pending on future shared library load? (y or [n]) run
Please answer y or [n].
...
Signed-off-by: Brent Lu <brent.lu@intel.com>
24/32 function is never selected due to the fact that only the size of
the container determines the selection of the function.
It should be selected based on valid_bit_depth.
Signed-off-by: Kwasowiec, Fabiola <fabiola.kwasowiec@intel.com>
As per interface documentation of dai_config_get(), the function
may return NULL if the device is not configured for the requested
direction. Handle this case explicitly.
Currently no upstream Zephyr driver returns NULL, but e.g. dmic
driver returns invalid configuration when dai_config_get() is
called with DAI_DIR_TX as direction.
Link: https://github.com/thesofproject/sof/issues/6896
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Initial implementation of MCPS budget manager.
FW can request/free MCPS usage on enabling certain FW elements. Caution
should be taken when processing on different cores, as kcps_budget_data
is uncache only. The manager will change clock source to match requested
MCPS consumption. Budget manager may interfere with manually setting
clock values!
Signed-off-by: Krzysztof Frydryk <krzysztofx.frydryk@intel.com>
The last parameter of memcpy_s() isn't the size of the source buffer,
it's the actual number of bytes that should be copied.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
In the simple_copy case, source/sink modules that aren't active are
skipped when passing the buffers to the process callback. So,
produce/consume from only the active buffers that were passed to the
process callback as well.
Reported-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Some modules like the mixin/mixout do the invalidate/writebacks for the
source/sink buffers themselves. So, add flags in struct
processing_module to skip doing the same again in the module adapter
code.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Replace the comp_drv ops for the mixin component to use the
module_adapter interface. The trigger and get_attribute ops are replaced
with the module_adapter ops which do the exact same thing. The base_cfg
field from struct mixin_data is removed as it is replaced with the
base_cfg in struct module_config and all users have been updated.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Add a helper function to set up the input/output buffers for the 1:1 and
N:1 source:sink buffer configuration. Also, expand the
module_adapter_copy() function to support the simple_copy flag with the
single source and multiple sink buffer configuration.
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Updates Zephyr to current top: e4fcb32451c587a3e4ba7f8bf3fc602b16f9652b.
This is to enable ALH multi-gateway feature. The required Zephyr commit
for Intel ADSP MTL is:
https://github.com/zephyrproject-rtos/zephyr/pull/53066
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
upgrade rimage to
ba8534bb23ba8534bb23 Fix bitmap according to the IMR type
f3eef3cfb6 Fix IMR type parsing
bdba8259fe Add a command line option to set an Intel-specific PV bit
1c48208850 config: tgl-cavs: add smart amp test module config
082b6261c9 config: Add mt8188.toml
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
Fix only affects ALH multi-gateway feature (mux/demux routines). Adds
check for free space in buffer(s) before copying there.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
This reverts commit 8d166a432f.
This restores working DMIC functionality on Windows platform broken
by #6668.
ATTENTION: This will break DMIC1 (DMIC with DAI index 1) functionality
on Linux platform, DMIC0 should still work fine!
Non working DMIC1 should be fixed on Linux driver side, not this firmware.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
Add error check in dai_get_hw_params() for the case where
dai_config_get() returns an error.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
To test whether CMake configuration can be skipped, look for either a
ninja.build or Makefile.
An existing build directory is NOT proof that CMake configuration
succeeded. When CMake configuration failed, trying to build again fails
with a super confusing "Makefile not found" error message.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The ADL integration was botched with missing topologies and errors in
topology names in the kernel.
Link: https://github.com/thesofproject/linux/issues/4111
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Check max block count supported by DMA using new Zephyr API
This will allow to prepare a correct config regardless of
specific DMA capabilities
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
This saves a lot of scrolling in the next, most popular build step.
Missed in previous commit 52223eba2d (".github/zephyr: docker pull in
a separate step")
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Change some log level from info to dbg, those changed place are
not reporting errors, just information, so no risk and can be change
back when debugging.
From performance perspective, before and after:
Before:[11.86] <inf> ll_schedule: ll timer avg 2329, max 2887, overruns 0
after: [11.52] <inf> ll_schedule: ll timer avg 2226, max 2789, overruns 0
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
Linker fails to link iir_df2t() function when COMP_CROSSOVER is
enabled. Need to select MATH_IIR_DF2T in Kconfig to build the
iir_df2t() function as well.
Signed-off-by: Brent Lu <brent.lu@intel.com>
From
https://github.com/actions/upload-artifact#uploading-to-the-same-artifact
> Warning: Be careful when uploading to the same artifact via multiple
> jobs as artifacts may become corrupted.
Fix bug where IPC3 and IPC4 builds were randomly overwriting each
other and the same bug with different Zephyr revisions.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
- Remove Travis badge (about time!)
- Remove badge that shows the status of the last, random PR that was
submitted.
- Add status of the new Daily Actions as recently implemented by Andrey.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Building on Windows generates CRLF text files. Standardize checksums to
LF files.
As usual, files in the build directory are left untouched.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Fixes pylint warning "E1135 (unsupported-membership-test)". Not sure
this warning is valid because the code worked anyway but it does not
hurt.
Fixes commit bc394916d0 ("xtensa-build-zephyr.py: switch type of
InstFile() names to pathlib")
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Auxiliary data can be added at the end of ssp data blob to enable for
example early clocks for certain platform. Add intel_ssp_aux_config.conf
that includes all possible aux data classes. These can be used inside
ssp hw_configs and will be embedded as tlv data after basic data blob.
Example of using mn_config class inside hw_config:
Object.Base.hw_config."SSP0_0" {
id 0
mclk_freq 38400000
bclk_freq 256000
tdm_slot_width 16
format "DSP_A"
bclk "codec_provider"
fsync "codec_provider"
fsync_freq 16000
Object.Base.mn_config."MN_0" {
m_div 100
n_div 200
}
}
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>