Set DRC back as built-in (CONFIG_COMP_DRC=y) for these platforms.
DRC is now part of many common upstream topologies and as MTL
is a shipping platform, we cannot guarantee end-users have
sufficiently new kernel to support module loading.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
This makes it possible to build volume as an LLEXT module to be
loaded at run-time.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Currently LLEXT module starting addresses are hard-coded in their
respective CMakeLists.txt files. This is very wasteful, since it's
unknown in what order modules are loaded, inflexible and not easily
extendible to other platforms. Switch to calculating addresses
automatically based on a single per-platform Kconfig value.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
The Zephyr documentation uses the term "overlay" for Device Tree, not
for Kconfig.
This commit does not change the wrongly named --overlay option not to
break anything but it stops that wrong name from leaking all over the
code. Also tweak the --help text.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Re-enable normal INFO level log output for ace30_ptl target.
Move the limited log level setting to FPGA overlay.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
CONFIG_COMP_STUBS=y was enabled in #8722 / commit 8e34109e10 ("AEC:
Enable Google AEC with Mock compliation").
CONFIG_COMP_STUBS indirectly enables
CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK which was the desired
effect. However it also automatically and silently "mocks" all other 3rd
party modules which is not desirable. So, replace it with the more
focused `CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK`. `src/audio/Kconfig`
says "CONFIG_STUBS: This should only be used in testing environments
like fuzzers or CI."
Official sof-bin releases include `google_rtc_audio_processing_mock.c`
because the CI that uses it can't use extra CONFIGS. That's another
topic for another day, see #9410.
build-mtl/zephyr.strip is identical before versus after this commit.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The goal of these new files is to:
1. Fuzz more code
2. Reduce the configuration gap between fuzzed SOF and the real thing.
See the fuzz_features.conf header for more details.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Override incompatible options CONFIG_SMP_BOOT_DELAY and
CONFIG_SCHED_CPU_MASK_PIN_ONLY found in `sof/app/prj.conf` to silence
build time warnings. Strange why these are in `app/prj.conf` but not our
problem here.
```
warning: SCHED_CPU_MASK_PIN_ONLY (defined at kernel/Kconfig:139) was
assigned the value 'y' but got the value 'n'. Check these unsatisfied
dependencies: SMP (=n).
warning: SMP_BOOT_DELAY (defined at kernel/Kconfig.smp:32) was assigned
the value 'y' but got the value 'n'. Check these unsatisfied
dependencies: SMP (=n).
```
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Extract -DCONFIG_* definitions hardcoded inside the script and move them
to a new .conf file where they belong.
This is a first, baby-step towards addressing the more general lack of
.config control described in #9386
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
This change enables CONFIG_CADENCE_CODEC in the app/stub_build_all_ipc3/4.conf files.
With this, the Cadence Codec component will be included in builds for CI testing.
Signed-off-by: Anne Onciulescu <anne.onciulescu@gmail.com>
Export missing symbols for modular DRC builds and select it as a
module on MTL and LNL. DRC isn't built by default, so we cannot
use CONFIG_LIBRARY_DEFAULT_MODULAR for it.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Add support for LLEXT building to drc. Since multiband DRC calls
functions from DRC, we cannot so far build it if DRC is configured as
a module. In the future it should be possible to build both as
modules and to export symbols between them.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
So far we cannot build identical LLEXT modules under Linux and
Windows, build a monolithic firmware for this test.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This flag enables changes to new pipeline structure,
known as pipeline2_0
It is required for certain new features, like DP_SCHEDULER.
The changes are incremental and at the moment pipeline 2.0
is fully backward compatible with legacy platforms, however
it generates some overhead in data and code, so it is useful to
turn if off if not needed
Signed-off-by: Marcin Szkudlinski <marcin.szkudlinski@intel.com>
The DRC component was not included to build. This component is used in
upstream HDA generic topology, so must be enabled. See commit
727ad82997 ("Tools: Topology2: Add IIR, FIR, DRC to HDA analog
playback").
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Enable the system-managed device power management feature for the ACE30
PTL board configuration. This feature allows the power management
subsystem to automatically suspend devices before entering a low power
state and resume them after waking up.
The following configuration option has been added:
- `CONFIG_PM_DEVICE_SYSTEM_MANAGED=y`: This option is set to enable
system-managed device power management, ensuring that the power
management subsystem takes care of suspending and resuming devices as
part of the power state transitions.
This change is in line with the power management strategy to minimize
power consumption and manage device states more efficiently without the
need for explicit device power state management in the application code.
Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
PM_DEVICE_RUNTIME_EXCLUSIVE was deprecated and the new symbol
PM_DEVICE_SYSTEM_MANAGED shall be used when the applications wants
the subsystem to trigger device power management when the system sleeps.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
Passing options one by one in .github/workflows/zephyr.yml was becoming
unwieldy. Reduces Windows/Linux duplication. This also makes local
testing easier; less typing and guess work.
This should also help with #9116.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Keep context save still disabled for Intel Meteor Lake. This
setting has been used in SOF2.8 and SOF2.9 releases and is used
in Chromebook SOF builds for these platforms. Make the SOF main
default match the releases.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Add PTL configuration changes required to build FW
for FPGA. After next SOF rebase default target will be
build for RVP, so for FPGA we will use configuration
overlay.
Signed-off-by: Jaroslaw Stelter <Jaroslaw.Stelter@intel.com>
Patch adds PTL configuration basing on MTL
DMIC depends on PM_DEVICE_RUNTIME and PM_DEVICE_POWER_DOMIAN settings.
To effectively enable DMIC these flags must be set.
Additionally DMIC Ownership bit is not supported on ACE 2.0 and ACE 3.0.
Therefore CONFIG_DAI_DMIC_HAS_OWNERSHIP is switched off.
Signed-off-by: Jakub Dabek <jakub.dabek@intel.com>
cAVS platforms don't use LLEXT because memory mapping isn't supported
on them. Select LLEXT per platform, so far only for ACE 1.5 and 2.0.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
When using a clang Cadence toolchain to build SOF and LLEXT modules
we need to select a different LLEXT type than when using a Zephyr gcc
toolchain.
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Add a new overlay to enable logging via winstream backend. This is
alternative memory window based logging backend that typically
uses memory window 3 as transport. The backend is directly
using Zephyr winstream protocol, and has no dependency to SOF
IPC definitions.
One client is available in Zephyr upstream at:
zephyr/soc/intel/intel_adsp/tools/cavstool.py
Note: winstream backend is not supported by Linux SOF driver.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
In commit 14c4e86757 ("audio: base_fw: add platform layer to IPC4
hw_config data"), the platform specific code was moved to platform
layer.
This commit implements a lighter weight abstraction for the moved
code. Instead of using the platform layer, the Intel specific vendor
code is added directly in base_fw_intel.c and guarded by a Kconfig.
All other IPC4 build targets will use an empty implementation.
This avoids the need to add a platform definition for all IPC4 targets.
The common implementation in base_fw.c is sufficient to cover all
mandatory functionality required e.g. by the upstream SOF Linux driver's
IPC4 implementation.
The interfaces are renamed to refer to "vendor" instead of "platform",
to avoid any confusion with the platform layer with the new
implementation.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Switch to Zephyr native drivers and timer domain. This
includes:
1) Switching all imx8ulp topologies to timer domain.
2) Disabling Zephyr DMA domain
3) Various interrupt-related fixes via Kconfig-related
ifdef logic.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
This commit includes all necessary changes for switching
to timer domain and Zephyr native drivers on imx8 and imx8x.
This consists of:
1) Switching all imx8 topologies to timer domain.
2) Disabling Zephyr DMA domain
3) Various interrupt-related fixes via Kconfig-related
ifdef logic.
This commit includes all necessary changes for switching
to native Zephyr drivers on imx8/imx8x.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Add nodes for the following IPs: SAI, EDMA and ESAI. Also,
add node for HOST_DMA. These are all required for switching
to Zephyr native drivers.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>