On a GICv2 implementation, setting GICC_CTLR.EOImode to 1 separates the priority drop and interrupt deactivation operations. Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
234 lines
5.4 KiB
Plaintext
234 lines
5.4 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
comment "ARMv7-R Configuration Options"
|
|
|
|
config ARMV7R_HAVE_GICv2
|
|
bool "ARMV7R_GICv2 support"
|
|
select ARCH_HAVE_IRQTRIGGER
|
|
default y
|
|
---help---
|
|
Selected by the configuration tool if the architecture supports the
|
|
Generic Interrupt Controller (GIC)
|
|
|
|
if ARMV7R_HAVE_GICv2
|
|
|
|
config ARMV7R_GIC_EOIMODE
|
|
bool
|
|
default n
|
|
---help---
|
|
Enable GICC_CTLR.EOImode, this will separates the priority drop and interrupt
|
|
deactivation operations.
|
|
|
|
endif # ARMV7R_GIC_EOIMODE
|
|
|
|
config ARMV7R_HAVE_PTM
|
|
bool
|
|
default n
|
|
---help---
|
|
Selected by the configuration tool if the architecture supports the
|
|
per-processor Private Timers (PTMs)
|
|
|
|
config ARMV7R_MEMINIT
|
|
bool
|
|
default y if BOOT_SDRAM_DATA
|
|
default n if !BOOT_SDRAM_DATA
|
|
---help---
|
|
If this configuration *not* selected, then it is assumed that all
|
|
memory resources are initialized via arm_data_initialize() and
|
|
available at power-up reset time. Other memories, such as SDRAM or
|
|
some ECC SRAM memories, require some platform-specific
|
|
initialization first. In that case, this option should be selected
|
|
and the platform-specific implementation of arm_boot() must perform
|
|
the memory initialization first, then explicitly call
|
|
arm_data_initialize().
|
|
|
|
config ARMV7R_HAVE_L2CC
|
|
bool
|
|
default n
|
|
---help---
|
|
Selected by the configuration tool if the architecture supports any
|
|
kind of L2 cache.
|
|
|
|
config ARMV7R_HAVE_L2CC_PL310
|
|
bool
|
|
default n
|
|
select ARMV7R_HAVE_L2CC
|
|
---help---
|
|
Set by architecture-specific code if the hardware supports a PL310
|
|
r3p2 L2 cache (only version r3p2 is supported).
|
|
|
|
if ARMV7R_HAVE_L2CC
|
|
|
|
menu "L2 Cache Configuration"
|
|
|
|
config ARMV7R_L2CC_PL310
|
|
bool "ARMv7-R L2CC P310 Support"
|
|
default n
|
|
depends on ARMV7R_HAVE_L2CC_PL310
|
|
select ARCH_L2CACHE
|
|
---help---
|
|
Enable the 2 Cache Controller (L2CC) is based on the L2CC-PL310 ARM
|
|
multi-way cache macrocell, version r3p2. The addition of an on-chip
|
|
secondary cache, also referred to as a Level 2 or L2 cache, is a
|
|
method of improving the system performance when significant memory
|
|
traffic is generated by the processor.
|
|
|
|
if ARCH_L2CACHE
|
|
if ARMV7R_L2CC_PL310
|
|
|
|
config PL310_LOCKDOWN_BY_MASTER
|
|
bool "PL310 Lockdown by Master"
|
|
default n
|
|
|
|
config PL310_LOCKDOWN_BY_LINE
|
|
bool "PL310 Lockdown by Line"
|
|
default n
|
|
|
|
config PL310_ADDRESS_FILTERING
|
|
bool "PL310 Address Filtering by Line"
|
|
default n
|
|
|
|
config PL310_TRCR
|
|
bool "PL310 TRCR set by usr"
|
|
default n
|
|
|
|
if PL310_TRCR
|
|
config PL310_TRCR_TSETLAT
|
|
int "PL310 TRCR setup latency"
|
|
default 1
|
|
|
|
config PL310_TRCR_TRDLAT
|
|
int "PL310 TRCR read access latency"
|
|
default 1
|
|
|
|
config PL310_TRCR_TWRLAT
|
|
int "PL310 TRCR write access latency"
|
|
default 1
|
|
endif # PL310_TRCR
|
|
|
|
config PL310_DRCR
|
|
bool "PL310 DRCR set by usr"
|
|
default n
|
|
|
|
if PL310_DRCR
|
|
config PL310_DRCR_DSETLAT
|
|
int "PL310 DRCR setup latency"
|
|
default 1
|
|
|
|
config PL310_DRCR_DRDLAT
|
|
int "PL310 DRCR read access latency"
|
|
default 1
|
|
|
|
config PL310_DRCR_DWRLAT
|
|
int "PL310 DRCR write access latency"
|
|
default 1
|
|
endif # PL310_DRCR
|
|
endif # ARMV7R_L2CC_PL310
|
|
|
|
choice
|
|
prompt "L2 Cache Associativity"
|
|
default ARMV7R_ASSOCIATIVITY_8WAY
|
|
depends on ARCH_L2CACHE
|
|
---help---
|
|
This choice specifies the associativity of L2 cache in terms of the
|
|
number of ways. This value could be obtained by querying cache
|
|
configuration registers. However, by defining a configuration
|
|
setting instead, we can avoid using RAM memory to hold information
|
|
about properties of the memory.
|
|
|
|
config ARMV7R_ASSOCIATIVITY_8WAY
|
|
bool "8-Way Associativity"
|
|
|
|
config ARMV7R_ASSOCIATIVITY_16WAY
|
|
bool "16-Way Associativity"
|
|
|
|
endchoice # L2 Cache Associativity
|
|
|
|
choice
|
|
prompt "L2 Cache Way Size"
|
|
default ARMV7R_WAYSIZE_16KB
|
|
depends on ARCH_L2CACHE
|
|
---help---
|
|
This choice specifies size of each way. This value can be obtained
|
|
by querying cache configuration registers. However, by defining a
|
|
configuration setting instead, we can avoid using RAM memory to hold
|
|
information
|
|
|
|
config ARMV7R_WAYSIZE_16KB
|
|
bool "16 KiB"
|
|
|
|
config ARMV7R_WAYSIZE_32KB
|
|
bool "32 KiB"
|
|
|
|
config ARMV7R_WAYSIZE_64KB
|
|
bool "64 KiB"
|
|
|
|
config ARMV7R_WAYSIZE_128KB
|
|
bool "128 KiB"
|
|
|
|
config ARMV7R_WAYSIZE_256KB
|
|
bool "256 KiB"
|
|
|
|
config ARMV7R_WAYSIZE_512KB
|
|
bool "512 KiB"
|
|
|
|
endchoice # L2 Cache Associativity
|
|
endif # ARCH_L2CACHE
|
|
endmenu # L2 Cache Configuration
|
|
endif # ARMV7R_HAVE_L2CC
|
|
|
|
config ARMV7R_HAVE_DECODEFIQ
|
|
bool
|
|
default n
|
|
|
|
config ARMV7R_DECODEFIQ
|
|
bool "FIQ Handler"
|
|
default n
|
|
depends on ARMV7R_HAVE_DECODEFIQ
|
|
---help---
|
|
Select this option if your platform supports the function
|
|
arm_decodefiq().
|
|
|
|
config ARMV7R_ALIGNMENT_TRAP
|
|
bool "Enable Alignment Check at __start"
|
|
default n
|
|
|
|
config ARMV7R_CACHE_ROUND_ROBIN
|
|
bool "Enable Cache Round Robin Replacement Policy at __start"
|
|
default n
|
|
|
|
config ARMV7R_DCACHE_DISABLE
|
|
bool "Disable DCACHE at __start"
|
|
default n
|
|
|
|
config ARMV7R_ICACHE_DISABLE
|
|
bool "Disable ICACHE at __start"
|
|
default n
|
|
|
|
config ARMV7R_SCTLR_CCP15BEN
|
|
bool "Enable CP15 Barrier at __start"
|
|
default y
|
|
|
|
config ARMV7R_BACKGROUND_REGION
|
|
bool "Enable MPU Background region at __start"
|
|
default y
|
|
|
|
config ARMV7R_DIV0_FAULT
|
|
bool "Enable DIV0 Fault at __start"
|
|
default n
|
|
|
|
config ARMV7R_FAST_INTERRUPT
|
|
bool "Enable Fast Interrupts at __start"
|
|
default n
|
|
|
|
config ARMV7R_IMPL_VECTORS
|
|
bool "Enable Interrupt Vector at __start"
|
|
default n
|
|
|
|
config ARMV7R_NONMASKABLE_FIQ
|
|
bool "Enable Non-maskable FIQ Support at __start"
|
|
default n
|