2019-11-01 20:45:29 +08:00
|
|
|
# XTENSA architecture configuration options
|
|
|
|
|
2017-01-13 19:14:33 +08:00
|
|
|
# Copyright (c) 2016 Cadence Design Systems, Inc.
|
2017-01-25 07:10:39 +08:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
2017-01-13 19:14:33 +08:00
|
|
|
|
|
|
|
menu "XTENSA Options"
|
|
|
|
depends on XTENSA
|
|
|
|
|
|
|
|
config ARCH
|
|
|
|
default "xtensa"
|
|
|
|
|
2017-05-11 21:01:09 +08:00
|
|
|
config SIMULATOR_XTENSA
|
Kconfig: Use the first default with a satisfied condition
Up until now, Zephyr has patched Kconfig to use the last 'default' with
a satisfied condition, instead of the first one. I'm not sure why the
patch was added (it predates Kconfiglib), but I suspect it's related to
Kconfig.defconfig files.
There are at least three problems with the patch:
1. It's inconsistent with how Kconfig works in other projects, which
might confuse newcomers.
2. Due to oversights, earlier 'range' properties are still preferred,
as well as earlier 'default' properties on choices.
In addition to being inconsistent, this makes it impossible to
override 'range' properties and choice 'default' properties if the
base definition of the symbol/choice already has 'range'/'default'
properties.
I've seen errors caused by the inconsistency, and I suspect there
are more.
3. A fork of Kconfiglib that adds the patch needs to be maintained.
Get rid of the patch and go back to standard Kconfig behavior, as
follows:
1. Include the Kconfig.defconfig files first instead of last in
Kconfig.zephyr.
2. Include boards/Kconfig and arch/<arch>/Kconfig first instead of
last in arch/Kconfig.
3. Include arch/<arch>/soc/*/Kconfig first instead of last in
arch/<arch>/Kconfig.
4. Swap a few other 'source's to preserve behavior for some scattered
symbols with multiple definitions.
Swap 'source's in some no-op cases too, where it might match the
intent.
5. Reverse the defaults on symbol definitions that have more than one
default.
Skip defaults that are mutually exclusive, e.g. where each default
has an 'if <some board>' condition. They are already safe.
6. Remove the prefer-later-defaults patch from Kconfiglib.
Testing was done with a Python script that lists all Kconfig
symbols/choices with multiple defaults, along with a whitelist of fixed
symbols. The script also verifies that there are no "unreachable"
defaults hidden by defaults without conditions
As an additional test, zephyr/.config was generated before and after the
change for several samples and checked to be identical (after sorting).
This commit includes some default-related cleanups as well:
- Simplify some symbol definitions, e.g. where a default has 'if FOO'
when the symbol already has 'depends on FOO'.
- Remove some redundant 'default ""' for string symbols. This is the
implicit default.
Piggyback fixes for swapped ranges on BT_L2CAP_RX_MTU and
BT_L2CAP_TX_MTU (caused by confusing inconsistency).
Piggyback some fixes for style nits too, e.g. unindented help texts.
Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-07-30 16:57:47 +08:00
|
|
|
bool "Simulator Configuration"
|
2017-05-11 21:01:09 +08:00
|
|
|
help
|
|
|
|
Specify if the board configuration should be treated as a simulator.
|
|
|
|
|
2017-01-13 19:14:33 +08:00
|
|
|
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
2019-10-24 14:13:13 +08:00
|
|
|
prompt "Hardware clock cycles per second, 2000000 for ISS"
|
2017-01-13 19:14:33 +08:00
|
|
|
default 2000000
|
|
|
|
range 1000000 1000000000
|
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option specifies hardware clock.
|
2017-01-13 19:14:33 +08:00
|
|
|
|
|
|
|
config XTENSA_NO_IPC
|
|
|
|
bool "Core has no IPC support"
|
|
|
|
select ATOMIC_OPERATIONS_C
|
|
|
|
help
|
2021-10-21 09:53:04 +08:00
|
|
|
Uncheck this if your core does not implement "SCOMPARE1" register and "s32c1i"
|
2017-12-13 23:08:21 +08:00
|
|
|
instruction.
|
2017-01-13 19:14:33 +08:00
|
|
|
|
2017-05-12 00:46:08 +08:00
|
|
|
config XTENSA_RESET_VECTOR
|
Kconfig: Use the first default with a satisfied condition
Up until now, Zephyr has patched Kconfig to use the last 'default' with
a satisfied condition, instead of the first one. I'm not sure why the
patch was added (it predates Kconfiglib), but I suspect it's related to
Kconfig.defconfig files.
There are at least three problems with the patch:
1. It's inconsistent with how Kconfig works in other projects, which
might confuse newcomers.
2. Due to oversights, earlier 'range' properties are still preferred,
as well as earlier 'default' properties on choices.
In addition to being inconsistent, this makes it impossible to
override 'range' properties and choice 'default' properties if the
base definition of the symbol/choice already has 'range'/'default'
properties.
I've seen errors caused by the inconsistency, and I suspect there
are more.
3. A fork of Kconfiglib that adds the patch needs to be maintained.
Get rid of the patch and go back to standard Kconfig behavior, as
follows:
1. Include the Kconfig.defconfig files first instead of last in
Kconfig.zephyr.
2. Include boards/Kconfig and arch/<arch>/Kconfig first instead of
last in arch/Kconfig.
3. Include arch/<arch>/soc/*/Kconfig first instead of last in
arch/<arch>/Kconfig.
4. Swap a few other 'source's to preserve behavior for some scattered
symbols with multiple definitions.
Swap 'source's in some no-op cases too, where it might match the
intent.
5. Reverse the defaults on symbol definitions that have more than one
default.
Skip defaults that are mutually exclusive, e.g. where each default
has an 'if <some board>' condition. They are already safe.
6. Remove the prefer-later-defaults patch from Kconfiglib.
Testing was done with a Python script that lists all Kconfig
symbols/choices with multiple defaults, along with a whitelist of fixed
symbols. The script also verifies that there are no "unreachable"
defaults hidden by defaults without conditions
As an additional test, zephyr/.config was generated before and after the
change for several samples and checked to be identical (after sorting).
This commit includes some default-related cleanups as well:
- Simplify some symbol definitions, e.g. where a default has 'if FOO'
when the symbol already has 'depends on FOO'.
- Remove some redundant 'default ""' for string symbols. This is the
implicit default.
Piggyback fixes for swapped ranges on BT_L2CAP_RX_MTU and
BT_L2CAP_TX_MTU (caused by confusing inconsistency).
Piggyback some fixes for style nits too, e.g. unindented help texts.
Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-07-30 16:57:47 +08:00
|
|
|
bool "Build reset vector code"
|
2017-05-12 00:46:08 +08:00
|
|
|
default y
|
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option controls whether the initial reset vector code is built.
|
|
|
|
This is always needed for the simulator. Real boards may already
|
|
|
|
implement this in boot ROM.
|
2017-05-12 00:46:08 +08:00
|
|
|
|
2017-06-14 01:48:38 +08:00
|
|
|
config XTENSA_USE_CORE_CRT1
|
Kconfig: Use the first default with a satisfied condition
Up until now, Zephyr has patched Kconfig to use the last 'default' with
a satisfied condition, instead of the first one. I'm not sure why the
patch was added (it predates Kconfiglib), but I suspect it's related to
Kconfig.defconfig files.
There are at least three problems with the patch:
1. It's inconsistent with how Kconfig works in other projects, which
might confuse newcomers.
2. Due to oversights, earlier 'range' properties are still preferred,
as well as earlier 'default' properties on choices.
In addition to being inconsistent, this makes it impossible to
override 'range' properties and choice 'default' properties if the
base definition of the symbol/choice already has 'range'/'default'
properties.
I've seen errors caused by the inconsistency, and I suspect there
are more.
3. A fork of Kconfiglib that adds the patch needs to be maintained.
Get rid of the patch and go back to standard Kconfig behavior, as
follows:
1. Include the Kconfig.defconfig files first instead of last in
Kconfig.zephyr.
2. Include boards/Kconfig and arch/<arch>/Kconfig first instead of
last in arch/Kconfig.
3. Include arch/<arch>/soc/*/Kconfig first instead of last in
arch/<arch>/Kconfig.
4. Swap a few other 'source's to preserve behavior for some scattered
symbols with multiple definitions.
Swap 'source's in some no-op cases too, where it might match the
intent.
5. Reverse the defaults on symbol definitions that have more than one
default.
Skip defaults that are mutually exclusive, e.g. where each default
has an 'if <some board>' condition. They are already safe.
6. Remove the prefer-later-defaults patch from Kconfiglib.
Testing was done with a Python script that lists all Kconfig
symbols/choices with multiple defaults, along with a whitelist of fixed
symbols. The script also verifies that there are no "unreachable"
defaults hidden by defaults without conditions
As an additional test, zephyr/.config was generated before and after the
change for several samples and checked to be identical (after sorting).
This commit includes some default-related cleanups as well:
- Simplify some symbol definitions, e.g. where a default has 'if FOO'
when the symbol already has 'depends on FOO'.
- Remove some redundant 'default ""' for string symbols. This is the
implicit default.
Piggyback fixes for swapped ranges on BT_L2CAP_RX_MTU and
BT_L2CAP_TX_MTU (caused by confusing inconsistency).
Piggyback some fixes for style nits too, e.g. unindented help texts.
Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
2018-07-30 16:57:47 +08:00
|
|
|
bool "Use crt1.S from core"
|
2017-06-14 01:48:38 +08:00
|
|
|
default y
|
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
SoC or boards might define their own __start by setting this setting
|
|
|
|
to false.
|
2017-06-14 01:48:38 +08:00
|
|
|
|
2021-01-07 14:11:11 +08:00
|
|
|
config XTENSA_ENABLE_BACKTRACE
|
2022-03-09 19:05:12 +08:00
|
|
|
bool "Backtrace on panic exception"
|
2021-01-07 14:11:11 +08:00
|
|
|
default y
|
2022-04-05 07:57:17 +08:00
|
|
|
depends on SOC_ESP32 || SOC_FAMILY_INTEL_ADSP
|
2021-01-07 14:11:11 +08:00
|
|
|
help
|
|
|
|
Enable this config option to print backtrace on panic exception
|
|
|
|
|
2021-08-14 00:29:31 +08:00
|
|
|
config XTENSA_CPU_IDLE_SPIN
|
|
|
|
bool "Use busy loop for k_cpu_idle"
|
|
|
|
help
|
|
|
|
Use a spin loop instead of WAITI for the CPU idle state.
|
|
|
|
|
|
|
|
config XTENSA_WAITI_BUG
|
2022-03-09 19:05:12 +08:00
|
|
|
bool "Workaround sequence for WAITI bug on LX6"
|
2021-08-14 00:29:31 +08:00
|
|
|
help
|
|
|
|
SOF traditionally contains this workaround on its ADSP
|
|
|
|
platforms which prefixes a WAITI entry with 128 NOP
|
|
|
|
instructions followed by an ISYNC and EXTW.
|
|
|
|
|
2021-09-10 18:58:53 +08:00
|
|
|
config XTENSA_SMALL_VECTOR_TABLE_ENTRY
|
2022-03-09 19:05:12 +08:00
|
|
|
bool "Workaround for small vector table entries"
|
2021-09-10 18:58:53 +08:00
|
|
|
help
|
|
|
|
This option enables a small indirection to bypass the size
|
|
|
|
constraint of the vector table entry and moved the default
|
|
|
|
handlers to the end of vector table, renaming them to
|
|
|
|
_Level\LVL\()VectorHelper.
|
|
|
|
|
2022-08-25 21:29:11 +08:00
|
|
|
config XTENSA_RPO_CACHE
|
|
|
|
bool "Cached/uncached RPO mapping"
|
|
|
|
help
|
|
|
|
Support Cached/uncached RPO mapping.
|
|
|
|
|
|
|
|
A design trick on multi-core hardware is to map memory twice
|
|
|
|
so that it can be seen in both (incoherent) cached mappings
|
|
|
|
and a coherent "shared" area.
|
|
|
|
|
|
|
|
if XTENSA_RPO_CACHE
|
2022-01-07 21:09:39 +08:00
|
|
|
config XTENSA_CACHED_REGION
|
|
|
|
int "Cached RPO mapping"
|
|
|
|
range 0 7
|
|
|
|
help
|
2022-08-25 21:29:11 +08:00
|
|
|
This specifies which 512M region (0-7, as defined by the Xtensa
|
|
|
|
Region Protection Option) contains the "cached" mapping.
|
2022-01-07 21:09:39 +08:00
|
|
|
|
|
|
|
config XTENSA_UNCACHED_REGION
|
|
|
|
int "Uncached RPO mapping"
|
|
|
|
range 0 7
|
|
|
|
help
|
|
|
|
As for XTENSA_CACHED_REGION, this specifies which 512M
|
|
|
|
region (0-7) contains the "uncached" mapping.
|
|
|
|
|
2022-08-25 21:29:11 +08:00
|
|
|
endif
|
|
|
|
|
2022-06-06 22:49:27 +08:00
|
|
|
config XTENSA_CCOUNT_HZ
|
|
|
|
int "CCOUNT cycle rate"
|
|
|
|
default 1000000
|
|
|
|
help
|
|
|
|
Rate in HZ of the Xtensa core as measured by the value of
|
|
|
|
the CCOUNT register.
|
|
|
|
|
2017-01-13 19:14:33 +08:00
|
|
|
endmenu
|