Contains the following squashed SOF commits:
nxp: imx8ulp: change SOC name to MIMX8UD7
zephyr: CMakeLists.txt use new `CONFIG_SOC_C` for 8ULP
cmake: update configs for NXP ADSP
and the following Zephyr patches affecting SOF:
951763939034 nxp: imx8ulp: change SOC name to MIMX8UD7
b8214b673970 dts: xtensa: nxp_imx8: add SAI1 node
a0e32f07ef76 dts: intel_adsp: ace: update host dma copy alignment
3fde2c50c6ef tracing: add intel ADSP memory window backend
6b9d01f995c7 intel_adsp/ace: power: No pending transaction before power gate
6ea749de5283 arch: rename arch_start_cpu() to arch_cpu_start()
b69d2486fee6 kernel: rename Z_KERNEL_STACK_BUFFER to K_KERNEL_STACK_BUFFER
1f55be8b42df nxp: imx8: change CONFIG_SOC_<name> to match the value
688fbb53aeb2 intel_adsp: ace: Fix sparse error
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Starting with this commit, i.MX93 now uses the timer domain
in conjunction with the Zephyr native drivers.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
This commit introduces the necessary changes to the overlay
and configuration files required for enabling the Zephyr native
SAI, EDMA and HOST DMA drivers on i.MX93.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The DRC component was not included to build. This change
avoids error and DSP panic in topology load.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Disable CONFIG_WINSTREAM_CONSOLE in all Intel configs that enable SOF
mtrace for logging. Also disable CONFIG_LOG_BACKEND_ADSP that uses
winstream as backend. No need to have two memory window based logging
backends enabled at the same time.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Convert the smart-amp-test in its IPC4 version to a loadable LLEXT
module. Use an overlay configuration to select between monolithic and
modular builds.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Add support for loadable modules, built for dynamic linking with
Zephyr's LLEXT API.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Switch back to main Zephyr repository and commit f9f44b6dcdd.
This includes following squashed SOF commits that are
needed to adapt to HWMv2 changes in Zephyr:
zephyr: app: scripts: intel_adsp: change board names to HWMv2
zephyr: sof: update board name for HWMv2
zephyr: intel_adsp: Change ACE SoC name to HWMv2
app: boards: imx93: updates for zephyr hwmv2
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Zephyr commit b985442829dd ("dts: mimx93_evk_a55: avoid conflict
with Ethos-U NPU reserved memory") changes SRAM0's address to
0xd0000000. This breaks the i.MX93 SOF build because the SRAM0
node is no longer deleted so west build complains about having
2 SRAM0 nodes with different addresses.
To fix this, update the deleted node's base address.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
CONFIG_LOG and CONFIG_LOG_MODE_DEFERRED are already defined in the
common prj.conf, no need to re-define them additionally in
architecture-specific configurations.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
DTS codec targets the integration on sof-mtl-rt5650-dts.tplg. The
firmware build config should not set COMP_STUBS. At the same time the
config GOOGLE_RTC_PROCESSING_MOCK should be enabled as since its
libraries are still WIP.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
The purpose of CONFIG_DMA_DW_SUSPEND_DRAIN is to empty the FIFO before
disabling the channel by draining it.
Since the peripheral is disabled before the DMA
(CONFIG_COMP_DAI_STOP_TRIGGER_ORDER_REVERSE is not selected), the DMA will
not be able to do that causing drain timeout.
The stop is used in two cases:
Stream stop:
the content of the FIFO does not matter as we stop the stream.
Pause/resume:
On pause the DMA is suspended (DW_CFGL_SUSPEND bit set)
On resume the DMA is stopped, re-configured and then started again instead
of resuming
The peripheral is started after the DMA stop and start.
Leftover audio data might cause audio glitch on resume, it is probably
better to disable the draining.
Note: if we want to have draining enabled we need to select the
CONFIG_COMP_DAI_STOP_TRIGGER_ORDER_REVERSE at the same time to force the
DMA to be stopped before the DAI.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
This reverts 8f6018057b ("app: enable OUTPUT_DISASSEMBLY for Zephyr
builds")
The disassembly is useful in some contexts but can't be parallelized and
takes an enormous amount of time. On my system OUTPUT_DISASSEMBLY
almost doubles the compilation time!
Quoting Zephyr commit cc5763344709:
> This on-by-default option takes the majority of "link" time. If people
> need the disassembly, they can turn it on.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This patch enables clock gating in configurations of a ace platforms.
With CONFIG_ADSP_IDLE_CLOCK_GATING enabled clock gating is always
enabled during WAITI.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
- This test has failed on MTL since it was enabled. Running tests that
we systematically ignore the failure of is much worse than not running
them because it provides a false impression of quality.
- This can cause DSP panics as seen in
https://github.com/thesofproject/sof/pull/8621
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Add a ZTEST test-suite to run SOF boot-time self-tests at the time of
the first FW_GEN_MSG IPC.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This patch adds DTS_CODEC for IPC4 Intel platform builds.
Since EQ IIR + DTS is the combination we use to support customer, adding
EQ IIR here to ensure it's enabled.
Signed-off-by: Joe Cheng <joe.cheng@xperi.com>
This commit is needed because the current Linux kernel
version used in our internal testing doesn't
contain the patches that enable MU2's power.
As such, to avoid failures in the internal tests,
disable the CCM and LPUART2 IPs.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Removes the misplaced code in smart_amp.c for the fix, then
re-enables CONFIG_COMP_SMART_AMP on building stub images.
Signed-off-by: Pin-chih Lin <johnylin@google.com>
Fixes commit deed9a8808 ("scripts: fuzz: add support for build and
overlays")
The main issue was the way fuzz.sh was trying to parse the overlay
file. Drop that and just pass it as is to `west` and `cmake` instead,
they know what to do with it.
Also:
- Fix invalid syntax in stub_build_all_ipc4.conf
- Make fuzz.sh shellcheck-clean again. Always use shellcheck.
- Temporarily disable `CONFIG_COMP_SMART_AMP` in
stub_build_all_ipc3.conf because `smart_amp.c` does not compile (in
any configuration)
```
sof/src/audio/smart_amp/smart_amp.c:748:9: error:
no member named 'in_channels' in 'struct smart_amp_data'
sad->in_channels = audio_stream_get_channels(&source_buffer->stream);
```
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Addition of SRC Lite module,
which only supports a subset of conversions
supported by the SRC module.
Purpose of SRC Lite module is memory optimization.
Code of SRC Lite is drastically reduced and requires
significantly less memory. When needed one of
defined conversions, driver can choose SRC Lite
module instead of SRC module to optimize memory utilization.
48 -> 16kHz
44.1 -> 16 kHz
32 -> 16 kHz
44.1 -> 48
Signed-off-by: Fabiola Kwasowiec <fabiola.kwasowiec@intel.com>
KD topology tests fail on LNL due to insufficient size of
heap memory. During creation of KD topologies with
4ch audio format, FW fails on memory allocation.
The patch increases HEAPMEM size.
Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
The LNL board does not use DMA_DW driver, so the board
file should not set any build options specific to that
driver.
This fixes build warning:
--cut--
warning: DMA_DW_SUSPEND_DRAIN (defined at
drivers/dma/Kconfig.dw_common:27, drivers/dma/Kconfig.dw_common:27,
drivers/dma/Kconfig.dw_common:27) was assigned the value 'y' but got the
value 'n'.
---cut--
Link: https://github.com/thesofproject/sof/issues/8356
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
previously, performance measurement based on platform clock, source
clock is 38.4mhz, for better align with CPC calculation, change
clock to dsp clock, this will be done through enable config:
CONFIG_TIMING_FUNCTIONS, and this config only be used with perf_cnt
header file, so this change only have impact on performance build.
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
Add a sparse-specific workaround for the incompatibility with
picolibc (the new Zephyr default)
https://github.com/zephyrproject-rtos/zephyr/issues/63003
Also fix comment in commit 2a9473a17b ("app/prj.conf: disable PICOLIBC
with CONFIG_MINIMAL_LIBC=y"): we don't need to disable PICOLIBC
_everywhere_; we only need to disable it when using sparse.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Starting from Zephyr commit f0daf904bb02, CONFIG_PICOLIBC is on by
default.
PICOLIBC does not seem compatible with sparse yet:
https://github.com/zephyrproject-rtos/zephyr/issues/63003
Even if it were compatible with sparse, it seems like a pretty big
change that we should not immediately and blindly accept.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
We build tgl and tgl-h with ipc4 by default, those
ipc4 overlays are empty now, can be removed safely.
Signed-off-by: Chao Song <chao.song@linux.intel.com>
Logging with probes was not implemented. This implements
ipc that enables logging with probe configuration.
Signed-off-by: Jakub Dabek <jakub.dabek@intel.com>
Tone component has been without maintenance and validation,
and there is no interface to control sound generation from
user space so it will be deprecated and removed from successive
release.
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
This reverts commit 80c6738b89.
The Zephyr default changed in commit 385ad46a39ca so this is not needed
anymore.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Now that Intel cAVS2.5 has been migrated to use native Zephyr
drivers, we have no need to keep the Intel specific XTOS
drivers in the tree anymore.
Adjust board configuration files to not refer to removed
Kconfig options.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
The IPC3 build is no longer supported for Intel cAVS2.5 target,
so move the config overlay definitions as-is to the main
board config file.
To smoothen the transition, keep an empty IPC4 overlay file
in the tree to allow developers to update build scripts.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Enables extraction and injection probes for MTL platform.
NOTE: this commit does NOT enable probe log backend.
Signed-off-by: Serhiy Katsyuba <serhiy.katsyuba@intel.com>
With Zephyr commit cc5763344709 ("Build system: disable
`OUTPUT_DISASSEMBLY` by default"), generation of zephyr.lst
is disabled by default.
Enable disassembly generation in SOF configuration as it is expected by
SOF builds rules for reproducible builds.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Utilize the posix build so that as many components as possible can be
built at once. Also build a bunch of `default n` components as well.
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
Zephyr turns on by default CONFIG_PM_DEVICE_RUNTIME_EXCLUSIVE option
what causes Devices using Zephyr Device System Power Manager to
be ignored during SoC power transition. Disabled this option so we
can use default Zephyr kernel behavior to shut down Devices.
Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
We plan to get rid of mimx93_evk_a55_sof board and use the
generic mimx93_evk_a55 board + overlays.
This patch adds the config fragment to enable mimx93_evk_a55 board for
SOF.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
We will use SOF app with default mimx93_evk_a55 board on top
of which will add necessary adaptations.
e.g we will define SOF required memory areas in the overlay
and will get rid of mimx93_evk_a55_sof board.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
The config CONFIG_LOG_FUNC_NAME_PREFIX_xxx is only
enabled for ACE platforms and INF log level, and the
timestamp used is different on TGL and MTL, which
is not quite consistent.
This patch make sure the log format is consistent
among platforms and log levels.
Signed-off-by: Chao Song <chao.song@linux.intel.com>
We need to enable CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MIN according to
comments in coredump_core.c: When dumping minimum information, the
current thread struct and stack need to be dumped so debugger can
examine them.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Zephyr has hardcoded this to 'y' because it saves CI some disk space
when compiling hundreds of different zephyr/tests/, each in a separate
build directory. But when compiling just one "sof/app" it saves
practically no space, breaks the incremental build and can make it more
difficult to troubleshoot some build issues. So, reset it to the default
value.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Start using zephyr pm_runtime, clk and dma glue code in cavs25 native
drivers build. Move the files from ace/lib into zephyr/lib.
Also update west.yaml to related zephyr commit as power related
files have been moved to zephyr side.
Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
The ipc4_native_drivers_overlay.conf overlay is deprecated and isn't
used any more, the default ipc4_overlay.conf configures native
drivers itself. Remove the deprecated version.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
some platforms don't use Zephyr, therefore they can't
use DP scheduler. Add a config option
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Remove all support for cAVS 2.0 platformsm including Ice Lake and
Jasper Lake, they aren't supported any more.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
In version 3.21, CMake made a change that links .c.obj files in a order
different from 3.20. This makes different CMake versions generate a
different final image and breaks build reproducibility.
No such change between 3.21 and 3.25.2
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Remove all support for cAVS 1.8 platformsm including Cannon Lake,
Comet Lake, Whiskey Lake and Coffee Lake, they aren't supported
any more.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Remove all support for cAVS 1.5 platformsm including Apollo Lake,
Sky Lake, Kaby Lake, Broxton and Gemini Lake, they aren't supported
any more.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Enable CONFIG_ASSERT=y in SOF debug overlay.
Also add a commented out list of additional useful Zephyr debugging
tools to the overlay. These incur a higher runtime cost, so are left
disabled by default. These are all debug tools that have been tested to
work with SOF and found useful.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
This extends the ideas in CONFIG_LIBRARY=y to implement SOF as an
application for the Zephyr native_posix architecture. These are host
x86 or x86_64 binaries that include a full OS build, which can be used
(via mocked drivers) for testing against host validation environments
like ASAN/MSAN.
The mechanism uses the existing "host" architecture used by
CONFIG_LIBRARY, but adds a new platform layer named "posix", populated
entirely with stubs.
No driver integration is provided in this patch. The resulting
executable builds correctly, but has no devices and won't do anything.
Signed-off-by: Andy Ross <andyross@google.com>
L3 memory should support have support
for allocating/freeing memory
A heap support in L3 is introduced by
this commit
Signed-off-by: Rafal Redzimski <rafal.f.redzimski@intel.com>
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Add
- a kconfig option enabling a heap in L3
- a memory capability flag SOF_MEM_CAPS_L3
+ small cleanup in whitespaces
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Updated zephyr to the latest version with
the necessary patches
a requried kconfig option is added because of
https://github.com/zephyrproject-rtos/zephyr/pull/51738
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
Heap memory profiling is based on runtime zephyr API.
It will print out each memory allocation with allocated bytes
and free bytes, display as below:
zephyr: heap allocatd: 22c0 free: 152a90 max allocated: 1000
Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>