# SPDX-License-Identifier: BSD-3-Clause mainmenu "SOF $(PROJECTVERSION) Configuration" comment "Compiler: $(CC_VERSION_TEXT)" menu "CAVS" depends on CAVS config HP_MEMORY_BANKS int "HP memory banks count" default 8 help Available memory banks count for High Performance memory Lowering available banks could result in lower power consumption Too low count should result in unresponsive/crashing image due to not enough space for FW base image Banks are 64kb in size. config LP_MEMORY_BANKS int "LP memory banks count" default 1 depends on LP_SRAM help Available memory banks count for Low Power memory config LP_SRAM bool "Enable LPSRAM memory" default n help Turn ON/OFF LPSRAM bank/s. This provides an option to enable an LPSRAM memory for specific platform. Until this options is enabled firmware will not enable any of LPSRAM memory banks. config WAITI_DELAY bool "Enable delay before WAITI instruction" default n help Some cAVS platforms may require additional delay to flush loads and stores before entering WAITI. config CAVS_LPS bool "Intel cAVS Low Power Sequencer for Power Management" depends on CAVS default n help Select this to enable Intel cAVS Low Power Sequencer. This option is required to support S0ix/D0ix mode on cAVS platforms. endmenu 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. source "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_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 endmenu