| # ARC EM4 options |
| |
| # |
| # Copyright (c) 2014 Wind River Systems, Inc. |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| # |
| |
| menu "ARC Options" |
| depends on ARC |
| |
| config ARCH |
| default "arc" |
| |
| menu "ARC EM4 processor options" |
| |
| config CPU_ARCEM4 |
| bool |
| default y |
| select CPU_ARCV2 |
| select ATOMIC_OPERATIONS_C |
| help |
| This option signifies the use of an ARC EM4 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 |