Loading...
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 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 | # Kconfig - x86 general configuration options # # Copyright (c) 2014-2015 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. # menu "x86 architecture" depends on X86 config ARCH default "x86" config X86_IAMCU bool default n prompt "IAMCU calling convention" help The IAMCU calling convention changes the X86 C calling convention to pass some arguments via registers allowing for code size and performance improvements. Great care needs to be taken if you have assembly code that will be called from C or C code called from assembly code, the assembly code will need to be updated to conform to the new calling convention. If in doubt say N config ARCH_DEFCONFIG string default "arch/x86/defconfig" source "arch/x86/core/Kconfig" choice prompt "SoC Selection" source "arch/x86/soc/*/Kconfig.soc" endchoice choice prompt "Intel Processor" default CPU_MINUTEIA config CPU_ATOM bool "Atom" select CMOV select CPU_MIGHT_SUPPORT_CLFLUSH if CACHE_FLUSHING help This option signifies the use of a CPU from the Atom family. config CPU_MINUTEIA bool "Minute IA" select CPU_MIGHT_SUPPORT_CLFLUSH if CACHE_FLUSHING help This option signifies the use of a CPU from the Minute IA family. endchoice menu "Processor Capabilities" menu "Floating Point Options" config FLOAT bool prompt "Floating point registers" default n help This option allows tasks and fibers to use the floating point registers. By default, only a single task or fiber may use the registers, and only the x87 FPU/MMX registers may be used. Disabling this option means that any task or fiber that uses a floating point register will get a fatal exception. config FP_SHARING bool prompt "Floating point register sharing" depends on FLOAT default n help This option allows multiple tasks and fibers to use the floating point registers. Any task that uses the floating point registers must provide stack space where the kernel can save these registers during context switches; a task that uses only the x87 FPU/MMX registers must provide 108 bytes of added stack space, while a task the uses the SSE registers must provide 464 bytes of added stack space. config SSE bool prompt "SSE registers" depends on FLOAT default n help This option enables the use of SSE registers by tasks and fibers. config SSE_FP_MATH bool prompt "Compiler-generated SSEx instructions" depends on SSE default n help This option allows the compiler to generate SSEx instructions for performing floating point math. This can greatly improve performance when exactly the same operations are to be performed on multiple data objects; however, it can also significantly reduce performance when pre-emptive task switches occur because of the larger register set that must be saved and restored. Disabling this option means that the compiler utilizes only the x87 instruction set for floating point operations. choice prompt "Reboot implementation" depends on REBOOT default REBOOT_RST_CNT config REBOOT_RST_CNT bool prompt "Reboot via RST_CNT register" help Reboot via the RST_CNT register, going back to BIOS. endchoice endmenu config ISA_IA32 bool default y help This option signifies the use of a CPU based on the Intel IA-32 instruction set architecture. config IA32_LEGACY_IO_PORTS bool prompt "Support IA32 legacy IO ports" default n depends on ISA_IA32 help This option enables IA32 legacy IO ports. Note these are much slower than memory access, so they should be used in last resort. config CMOV def_bool n help This option signifies the use of an Intel CPU that supports the CMOV instruction. config CACHE_LINE_SIZE_DETECT bool prompt "Detect cache line size at runtime" default y help This option enables querying the CPUID register for finding the cache line size at the expense of taking more memory and code and a slightly increased boot time. If the CPU's cache line size is known in advance, disable this option and manually enter the value for CACHE_LINE_SIZE. config CACHE_LINE_SIZE int prompt "Cache line size" if !CACHE_LINE_SIZE_DETECT default 0 if CACHE_LINE_SIZE_DETECT default 64 if CPU_ATOM default 0 help Size in bytes of a CPU cache line. Detect automatically at runtime by selecting CACHE_LINE_SIZE_DETECT. config CPU_MIGHT_SUPPORT_CLFLUSH bool depends on CACHE_FLUSHING default n help If a platform uses a processor that possibly implements CLFLUSH, change the default in that platform's config file. config CLFLUSH_INSTRUCTION_SUPPORTED bool prompt "CLFLUSH instruction supported" if CPU_MIGHT_SUPPORT_CLFLUSH depends on CPU_MIGHT_SUPPORT_CLFLUSH && !CLFLUSH_DETECT default n help An implementation of sys_cache_flush() that uses CLFLUSH is made available, instead of the one using WBINVD. This option should only be enabled if it is known in advance that the CPU supports the CLFLUSH instruction. It disables runtime detection of CLFLUSH support thereby reducing both memory footprint and boot time. config CLFLUSH_DETECT bool prompt "Detect support of CLFLUSH instruction at runtime" depends on CPU_MIGHT_SUPPORT_CLFLUSH default y help This option should be enabled if it is not known in advance whether the CPU supports the CLFLUSH instruction or not. The CPU is queried at boot time to determine which of the multiple implementations of sys_cache_flush() linked into the image is the correct one to use. If the CPU's support (or lack thereof) of CLFLUSH is known in advance, then disable this option and set CLFLUSH_INSTRUCTION_SUPPORTED as appropriate. config ARCH_CACHE_FLUSH_DETECT bool default y depends on CLFLUSH_DETECT config CACHE_FLUSHING bool default n prompt "Enable cache flushing mechanism" help This links in the sys_cache_flush() function. A mechanism for flushing the cache must be selected as well. By default, that mechanism is discovered at runtime. endmenu menu "Platform Capabilities" config ADVANCED_IDLE_SUPPORTED bool "Advanced Idle Supported" default n help This option signifies that the target supports the ADVANCED_IDLE configuration option. config NUM_DYNAMIC_STUBS int "Number of dynamic int stubs" default 0 help This option specifies the number of interrupt handlers that can be installed dynamically using irq_connect_dynamic(). config NUM_DYNAMIC_EXC_STUBS int "Number of dynamic exception stubs" default 0 help This option specifies the maximum number of dynamically allocated exception stubs that are to be used with exceptions that push an error code onto the stack. config NUM_DYNAMIC_EXC_NOERR_STUBS int "Number of dynamic no-error exception stubs" default 0 help This option specifies the maximum number of dynamically allocated exception stubs that are to be used with exceptions that do not push an error code onto the stack. config PIC_DISABLE bool "Disable PIC" default n help This option disables all interrupts on the PIC 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 IRQ_OFFLOAD_VECTOR int "IDT vector to use for IRQ offload" default 63 if MVIC default 32 range 32 255 depends on IRQ_OFFLOAD help Specify the IDT vector to use for the IRQ offload interrupt handler. The default should be fine for most arches, but on systems like MVIC where there is a fixed IRQ-to-vector mapping another value may be needed to avoid collision. config XIP default n endmenu source "arch/x86/soc/*/Kconfig" endmenu |