2019-06-04 13:37:31 +08:00
|
|
|
# ARC options
|
2015-06-20 21:23:14 +08:00
|
|
|
|
|
|
|
#
|
2019-06-04 13:37:31 +08:00
|
|
|
# Copyright (c) 2014, 2019 Wind River Systems, Inc.
|
2015-06-20 21:23:14 +08:00
|
|
|
#
|
2017-01-19 09:01:01 +08:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
2015-06-20 21:23:14 +08:00
|
|
|
#
|
2016-03-16 01:24:36 +08:00
|
|
|
|
|
|
|
menu "ARC Options"
|
2015-10-09 18:20:52 +08:00
|
|
|
depends on ARC
|
2015-08-24 01:08:06 +08:00
|
|
|
|
2015-10-09 18:20:52 +08:00
|
|
|
config ARCH
|
|
|
|
default "arc"
|
2015-06-20 21:23:14 +08:00
|
|
|
|
2019-06-04 14:57:27 +08:00
|
|
|
choice
|
|
|
|
prompt "ARC core family"
|
|
|
|
default CPU_ARCEM
|
2015-06-20 21:23:14 +08:00
|
|
|
|
2019-06-04 13:37:31 +08:00
|
|
|
config CPU_ARCEM
|
2019-06-04 14:57:27 +08:00
|
|
|
bool "ARC EM cores"
|
2015-06-20 21:23:14 +08:00
|
|
|
select CPU_ARCV2
|
2016-04-27 00:59:44 +08:00
|
|
|
select ATOMIC_OPERATIONS_C
|
2015-06-20 21:23:14 +08:00
|
|
|
help
|
2019-06-04 13:37:31 +08:00
|
|
|
This option signifies the use of an ARC EM CPU
|
2015-06-20 21:23:14 +08:00
|
|
|
|
2019-06-04 14:57:27 +08:00
|
|
|
config CPU_ARCHS
|
|
|
|
bool "ARC HS cores"
|
|
|
|
select CPU_ARCV2
|
|
|
|
select ATOMIC_OPERATIONS_BUILTIN
|
|
|
|
help
|
|
|
|
This option signifies the use of an ARC HS CPU
|
|
|
|
|
|
|
|
endchoice
|
2015-06-20 21:23:14 +08:00
|
|
|
|
|
|
|
menu "ARCv2 Family Options"
|
|
|
|
|
|
|
|
config CPU_ARCV2
|
|
|
|
bool
|
2019-03-20 14:17:37 +08:00
|
|
|
select ARCH_HAS_STACK_PROTECTION if ARC_HAS_STACK_CHECKING || ARC_MPU
|
|
|
|
select ARCH_HAS_USERSPACE if ARC_MPU
|
2019-06-13 17:21:52 +08:00
|
|
|
select USE_SWITCH
|
|
|
|
select USE_SWITCH_SUPPORTED
|
2015-06-20 21:23:14 +08:00
|
|
|
default y
|
|
|
|
help
|
|
|
|
This option signifies the use of a CPU of the ARCv2 family.
|
|
|
|
|
|
|
|
config DATA_ENDIANNESS_LITTLE
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
This is driven by the processor implementation, since it is fixed in
|
|
|
|
hardware. The BSP should set this value to 'n' if the data is
|
|
|
|
implemented as big endian.
|
|
|
|
|
|
|
|
config NUM_IRQ_PRIO_LEVELS
|
2018-08-14 22:19:20 +08:00
|
|
|
int "Number of supported interrupt priority levels"
|
2015-06-20 21:23:14 +08:00
|
|
|
range 1 16
|
|
|
|
help
|
|
|
|
Interrupt priorities available will be 0 to NUM_IRQ_PRIO_LEVELS-1.
|
|
|
|
The minimum value is 1.
|
|
|
|
|
|
|
|
The BSP must provide a valid default for proper operation.
|
|
|
|
|
|
|
|
config NUM_IRQS
|
2018-08-14 22:19:20 +08:00
|
|
|
int "Upper limit of interrupt numbers/IDs used"
|
2016-01-05 05:54:14 +08:00
|
|
|
range 17 256
|
2015-06-20 21:23:14 +08:00
|
|
|
help
|
|
|
|
Interrupts available will be 0 to NUM_IRQS-1.
|
2016-01-05 05:54:14 +08:00
|
|
|
The minimum value is 17 as the first 16 entries in the vector
|
|
|
|
table are for CPU exceptions.
|
2015-06-20 21:23:14 +08:00
|
|
|
|
|
|
|
The BSP must provide a valid default. This drives the size of the
|
|
|
|
vector table.
|
|
|
|
|
2016-10-08 01:29:11 +08:00
|
|
|
config RGF_NUM_BANKS
|
2018-08-14 22:19:20 +08:00
|
|
|
int "Number of General Purpose Register Banks"
|
2016-10-08 01:29:11 +08:00
|
|
|
depends on CPU_ARCV2
|
|
|
|
range 1 2
|
|
|
|
default 2
|
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
The ARC CPU can be configured to have more than one register
|
|
|
|
bank. If fast interrupts are supported (FIRQ), the 2nd
|
|
|
|
register bank, in the set, will be used by FIRQ interrupts.
|
|
|
|
If fast interrupts are supported but there is only 1
|
|
|
|
register bank, the fast interrupt handler must save
|
|
|
|
and restore general purpose registers.
|
2016-10-08 01:29:11 +08:00
|
|
|
|
2017-11-29 16:55:18 +08:00
|
|
|
config ARC_FIRQ
|
2018-08-14 22:19:20 +08:00
|
|
|
bool "FIRQ enable"
|
2017-11-29 16:55:18 +08:00
|
|
|
default y
|
|
|
|
help
|
2018-01-06 20:41:34 +08:00
|
|
|
Fast interrupts are supported (FIRQ). If FIRQ enabled, for interrupts
|
|
|
|
with highest priority, status32 and pc will be saved in aux regs,
|
|
|
|
other regs will be saved according to the number of register bank;
|
|
|
|
If FIRQ is disabled, the handle of interrupts with highest priority
|
|
|
|
will be same with other interrupts.
|
2017-11-29 16:55:18 +08:00
|
|
|
|
2019-03-20 14:17:37 +08:00
|
|
|
config ARC_HAS_STACK_CHECKING
|
|
|
|
bool "ARC has STACK_CHECKING"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
ARC is configured with STACK_CHECKING which is a mechanism for
|
|
|
|
checking stack accesses and raising an exception when a stack
|
|
|
|
overflow or underflow is detected.
|
|
|
|
|
2019-07-24 17:47:29 +08:00
|
|
|
config ARC_CONNECT
|
|
|
|
bool "ARC has ARC connect"
|
|
|
|
select SCHED_IPI_SUPPORTED
|
|
|
|
help
|
|
|
|
ARC is configured with ARC CONNECT which is a hardware for connecting
|
|
|
|
multi cores.
|
|
|
|
|
2019-03-20 14:17:37 +08:00
|
|
|
config ARC_STACK_CHECKING
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
Use ARC STACK_CHECKING to do stack protection
|
|
|
|
|
|
|
|
config ARC_STACK_PROTECTION
|
2017-09-09 09:14:06 +08:00
|
|
|
bool
|
|
|
|
default y if HW_STACK_PROTECTION
|
2019-03-20 14:17:37 +08:00
|
|
|
select ARC_STACK_CHECKING if ARC_HAS_STACK_CHECKING
|
|
|
|
select MPU_STACK_GUARD if (!ARC_STACK_CHECKING && ARC_MPU)
|
2017-05-12 06:33:16 +08:00
|
|
|
select THREAD_STACK_INFO
|
2016-03-12 01:29:14 +08:00
|
|
|
help
|
2019-03-20 14:17:37 +08:00
|
|
|
This option enables either:
|
|
|
|
- The ARC stack checking, or
|
|
|
|
- the MPU-based stack guard
|
|
|
|
to cause a system fatal error
|
|
|
|
if the bounds of the current process stack are overflowed.
|
|
|
|
The two stack guard options are mutually exclusive. The
|
|
|
|
selection of the ARC stack checking is
|
|
|
|
prioritized over the MPU-based stack guard.
|
2016-03-12 01:29:14 +08:00
|
|
|
|
2019-07-17 06:10:39 +08:00
|
|
|
config ARC_USE_UNALIGNED_MEM_ACCESS
|
|
|
|
bool "Enable unaligned access in HW"
|
|
|
|
default n if CPU_ARCEM
|
2019-06-04 14:57:27 +08:00
|
|
|
default y if CPU_ARCHS
|
|
|
|
depends on (CPU_ARCEM && !ARC_HAS_SECURE) || CPU_ARCHS
|
2019-07-17 06:10:39 +08:00
|
|
|
help
|
|
|
|
ARC EM cores w/o secure shield 2+2 mode support might be configured
|
|
|
|
to support unaligned memory access which is then disabled by default.
|
|
|
|
Enable unaligned access in hardware and make software to use it.
|
|
|
|
|
2015-06-20 21:23:14 +08:00
|
|
|
config FAULT_DUMP
|
2018-08-14 22:19:20 +08:00
|
|
|
int "Fault dump level"
|
2015-06-20 21:23:14 +08:00
|
|
|
default 2
|
2015-11-02 06:21:26 +08:00
|
|
|
range 0 2
|
2015-06-20 21:23:14 +08:00
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
Different levels for display information when a fault occurs.
|
2015-06-20 21:23:14 +08:00
|
|
|
|
2017-12-13 23:08:21 +08:00
|
|
|
2: The default. Display specific and verbose information. Consumes
|
2016-06-22 03:34:38 +08:00
|
|
|
the most memory (long strings).
|
|
|
|
|
2017-12-13 23:08:21 +08:00
|
|
|
1: Display general and short information. Consumes less memory
|
2016-06-22 03:34:38 +08:00
|
|
|
(short strings).
|
|
|
|
|
2017-12-13 23:08:21 +08:00
|
|
|
0: Off.
|
2015-06-20 21:23:14 +08:00
|
|
|
|
|
|
|
config XIP
|
2018-06-22 06:37:17 +08:00
|
|
|
default y if !UART_NSIM
|
2015-06-20 21:23:14 +08:00
|
|
|
|
2017-02-14 01:36:32 +08:00
|
|
|
config GEN_ISR_TABLES
|
|
|
|
default y
|
|
|
|
|
|
|
|
config GEN_IRQ_START_VECTOR
|
|
|
|
default 16
|
|
|
|
|
2016-05-07 08:23:05 +08:00
|
|
|
config HARVARD
|
2018-08-14 22:19:20 +08:00
|
|
|
bool "Harvard Architecture"
|
2016-05-07 08:23:05 +08:00
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
The ARC CPU can be configured to have two busses;
|
|
|
|
one for instruction fetching and another that serves as a data bus.
|
boards: Update arc em_starterkit support from 2.2 to 2.3
Here are the main changes:
* board: Update EMSK onboard resources such as Button, Switch and LEDs
+ update soc.h for em7d, em9d, em11d
+ update board.h for em_starterkit board
* arc: Add floating point support and code density support
+ add kconfig configuration
+ add compiler options
+ add register definitions, marcos, assembly codes
+ fixes in existing codes and configurations.
* arc: Update detailed board configurations for cores of emsk 2.3
* script: Provide arc_debugger.sh for debugging em_starterkit board
+ make BOARD=em_starterkit debug
This will start openocd server for emsk, and arc gdb will connect
to this debug server, user can run `continue` command if user just
want to run the application, or other commands if debugging needed.
+ make BOARD=em_starterkit debugserver
This will start an openocd debugger server for emsk, and user can
connect to this debugserver using arc gdb and do what they want to.
+ make BOARD=em_starterkit flash
This will download the zephyr application elf file to emsk,
and run it.
Signed-off-by: Huaqi Fang <huaqi.fang@synopsys.com>
2017-05-17 15:18:51 +08:00
|
|
|
|
|
|
|
config CODE_DENSITY
|
2018-08-14 22:19:20 +08:00
|
|
|
bool "Code Density Option"
|
boards: Update arc em_starterkit support from 2.2 to 2.3
Here are the main changes:
* board: Update EMSK onboard resources such as Button, Switch and LEDs
+ update soc.h for em7d, em9d, em11d
+ update board.h for em_starterkit board
* arc: Add floating point support and code density support
+ add kconfig configuration
+ add compiler options
+ add register definitions, marcos, assembly codes
+ fixes in existing codes and configurations.
* arc: Update detailed board configurations for cores of emsk 2.3
* script: Provide arc_debugger.sh for debugging em_starterkit board
+ make BOARD=em_starterkit debug
This will start openocd server for emsk, and arc gdb will connect
to this debug server, user can run `continue` command if user just
want to run the application, or other commands if debugging needed.
+ make BOARD=em_starterkit debugserver
This will start an openocd debugger server for emsk, and user can
connect to this debugserver using arc gdb and do what they want to.
+ make BOARD=em_starterkit flash
This will download the zephyr application elf file to emsk,
and run it.
Signed-off-by: Huaqi Fang <huaqi.fang@synopsys.com>
2017-05-17 15:18:51 +08:00
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
Enable code density option to get better code density
|
boards: Update arc em_starterkit support from 2.2 to 2.3
Here are the main changes:
* board: Update EMSK onboard resources such as Button, Switch and LEDs
+ update soc.h for em7d, em9d, em11d
+ update board.h for em_starterkit board
* arc: Add floating point support and code density support
+ add kconfig configuration
+ add compiler options
+ add register definitions, marcos, assembly codes
+ fixes in existing codes and configurations.
* arc: Update detailed board configurations for cores of emsk 2.3
* script: Provide arc_debugger.sh for debugging em_starterkit board
+ make BOARD=em_starterkit debug
This will start openocd server for emsk, and arc gdb will connect
to this debug server, user can run `continue` command if user just
want to run the application, or other commands if debugging needed.
+ make BOARD=em_starterkit debugserver
This will start an openocd debugger server for emsk, and user can
connect to this debugserver using arc gdb and do what they want to.
+ make BOARD=em_starterkit flash
This will download the zephyr application elf file to emsk,
and run it.
Signed-off-by: Huaqi Fang <huaqi.fang@synopsys.com>
2017-05-17 15:18:51 +08:00
|
|
|
|
2019-07-30 19:53:30 +08:00
|
|
|
config ARC_HAS_ACCL_REGS
|
|
|
|
bool "Reg Pair ACCL:ACCH (FPU and/or MPY > 6)"
|
|
|
|
default y if FLOAT
|
|
|
|
help
|
|
|
|
Depending on the configuration, CPU can contain accumulator reg-pair
|
|
|
|
(also referred to as r58:r59). These can also be used by gcc as GPR so
|
|
|
|
kernel needs to save/restore per process
|
|
|
|
|
2019-08-01 12:39:35 +08:00
|
|
|
config ARC_HAS_SECURE
|
|
|
|
bool "ARC has SecureShield"
|
|
|
|
select CPU_HAS_TEE
|
|
|
|
select ARCH_HAS_TRUSTED_EXECUTION
|
|
|
|
help
|
|
|
|
This option is enabled when ARC core supports secure mode
|
|
|
|
|
|
|
|
config SJLI_TABLE_SIZE
|
|
|
|
int "SJLI table size"
|
|
|
|
depends on ARC_SECURE_FIRMWARE
|
|
|
|
default 8
|
|
|
|
help
|
|
|
|
The size of sjli (Secure Jump and Link Indexed) table. The
|
|
|
|
code in normal mode call secure services in secure mode through
|
|
|
|
sjli instruction.
|
|
|
|
|
|
|
|
config ARC_SECURE_FIRMWARE
|
|
|
|
prompt "Generate Secure Firmware"
|
|
|
|
bool
|
|
|
|
depends on ARC_HAS_SECURE
|
|
|
|
default y if TRUSTED_EXECUTION_SECURE
|
|
|
|
help
|
|
|
|
This option indicates that we are building a Zephyr image that
|
|
|
|
is intended to execute in secure mode. The option is only
|
|
|
|
applicable to ARC processors that implement the SecureShield.
|
|
|
|
|
|
|
|
This option enables Zephyr to include code that executes in
|
|
|
|
secure mode, as well as to exclude code that is designed to
|
|
|
|
execute only in normal mode.
|
|
|
|
|
|
|
|
Code executing in secure mode has access to both the secure
|
|
|
|
and normal resources of the ARC processors.
|
|
|
|
|
|
|
|
config ARC_NORMAL_FIRMWARE
|
|
|
|
prompt "Generate Normal Firmware"
|
|
|
|
bool
|
|
|
|
depends on !ARC_SECURE_FIRMWARE
|
|
|
|
depends on ARC_HAS_SECURE
|
|
|
|
default y if TRUSTED_EXECUTION_NONSECURE
|
|
|
|
help
|
|
|
|
This option indicates that we are building a Zephyr image that
|
|
|
|
is intended to execute in normal mode. Execution of this
|
|
|
|
image is triggered by secure firmware that executes in secure
|
|
|
|
mode. The option is only applicable to ARC processors that
|
|
|
|
implement the SecureShield.
|
|
|
|
|
|
|
|
This option enables Zephyr to include code that executes in
|
|
|
|
normal mode only, as well as to exclude code that is
|
|
|
|
designed to execute only in secure mode.
|
|
|
|
|
|
|
|
Code executing in normal mode has no access to secure
|
|
|
|
resources of the ARC processors, and, therefore, it shall avoid
|
|
|
|
accessing them.
|
|
|
|
|
2017-08-15 12:20:42 +08:00
|
|
|
menu "ARC MPU Options"
|
|
|
|
depends on CPU_HAS_MPU
|
|
|
|
|
|
|
|
config ARC_MPU_ENABLE
|
|
|
|
bool "Enable MPU"
|
|
|
|
select ARC_MPU
|
|
|
|
help
|
|
|
|
Enable MPU
|
|
|
|
|
|
|
|
source "arch/arc/core/mpu/Kconfig"
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
2016-11-05 05:48:23 +08:00
|
|
|
config CACHE_LINE_SIZE_DETECT
|
2018-08-14 22:19:20 +08:00
|
|
|
bool "Detect d-cache line size at runtime"
|
2016-11-05 05:48:23 +08:00
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option enables querying the d-cache build register for finding
|
|
|
|
the d-cache line size at the expense of taking more memory and code
|
|
|
|
and a slightly increased boot time.
|
2016-11-05 05:48:23 +08:00
|
|
|
|
2017-12-13 23:08:21 +08:00
|
|
|
If the CPU's d-cache line size is known in advance, disable this
|
|
|
|
option and manually enter the value for CACHE_LINE_SIZE.
|
2016-11-05 05:48:23 +08:00
|
|
|
|
|
|
|
config CACHE_LINE_SIZE
|
2018-08-14 22:19:20 +08:00
|
|
|
int "Cache line size" if !CACHE_LINE_SIZE_DETECT
|
2016-11-05 05:48:23 +08:00
|
|
|
default 32
|
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
Size in bytes of a CPU d-cache line.
|
2016-11-05 05:48:23 +08:00
|
|
|
|
2017-12-13 23:08:21 +08:00
|
|
|
Detect automatically at runtime by selecting CACHE_LINE_SIZE_DETECT.
|
2015-06-20 21:23:14 +08:00
|
|
|
|
2016-11-05 05:48:23 +08:00
|
|
|
config ARCH_CACHE_FLUSH_DETECT
|
|
|
|
bool
|
|
|
|
|
|
|
|
config CACHE_FLUSHING
|
2018-08-14 22:19:20 +08:00
|
|
|
bool "Enable d-cache flushing mechanism"
|
2016-11-05 05:48:23 +08:00
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This links in the sys_cache_flush() function, which provides a
|
|
|
|
way to flush multiple lines of the d-cache.
|
|
|
|
If the d-cache is present, set this to y.
|
|
|
|
If the d-cache is NOT present, set this to n.
|
2016-11-05 05:48:23 +08:00
|
|
|
|
2019-09-26 21:40:42 +08:00
|
|
|
config ARC_EXCEPTION_STACK_SIZE
|
|
|
|
int "ARC exception handling stack size"
|
|
|
|
default 768
|
|
|
|
help
|
|
|
|
Size in bytes of exception handling stack which is at the top of
|
|
|
|
interrupt stack to get smaller memory footprint because exception
|
|
|
|
is not frequent. To reduce the impact on interrupt handling,
|
|
|
|
especially nested interrupt, it cannot be too large.
|
|
|
|
|
2016-11-05 05:48:23 +08:00
|
|
|
endmenu
|
2015-06-20 21:23:14 +08:00
|
|
|
|
2019-04-04 05:25:28 +08:00
|
|
|
config ARC_EXCEPTION_DEBUG
|
|
|
|
bool "Unhandled exception debugging information"
|
|
|
|
default n
|
2019-07-16 13:03:56 +08:00
|
|
|
depends on PRINTK || LOG
|
2019-04-04 05:25:28 +08:00
|
|
|
help
|
|
|
|
Print human-readable information about exception vectors, cause codes,
|
|
|
|
and parameters, at a cost of code/data size for the human-readable
|
|
|
|
strings.
|
|
|
|
|
2015-10-09 18:20:52 +08:00
|
|
|
endmenu
|