summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/armv7-a/Kconfig
blob: fb82ad13be55ed667cea3dcfbdec7278c296bed7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

comment "ARMv7-A Configuration Options"

config ARMV7A_HAVE_L2CC
	bool
	default n
	---help---
		Selected by the configuration tool if the architecutre supports any
		kind of L2 cache.

config ARMV7A_HAVE_L2CC_PL310
	bool
	default n
	select ARMV7A_HAVE_L2CC
	---help---
		Set by architecture-specific code if the hardware supports a PL310
		r3p2 L2 cache (only version r3p2 is supported).

if ARMV7A_HAVE_L2CC

menu "L2 Cache Configuration"

config ARMV7A_L2CC_PL310
	bool "ARMv7-A L2CC P310 Support"
	default n
	depends on ARMV7A_HAVE_L2CC_PL310 && EXPERIMENTAL
	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 ARMV7A_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

endif # ARMV7A_L2CC_PL310

choice
	prompt "L2 Cache Associativity"
	default ARMV7A_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 ARMV7A_ASSOCIATIVITY_8WAY
	bool "8-Way Associativity"

config ARMV7A_ASSOCIATIVITY_16WAY
	bool "16-Way Associativity"

endchoice # L2 Cache Associativity

choice
	prompt "L2 Cache Way Size"
	default ARMV7A_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 ARMV7A_WAYSIZE_16KB
	bool "16 KiB"

config ARMV7A_WAYSIZE_32KB
	bool "32 KiB"

config ARMV7A_WAYSIZE_64KB
	bool "64 KiB"

config ARMV7A_WAYSIZE_128KB
	bool "128 KiB"

config ARMV7A_WAYSIZE_256KB
	bool "256 KiB"

config ARMV7A_WAYSIZE_512KB
	bool "512 KiB"

endchoice # L2 Cache Associativity
endif # ARCH_L2CACHE
endmenu # L2 Cache Configuration
endif # ARMV7A_HAVE_L2CC

choice
	prompt "Toolchain Selection"
	default ARMV7A_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS
	default ARMV7A_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS

config ARMV7A_TOOLCHAIN_BUILDROOT
	bool "Buildroot (Cygwin or Linux)"
	depends on !WINDOWS_NATIVE

config ARMV7A_TOOLCHAIN_CODESOURCERYL
	bool "CodeSourcery GNU toolchain under Linux"
	depends on HOST_LINUX
	---help---
		For use with the GNU toolchain built with the NuttX buildroot package.
		This tools may be arm-nuttx-eabi- or, if ARMV7A_OABI_TOOLCHAIN is set,
		arm-nuttx-elf-.

config ARMV7A_TOOLCHAIN_CODESOURCERYW
	bool "CodeSourcery GNU toolchain under Windows"
	depends on HOST_WINDOWS

config ARMV7A_TOOLCHAIN_DEVKITARM
	bool "devkitARM GNU toolchain"
	depends on HOST_WINDOWS

config ARMV7A_TOOLCHAIN_GNU_EABIL
	bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)"
	---help---
		This option should work for any modern GNU toolchain (GCC 4.5 or newer)
		configured for arm-none-eabi-.

config ARMV7A_TOOLCHAIN_GNU_EABIW
	bool "Generic GNU EABI toolchain under Windows"
	depends on HOST_WINDOWS
	---help---
		This option should work for any modern GNU toolchain (GCC 4.5 or newer)
		configured for arm-none-eabi-.

config ARMV7A_TOOLCHAIN_GNU_OABI
	bool "Generic GNU OABI toolchain"
	---help---
		This option should work for any GNU toolchain configured for arm-elf-.

endchoice # ARMV7A_HAVE_L2CC

config ARMV7A_OABI_TOOLCHAIN
	bool "OABI (vs EABI)"
	default n
	depends on ARMV7A_TOOLCHAIN_BUILDROOT
	---help---
		Most of the older buildroot toolchains are OABI and are named
		arm-nuttx-elf- vs. arm-nuttx-eabi-

config ARMV7A_DECODEFIQ
	bool "FIQ Handler"
	default n
	---help---
		Select this option if your platform supports the function
		arm_decodefiq().  This is used primarily to support secure TrustZone
		interrupts received on the FIQ vector.