| # ARC EM4 options |
| |
| # |
| # Copyright (c) 2014 Wind River Systems, Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| choice |
| prompt "ARC SoC Selection" |
| depends on ARC |
| |
| source "arch/arc/soc/*/Kconfig.soc" |
| endchoice |
| |
| |
| menu "ARC Options" |
| depends on ARC |
| |
| config ARCH |
| default "arc" |
| |
| config ARCH_DEFCONFIG |
| string |
| default "arch/arc/defconfig" |
| |
| 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 |
| default y |
| select NANOKERNEL_TICKLESS_IDLE_SUPPORTED |
| help |
| This option signifies the use of a CPU of the ARCv2 family. |
| |
| config NSIM |
| prompt "Running on the MetaWare nSIM simulator" |
| bool |
| default n |
| help |
| For running on nSIM simulator. |
| |
| a) Uses non-XIP to run in RAM. |
| b) Linked at address 0x4000 with 0x4000 of RAM so that it works with |
| a pc_size of 16 (default). |
| |
| 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 |
| prompt "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_REGULAR_IRQ_PRIO_LEVELS |
| int |
| prompt "Number of supported regular interrupt priority levels" |
| range 1 16 |
| help |
| This represents the number of Regular Interrupt priorities, which |
| does NOT include the Fast (FIRQ) priority. |
| The Regular Interrupt priorities available will be |
| |
| (NUM_IRQ_PRIO_LEVELS - NUM_REGULAR_IRQ_PRIO_LEVELS) to |
| (NUM_REGULAR_IRQ_PRIO_LEVELS - 1). |
| |
| The maximum value is NUM_IRQ_PRIO_LEVELS. |
| |
| The BSP must provide a valid default for proper operation. |
| |
| config NUM_IRQS |
| int |
| prompt "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 FIRQ_STACK_SIZE |
| int |
| prompt "Size of stack for FIRQs (in bytes)" |
| depends on CPU_ARCV2 |
| default 1024 |
| help |
| FIRQs and regular IRQs have different stacks so that a FIRQ can start |
| running without doing stack switching in software. |
| |
| config ARC_STACK_CHECKING |
| bool "Enable Stack Checking" |
| depends on CPU_ARCV2 |
| default n |
| help |
| ARCV2 has a special feature allowing to check stack overflows. This |
| enables code that allows using this debug feature |
| |
| config FAULT_DUMP |
| int |
| prompt "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 IRQ_OFFLOAD |
| bool "Enable IRQ offload" |
| default n |
| help |
| Enable irq_offload() API which allows functions to be synchronously |
| run in interrupt context. Uses one entry in the IDT. Mainly useful |
| for test cases. |
| |
| config XIP |
| default n if NSIM |
| default y |
| |
| config HARVARD |
| prompt "Harvard Architecture" |
| bool |
| default n |
| help |
| The ARC CPU can be configured to have two busses; |
| one for instruction fetching and another that serves as a data bus. |
| |
| config ICCM_SIZE |
| int "ICCM Size in kB" |
| help |
| This option specifies the size of the ICCM in kB. It is normally set by |
| the platform's defconfig file and the user should generally avoid modifying |
| it via the menu configuration. |
| |
| config ICCM_BASE_ADDRESS |
| hex "ICCM Base Address" |
| help |
| This option specifies the base address of the ICCM on the platform. It is |
| normally set by the platform's defconfig file and the user should generally |
| avoid modifying it via the menu configuration. |
| |
| config DCCM_SIZE |
| int "DCCM Size in kB" |
| help |
| This option specifies the size of the DCCM in kB. It is normally set by |
| the platform's defconfig file and the user should generally avoid modifying |
| it via the menu configuration. |
| |
| config DCCM_BASE_ADDRESS |
| hex "DCCM Base Address" |
| help |
| This option specifies the base address of the DCCM on the platform. It is |
| normally set by the platform's defconfig file and the user should generally |
| avoid modifying it via the menu configuration. |
| |
| config SRAM_SIZE |
| int "SRAM Size in kB" |
| help |
| This option specifies the size of the SRAM in kB. It is normally set by |
| the platform's defconfig file and the user should generally avoid modifying |
| it via the menu configuration. |
| |
| config SRAM_BASE_ADDRESS |
| hex "SRAM Base Address" |
| help |
| This option specifies the base address of the SRAM on the platform. It is |
| normally set by the platform's defconfig file and the user should generally |
| avoid modifying it via the menu configuration. |
| |
| config FLASH_SIZE |
| int "Flash Size in kB" |
| help |
| This option specifies the size of the flash in kB. It is normally set by |
| the platform's defconfig file and the user should generally avoid modifying |
| it via the menu configuration. |
| |
| config FLASH_BASE_ADDRESS |
| hex "Flash Base Address" |
| help |
| This option specifies the base address of the flash on the platform. It is |
| normally set by the platform's defconfig file and the user should generally |
| avoid modifying it via the menu configuration. |
| |
| config SW_ISR_TABLE |
| bool |
| prompt "Enable software interrupt handler table" |
| default y |
| help |
| Enable an interrupt handler table implemented in software. This |
| table, unlike ISRs connected directly in the vector table, allow |
| a parameter to be passed to the interrupt handlers. Also, invoking |
| the exeception/interrupt exit stub is automatically done. |
| |
| This has to be enabled for dynamically connecting interrupt handlers |
| at runtime (SW_ISR_TABLE_DYNAMIC). |
| |
| config SW_ISR_TABLE_DYNAMIC |
| bool |
| prompt "Allow installing interrupt handlers at runtime" |
| depends on SW_ISR_TABLE |
| default n |
| help |
| This option enables irq_connect_dynamic(). It moves the ISR table to |
| SRAM so that it is writable. This has the side-effect of removing |
| write-protection on the ISR table. |
| |
| config IRQ_VECTOR_TABLE_CUSTOM |
| bool |
| prompt "Projects provide a custom static IRQ part of vector table" |
| depends on !SW_ISR_TABLE |
| default n |
| help |
| Projects, not the BSP, provide the IRQ part of the vector table. |
| |
| This is the table of interrupt handlers with the best potential |
| performance, but is the less flexible. |
| |
| The ISRs are installed directly in the vector table, thus are |
| directly called by the CPU when an interrupt is taken. This adds |
| the least overhead when handling an interrupt. |
| |
| Downsides: |
| |
| - ISRs cannot have a parameter |
| - ISRs cannot be connected at runtime |
| - ISRs must notify the kernel manually by invoking _ExcExit() when |
| then are about to return. |
| |
| config IRQ_VECTOR_TABLE_BSP |
| bool |
| # omit prompt to signify a "hidden" option |
| depends on SW_ISR_TABLE || !IRQ_VECTOR_TABLE_CUSTOM |
| default y |
| help |
| Not user-selectable, helps build system logic. |
| |
| config ARCH_HAS_TASK_ABORT |
| bool |
| # omit prompt to signify a "hidden" option |
| default n |
| |
| config ARCH_HAS_NANO_FIBER_ABORT |
| bool |
| # omit prompt to signify a "hidden" option |
| default n |
| |
| endmenu |
| |
| |
| source "arch/arc/soc/*/Kconfig" |
| |
| endmenu |