zephyr/arch/sparc/Kconfig
Martin Åberg fbd9dd4526 SPARC: Add support for single-vector trapping (SVT)
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>
2024-11-25 21:53:55 +01:00

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