2015-05-21 00:40:39 +08:00
|
|
|
# Kconfig - general architecture configuration options
|
|
|
|
|
|
|
|
#
|
|
|
|
# Copyright (c) 2014-2015 Wind River Systems, Inc.
|
|
|
|
# Copyright (c) 2015 Intel Corporation
|
|
|
|
#
|
2017-01-19 09:01:01 +08:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
2015-05-21 00:40:39 +08:00
|
|
|
#
|
|
|
|
|
|
|
|
|
2015-10-09 18:20:52 +08:00
|
|
|
choice
|
|
|
|
prompt "Architecture"
|
|
|
|
default X86
|
|
|
|
|
|
|
|
config ARC
|
|
|
|
bool "ARC architecture"
|
|
|
|
|
|
|
|
config ARM
|
|
|
|
bool "ARM architecture"
|
|
|
|
|
|
|
|
config X86
|
|
|
|
bool "x86 architecture"
|
2016-07-16 04:15:00 +08:00
|
|
|
select ATOMIC_OPERATIONS_BUILTIN
|
2015-10-09 18:20:52 +08:00
|
|
|
|
2016-04-22 05:47:09 +08:00
|
|
|
config NIOS2
|
|
|
|
bool "Nios II Gen 2 architecture"
|
2016-07-16 04:15:00 +08:00
|
|
|
select ATOMIC_OPERATIONS_C
|
2016-04-22 05:47:09 +08:00
|
|
|
|
arch: added support for the riscv32 architecture
RISC-V is an open-source instruction set architecture.
Added support for the 32bit version of RISC-V to Zephyr.
1) exceptions/interrupts/faults are handled at the architecture
level via the __irq_wrapper handler. Context saving/restoring
of registers can be handled at both architecture and SOC levels.
If SOC-specific registers need to be saved, SOC level needs to
provide __soc_save_context and __soc_restore_context functions
that shall be accounted by the architecture level, when
corresponding config variable RISCV_SOC_CONTEXT_SAVE is set.
2) As RISC-V architecture does not provide a clear ISA specification
about interrupt handling, each RISC-V SOC handles it in its own
way. Hence, at the architecture level, the __irq_wrapper handler
expects the following functions to be provided by the SOC level:
__soc_is_irq: to check if the exception is the result of an
interrupt or not.
__soc_handle_irq: handle pending IRQ at SOC level (ex: clear
pending IRQ in SOC-specific IRQ register)
3) Thread/task scheduling, as well as IRQ offloading are handled via
the RISC-V system call ("ecall"), which is also handled via the
__irq_wrapper handler. The _Swap asm function just calls "ecall"
to generate an exception.
4) As there is no conventional way of handling CPU power save in
RISC-V, the default nano_cpu_idle and nano_cpu_atomic_idle
functions just unlock interrupts and return to the caller, without
issuing any CPU power saving instruction. Nonetheless, to allow
SOC-level to implement proper CPU power save, nano_cpu_idle and
nano_cpu_atomic_idle functions are defined as __weak
at the architecture level.
Change-Id: I980a161d0009f3f404ad22b226a6229fbb492389
Signed-off-by: Jean-Paul Etienne <fractalclone@gmail.com>
2017-01-11 07:24:30 +08:00
|
|
|
config RISCV32
|
|
|
|
bool "RISCV32 architecture"
|
|
|
|
|
2015-10-09 18:20:52 +08:00
|
|
|
endchoice
|
|
|
|
|
2016-03-19 07:43:40 +08:00
|
|
|
#
|
|
|
|
# Hidden PM feature configs which are to be selected by
|
|
|
|
# individual SoC.
|
|
|
|
#
|
|
|
|
config SYS_POWER_LOW_POWER_STATE_SUPPORTED
|
|
|
|
# Hidden
|
2016-05-25 07:17:13 +08:00
|
|
|
bool
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
This option signifies that the target supports the SYS_POWER_LOW_POWER_STATE
|
|
|
|
configuration option.
|
2016-03-19 07:43:40 +08:00
|
|
|
|
|
|
|
config SYS_POWER_DEEP_SLEEP_SUPPORTED
|
|
|
|
# Hidden
|
2016-05-25 07:17:13 +08:00
|
|
|
bool
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
This option signifies that the target supports the SYS_POWER_DEEP_SLEEP
|
|
|
|
configuration option.
|
2016-11-10 15:16:27 +08:00
|
|
|
|
|
|
|
config BOOTLOADER_CONTEXT_RESTORE_SUPPORTED
|
|
|
|
# Hidden
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
This option signifies that the target has options of bootloaders
|
|
|
|
that support context restore upon resume from deep sleep
|
|
|
|
|
2016-12-15 04:16:32 +08:00
|
|
|
config SIMPLE_FATAL_ERROR_HANDLER
|
|
|
|
prompt "Simple system fatal error handler"
|
|
|
|
bool
|
|
|
|
default n
|
2016-12-15 04:24:12 +08:00
|
|
|
default y if !MULTITHREADING
|
2016-12-15 04:16:32 +08:00
|
|
|
help
|
|
|
|
Provides an implementation of _SysFatalErrorHandler() that hard hangs
|
|
|
|
instead of aborting the faulting thread, and does not print anything,
|
|
|
|
for footprint-concerned systems. Only enable this option if you do not
|
|
|
|
want debug capabilities in case of system fatal error.
|
|
|
|
|
2016-03-19 07:43:40 +08:00
|
|
|
#
|
|
|
|
# End hidden PM feature configs
|
|
|
|
#
|
|
|
|
|
2015-10-09 18:20:52 +08:00
|
|
|
config ARCH
|
|
|
|
string
|
|
|
|
help
|
|
|
|
System architecture string.
|
|
|
|
|
|
|
|
config SOC
|
2016-03-31 20:07:42 +08:00
|
|
|
string
|
|
|
|
help
|
|
|
|
SoC name which can be found under arch/<arch>/soc/<soc name>.
|
|
|
|
This option holds the directory name used by the build system to locate
|
|
|
|
the correct linker and header files for the SoC. This option will go away
|
|
|
|
once all SoCs are using family/series structure.
|
|
|
|
|
|
|
|
config SOC_SERIES
|
|
|
|
string
|
|
|
|
help
|
|
|
|
SoC series name which can be found under arch/<arch>/soc/<family>/<series>.
|
|
|
|
This option holds the directory name used by the build system to locate
|
|
|
|
the correct linker and header files.
|
|
|
|
|
|
|
|
config SOC_FAMILY
|
|
|
|
string
|
|
|
|
help
|
|
|
|
SoC family name which can be found under arch/<arch>/soc/<family>.
|
|
|
|
This option holds the directory name used by the build system to locate
|
|
|
|
the correct linker and header files.
|
2015-11-30 08:47:21 +08:00
|
|
|
|
2015-12-08 09:20:25 +08:00
|
|
|
config BOARD
|
|
|
|
string
|
|
|
|
help
|
|
|
|
This option holds the name of the board and is used to located the files
|
2016-03-31 20:07:42 +08:00
|
|
|
related to the board in the source tree (under boards/).
|
2016-05-05 04:13:56 +08:00
|
|
|
The Board is the first location where we search for a linker.ld file,
|
2016-03-31 20:07:42 +08:00
|
|
|
if not found we look for the linker file in
|
|
|
|
arch/<arch>/soc/<family>/<series>
|
2015-12-08 09:20:25 +08:00
|
|
|
|
2015-10-09 18:20:52 +08:00
|
|
|
source "arch/*/Kconfig"
|
2015-12-13 18:54:28 +08:00
|
|
|
|
|
|
|
source "boards/Kconfig"
|