When the SOF Kconfig is included in other projects, the main menu should
not be that of SOF, rather it should be of the project including SOF.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Because it's not a documented feature.
"Fixes" commit 9235eb8360 ("kconfig: move BUILD_VM_ROM
Kconfig.xtos-build") / PR #4201
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
The BUILD_VM_ROM option only affects SOF XTOS builds, so move
the option to a separate file.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Some of the DEBUG options are only used in the XTOS implementation
and do not impact e.g. Zephyr builds. Make the split explicit by
moving these options to a separate file.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Add a proper namespace prefix to CONFIG_HW_LLI. While this
option is only used by DW-DMA driver at the moment, this is
a generic option, so remove the DW-DMA specific text from
top-level documentation.
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
The top-level Kconfig has a number of platform and architecture specific
options. For clarity, rename all Xtensa specific options with "XT_"
prefix. Impacted options:
config WAITI_DELAY
config BOOT_LOADER
config HAVE_RESET_VECTOR_ROM
config IRQ_MAP
config INTERRUPT_LEVEL_[12345]
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
This feature is not needed to get functional firmware,
so may be disabled for platforms with low memory space,
like baytrail and cherrytrail.
Signed-off-by: Karol Trzcinski <karolx.trzcinski@linux.intel.com>
This kconfig collides with one of the same name in Zephyr. Rename it
for clarity ("MULTICORE" was picked for symmetry with the existing
"CORE_COUNT", though it's admittedly a little long...).
Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
IDC task may be time consuming and has high priority,
what may make other tasks stall. To prevent this it should
have limited cycles budget per systick.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
This will add DSP residency counters to Debug menu
It introduces generic DSP states R0, R1 and R2 with simple
reporting changes and tracing it in SRAM_REG mailbox.
Number of DSP residency states can be easily extended depending on platform needs.
In initial version CAVS support is added with the following approach:
R0 - in HPRO
R1 - in LPRO
R2 - LPS
with extra priority to R2 (LPS).
Signed-off-by: Adrian Bonislawski <adrian.bonislawski@linux.intel.com>
As documented in https://docs.zephyrproject.org/2.2.0/guides/modules.html,
Zephyr and Kconfiglib support merging Kconfig menus across multiple git
repos. This requires relative inclusion paths.
Signed-off-by: Marc Herbert <marc.herbert@intel.com>
Having both LP_SRAM (bool) and LP_MEMORY_BANKS (int) is error prone.
It's better to make LP_SRAM just a helper config that is set
to true if there is any LP memory bank in use.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Performance ts macros use both the platform timer and cpu timer
in case the latter is not always-running-timer.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
WAITI_DELAY is selected for LX6 Xtensa platforms one of which being
i.MX8 Hifi4 DSP.
Also, remove the input prompt because the actual WAITI_DELAY cannot
be set at compile time it is automatically selected based on arhitecture.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Use of low power sequencer lowers power consumption, since
DSP may be completely turned off when calling waiti and then
powered on interrupt, booting via restore vector installed in
lpsram.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
Add configs for optimization levels.
These configs should be used by build system to properly
tune compiler flags.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Adds options, that allow to select the supported interrupt
levels on given platform. Disabling any interrupt level
allows for less memory consumption. Currently all the options
are enabled by default.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Renames DMA_AGGREGATED_IRQ to DW_DMA_AGGREGATED_IRQ
definition. This is more appropriate as it's not generic
DMA setting.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Integration specific tweaks for xtensa architecture should
use Kconfig options selected for required platforms, not the
platform headers.
Signed-off-by: Marcin Maka <marcin.maka@linux.intel.com>
This patch implements the new version of EDF scheduler.
This is the first basic implementation, which can be easily extended
in the future.
Previous implementation had two major flaws:
- Tasks could only be preempted based on the interrupt level on which
they have been scheduled, so it was limited based on the hardware.
- This led to the system not fully utilized, so we could never achieve
full EDF functionality.
The new implementation uses only one software interrupt and allows for
dynamic context switching between different tasks based on the deadline.
Also for some cases priority is taken into consideration e.g. for idle
and almost idle tasks, which don't have deadline at all and should be
executed only if the system is free. All other normal tasks should have
the same priority. Task chosen to be run is executed on passive level,
so automatically can be preempted by every interrupt. Every task has
its own private stack on which current context is saved and restored
if needed. Note that main firmware loop is task scheduled with
idle priority, so it will be executed only after every other task
is completed.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
If all symbols in menu are not selectable if some
other symbol is not present, then there is no point
in showing that menu.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
Apollolake+/i.MX have reset vector in ROM. So far we have
used platform config symbols to tell which platforms have
the reset vector in ROM.
Anyhow, things are starting to get ugly here with more
platforms to come so we add an internal config symbol
which will be set by each each platform when needed.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
We already have CONFIG_DEBUG* symbols in Kconfig,
this one is still defined in code, so it should be
moved also to Kconfig.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
It's better to have general options earlier in menuconfig
and specific options later.
Signed-off-by: Janusz Jankowski <janusz.jankowski@linux.intel.com>
I've added counters for processed and received ipc tasks.
They are dropped after trace points in memory window.
Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
Makes DMA FIFO partitioning configurable from Kconfig.
Some platforms need to set FIFO partitions before
enabling DMA controller.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Makes DW-DMA stop method to be configurable from Kconfig.
Some of the platforms cannot stop DMA channel immediately,
but first need to suspend and drain FIFO.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Moves configuration of aggregated channel interrupts to
Kconfig. Currently only Apollolake has possibility
to register interrupt per channel.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
Makes platform support for hardware linked list
configurable from Kconfig. HW_LLI is supported
for all cAVS platforms.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
On i.MX we have only two software interrupts available. One is used
as PLATFORM_SCHEDULER_IRQ and the other one for PLATFORM_IRQ_TASK_HIGH.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>