ARC EM4 is just a baseline configuration of ARC EM family of CPU cores. But with addition of more featuers like caches, DSP extensions etc we're effectively getting EM6, EM5D etc templates. So to not confuse users let's talk about families of ARC cores as that's what makes sense together with extra features but not templates itself. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
211 lines
5.2 KiB
Text
211 lines
5.2 KiB
Text
# ARC options
|
|
|
|
#
|
|
# Copyright (c) 2014, 2019 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
menu "ARC Options"
|
|
depends on ARC
|
|
|
|
config ARCH
|
|
default "arc"
|
|
|
|
menu "ARC processor options"
|
|
|
|
config CPU_ARCEM
|
|
bool
|
|
default y
|
|
select CPU_ARCV2
|
|
select ATOMIC_OPERATIONS_C
|
|
help
|
|
This option signifies the use of an ARC EM CPU
|
|
|
|
endmenu
|
|
|
|
menu "ARCv2 Family Options"
|
|
|
|
config CPU_ARCV2
|
|
bool
|
|
select ARCH_HAS_STACK_PROTECTION if ARC_HAS_STACK_CHECKING || ARC_MPU
|
|
select ARCH_HAS_USERSPACE if ARC_MPU
|
|
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
|
|
int "Number of supported interrupt priority levels"
|
|
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
|
|
int "Upper limit of interrupt numbers/IDs used"
|
|
range 17 256
|
|
help
|
|
Interrupts available will be 0 to NUM_IRQS-1.
|
|
The minimum value is 17 as the first 16 entries in the vector
|
|
table are for CPU exceptions.
|
|
|
|
The BSP must provide a valid default. This drives the size of the
|
|
vector table.
|
|
|
|
config RGF_NUM_BANKS
|
|
int "Number of General Purpose Register Banks"
|
|
depends on CPU_ARCV2
|
|
range 1 2
|
|
default 2
|
|
help
|
|
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.
|
|
|
|
config ARC_FIRQ
|
|
bool "FIRQ enable"
|
|
default y
|
|
help
|
|
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.
|
|
|
|
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.
|
|
|
|
config ARC_STACK_CHECKING
|
|
bool
|
|
help
|
|
Use ARC STACK_CHECKING to do stack protection
|
|
|
|
config ARC_STACK_PROTECTION
|
|
bool
|
|
default y if HW_STACK_PROTECTION
|
|
select ARC_STACK_CHECKING if ARC_HAS_STACK_CHECKING
|
|
select MPU_STACK_GUARD if (!ARC_STACK_CHECKING && ARC_MPU)
|
|
select THREAD_STACK_INFO
|
|
help
|
|
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.
|
|
|
|
config FAULT_DUMP
|
|
int "Fault dump level"
|
|
default 2
|
|
range 0 2
|
|
help
|
|
Different levels for display information when a fault occurs.
|
|
|
|
2: The default. Display specific and verbose information. Consumes
|
|
the most memory (long strings).
|
|
|
|
1: Display general and short information. Consumes less memory
|
|
(short strings).
|
|
|
|
0: Off.
|
|
|
|
config XIP
|
|
default y if !UART_NSIM
|
|
|
|
config GEN_ISR_TABLES
|
|
default y
|
|
|
|
config GEN_IRQ_START_VECTOR
|
|
default 16
|
|
|
|
config HARVARD
|
|
bool "Harvard Architecture"
|
|
help
|
|
The ARC CPU can be configured to have two busses;
|
|
one for instruction fetching and another that serves as a data bus.
|
|
|
|
config CODE_DENSITY
|
|
bool "Code Density Option"
|
|
help
|
|
Enable code density option to get better code density
|
|
|
|
config ARC_HAS_SECURE
|
|
bool
|
|
# a hidden option
|
|
help
|
|
This option is enabled when ARC core supports secure mode
|
|
|
|
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
|
|
|
|
config CACHE_LINE_SIZE_DETECT
|
|
bool "Detect d-cache line size at runtime"
|
|
help
|
|
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.
|
|
|
|
If the CPU's d-cache line size is known in advance, disable this
|
|
option and manually enter the value for CACHE_LINE_SIZE.
|
|
|
|
config CACHE_LINE_SIZE
|
|
int "Cache line size" if !CACHE_LINE_SIZE_DETECT
|
|
default 32
|
|
help
|
|
Size in bytes of a CPU d-cache line.
|
|
|
|
Detect automatically at runtime by selecting CACHE_LINE_SIZE_DETECT.
|
|
|
|
config ARCH_CACHE_FLUSH_DETECT
|
|
bool
|
|
|
|
config CACHE_FLUSHING
|
|
bool "Enable d-cache flushing mechanism"
|
|
help
|
|
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.
|
|
|
|
endmenu
|
|
|
|
config ARC_EXCEPTION_DEBUG
|
|
bool "Unhandled exception debugging information"
|
|
default n
|
|
depends on PRINTK
|
|
help
|
|
Print human-readable information about exception vectors, cause codes,
|
|
and parameters, at a cost of code/data size for the human-readable
|
|
strings.
|
|
|
|
endmenu
|