sof/Kconfig

263 lines
5.9 KiB
Plaintext

# 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 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 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.
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