mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-28 23:46:08 +00:00
This adds support for the single-vector trapping (SVT) model, defined by SPARC-V8 Embedded (V8E) Architecture Specification. SVT is available in most LEON processors. With single-vector trapping enabled, all traps are vectored through a single trap vector (TBR.A) rather than one 16-byte entry for each trap type. This improves memory utilization because the full 4 KiB trap table is not needed. This implementation uses a two-level of lookup table to find the handler for the trap type (0..255). - Execution time is constant. - Condition flags are preserved. - The implementation footprint is 60 bytes .text and 284 bytes .rodata. For comparison, a non-SVT table is always 4096 .text. Signed-off-by: Martin Åberg <martin.aberg@gaisler.com>
68 lines
1.2 KiB
Plaintext
68 lines
1.2 KiB
Plaintext
# Copyright (c) 2019-2020 Cobham Gaisler AB
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "SPARC Options"
|
|
depends on SPARC
|
|
|
|
config ARCH
|
|
default "sparc"
|
|
|
|
config SPARC_NWIN
|
|
int "Number of register windows"
|
|
default 8
|
|
help
|
|
Number of implemented register windows.
|
|
|
|
config GEN_ISR_TABLES
|
|
default y
|
|
|
|
config GEN_IRQ_VECTOR_TABLE
|
|
default n
|
|
|
|
config GEN_SW_ISR_TABLE
|
|
default y
|
|
|
|
config NUM_IRQS
|
|
int
|
|
default 32
|
|
|
|
config SPARC_SVT
|
|
bool "Single-vector trapping"
|
|
help
|
|
Use Single-vector trapping (SVT). Defined by SPARC-V8 Embedded (V8E)
|
|
Architecture Specification and available in some LEON processors.
|
|
|
|
config SPARC_CASA
|
|
bool "CASA instructions"
|
|
help
|
|
Use CASA atomic instructions. Defined by SPARC V9 and available
|
|
in some LEON processors.
|
|
|
|
# The SPARC V8 ABI allocates a stack frame of minimum 96 byte for each SAVE
|
|
# instruction so we bump the kernel default values.
|
|
config MAIN_STACK_SIZE
|
|
default 4096 if COVERAGE_GCOV
|
|
default 2048
|
|
|
|
config IDLE_STACK_SIZE
|
|
default 1024
|
|
|
|
config ISR_STACK_SIZE
|
|
default 4096
|
|
|
|
config TEST_EXTRA_STACK_SIZE
|
|
default 4096 if COVERAGE_GCOV
|
|
default 2048
|
|
|
|
config IPM_CONSOLE_STACK_SIZE
|
|
default 4096 if COVERAGE_GCOV
|
|
default 1024
|
|
|
|
config NET_TX_STACK_SIZE
|
|
default 2048
|
|
|
|
config NET_RX_STACK_SIZE
|
|
default 2048
|
|
|
|
endmenu
|