Skip to content

Commit

Permalink
Merge pull request thesofproject#11 from nashif/kconfig_main_menu
Browse files Browse the repository at this point in the history
kconfig: allow SOF Kconfig to be included in other projects
  • Loading branch information
nashif authored May 24, 2021
2 parents 52dc9c5 + 72f5d54 commit 779f28e
Show file tree
Hide file tree
Showing 3 changed files with 249 additions and 246 deletions.
246 changes: 1 addition & 245 deletions Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,248 +4,4 @@ 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
source "Kconfig.sof"
Loading

0 comments on commit 779f28e

Please sign in to comment.