# SPDX-License-Identifier: BSD-3-Clause mainmenu "SOF $(PROJECTVERSION) Configuration" comment "Compiler: $(CC_VERSION_TEXT)" config WAITI_DELAY bool default n help LX6 Xtensa platforms may require additional delay to flush loads and stores before entering WAITI. config HOST_PTABLE bool default n config BOOT_LOADER bool default n config HAVE_RESET_VECTOR_ROM bool default n help Select if your platform has the reset vector in ROM. config IRQ_MAP bool default n config DMA_GW bool default n config MEM_WND bool default n config INTEL_IOMUX bool default n config HW_LLI bool default n help Hardware linked list is the DW-DMA feature, which allows to automatically reload the next programmed linked list item from memory without stopping the transfer. Without it the transfer stops after every lli read and FW needs to manually setup the next transfer. Any platforms with hardware linked list support should set this. config DW_DMA_AGGREGATED_IRQ bool default n help Some platforms cannot register interrupt per DW-DMA channel and have the possibility only to register interrupts per DMA controller, which require manual handling of aggregated irq. Any platforms with DW-DMA aggregated interrupts support should set this. config DMA_SUSPEND_DRAIN bool default n help Some platforms cannot just simple disable DMA channel during the transfer, because it will hang the whole DMA controller. Instead we can suspend the channel and drain the FIFO in order to stop the channel as soon as possible. Any platforms without the ability to disable the DMA channel right away should set this. config DMA_FIFO_PARTITION bool default n help Some platforms require to manually set DMA FIFO partitions before starting any transfer. Any platforms without automatic FIFO partitions should set this. config INTERRUPT_LEVEL_1 bool default n help Select if the platform supports any interrupts of level 1. Disabling this option allows for less memory consumption. config INTERRUPT_LEVEL_2 bool default n help Select if the platform supports any interrupts of level 2. Disabling this option allows for less memory consumption. config INTERRUPT_LEVEL_3 bool default n help Select if the platform supports any interrupts of level 3. Disabling this option allows for less memory consumption. config INTERRUPT_LEVEL_4 bool default n help Select if the platform supports any interrupts of level 4. Disabling this option allows for less memory consumption. config INTERRUPT_LEVEL_5 bool default n help Select if the platform supports any interrupts of level 5. Disabling this option allows for less memory consumption. rsource "src/Kconfig" choice prompt "Optimization" default OPTIMIZE_FOR_PERFORMANCE help Controls how compiler should optimize binary. This config should affect only compiler settings and is not meant to be used for conditional compilation of code. config OPTIMIZE_FOR_PERFORMANCE bool "Optimize for performance" help Apply compiler optimizations prioritizing performance. It means -O2 for GCC or equivalent for other compilers. config OPTIMIZE_FOR_SIZE bool "Optimize for size" help Apply compiler optimizations prioritizing binary size. It means -Os for GCC or equivalent for other compilers. config OPTIMIZE_FOR_DEBUG bool "Optimize for debug" help Apply compiler optimizations prioritizing debugging experience. It means -Og for GCC or equivalent for other compilers. config OPTIMIZE_FOR_NONE bool "Don't optimize" help Apply no compiler optimizations. It means -O0 for GCC or equivalent for other compilers. endchoice menu "Debug" config DEBUG bool "Enable debug build" default n help Select for debug build config GDB_DEBUG bool "GDB Stub" default n help Select for GDB debugging config DEBUG_HEAP bool "Heap debug" default n help Select for enable heap alloc debugging config DEBUG_MEMORY_USAGE_SCAN bool "Memory usage scan" default y help It enables memory usage scan at demand in runtime. This feature does not affect standard memory operations, especially allocation and deallocation. config DEBUG_BLOCK_FREE bool "Blocks freeing debug" default n help It enables checking if free was called multiple times on already freed block of memory. Enabling this feature increases number of memory writes and reads, due to checks for memory patterns that may be performed on allocation and deallocation. config DEBUG_LOCKS bool "Spinlock debug" default n help It adds additional information to the spinlocks about the current user of the lock. Also executes panic on deadlock. config DEBUG_LOCKS_VERBOSE bool "Spinlock verbose debug" depends on DEBUG_LOCKS default n help In addition to DEBUG_LOCKS it also adds spinlock traces every time the lock is acquired. config BUILD_VM_ROM bool "Build VM ROM" default n help Select if you want to build VM ROM config DEBUG_IPC_COUNTERS bool "IPC counters" depends on CAVS depends on DEBUG default n help Select for enabling tracing IPC counter in SRAM_REG mailbox config PERFORMANCE_COUNTERS bool "Performance counters" default n help Enables tracing of simple performance measurements. A basic use case is to measure number of platform & cpu clock ticks passed between two checkpoints (init() and stamp()), for example total time spent on running low latency scheduler tasks. Platforms that gate cpu clock in wait-for-interrupt calls may also use the stamp() macro periodically to find out how long the cpu was in active/sleep state between the calls and estimate the cpu load. config DSP_RESIDENCY_COUNTERS bool "DSP residency counters" default n help Enables simple DSP residency counters in SRAM_REG mailbox. R0, R1, R2 are abstract states which can be used differently based on platform implementation. endmenu