blob: 9d268e45b5032b22f51dcb93419051889865a3b1 [file] [log] [blame]
Stefan Reinauer9fe20cb2012-12-07 17:18:43 -08001# Warning: This file is included whether or not the if is here.
2# The if controls how the evaluation occurs.
3# (See also src/Kconfig)
4if ARCH_ARMV7
5
Hung-Te Lin7635a602013-02-12 00:07:38 +08006source src/cpu/armltd/Kconfig
Stefan Reinauer9fe20cb2012-12-07 17:18:43 -08007source src/cpu/samsung/Kconfig
Gabe Black3c7e9392013-05-26 07:15:57 -07008source src/cpu/ti/Kconfig
Stefan Reinauer9fe20cb2012-12-07 17:18:43 -08009
10endif # ARCH_ARM
11
Stefan Reinauer8aedcbc2010-12-16 23:37:17 +000012if ARCH_X86
13
Ronald G. Minnich5f6572e2009-08-12 15:39:38 +000014source src/cpu/amd/Kconfig
Andrew Wu52e665b2013-06-19 18:55:08 +080015source src/cpu/dmp/Kconfig
Patrick Georgi0588d192009-08-12 15:00:51 +000016source src/cpu/intel/Kconfig
17source src/cpu/via/Kconfig
Gerd Hoffmanncbf30732013-05-31 09:23:26 +020018source src/cpu/qemu-x86/Kconfig
Patrick Georgi0588d192009-08-12 15:00:51 +000019source src/cpu/x86/Kconfig
Patrick Georgi0588d192009-08-12 15:00:51 +000020
Stefan Reinauer704b5962010-08-30 17:53:13 +000021config CACHE_AS_RAM
Patrick Georgi39ec29c2009-08-27 12:10:50 +000022 bool
Stefan Reinauerd2f45c62013-06-19 13:42:00 -070023 select EARLY_CONSOLE
Stefan Reinauer314e5512010-04-09 20:36:29 +000024 default !ROMCC
Patrick Georgi39ec29c2009-08-27 12:10:50 +000025
Patrick Georgi0588d192009-08-12 15:00:51 +000026config DCACHE_RAM_BASE
27 hex
Patrick Georgi0588d192009-08-12 15:00:51 +000028
29config DCACHE_RAM_SIZE
30 hex
Patrick Georgi0588d192009-08-12 15:00:51 +000031
Stefan Reinauer2c41c402012-05-01 11:13:52 -070032# FIXME MAX_PHYSICAL_CPUS should move to AMD specific code, or better
33# yet be dropped completely.
Patrick Georgi0e9a9252009-10-06 20:48:07 +000034config MAX_PHYSICAL_CPUS
35 int
Stefan Reinauerd81744e2012-06-25 14:12:58 -070036 depends on CPU_AMD_MODEL_10XXX || CPU_AMD_MODEL_FXX || CPU_AMD_AGESA
Patrick Georgi0e9a9252009-10-06 20:48:07 +000037 default 1
38
Patrick Georgi0588d192009-08-12 15:00:51 +000039config SMP
40 bool
Myles Watson45bb25f2009-09-22 18:49:08 +000041 default y if MAX_CPUS != 1
Patrick Georgi892b0912009-09-24 09:03:06 +000042 default n
Uwe Hermanna29ad5c2009-10-18 18:35:50 +000043 help
44 This option is used to enable certain functions to make coreboot
45 work correctly on symmetric multi processor (SMP) systems.
Ronald G. Minnich149d6752009-10-01 23:22:50 +000046
Kyösti Mälkki7dfe32c2012-02-14 10:39:17 +020047config AP_SIPI_VECTOR
48 hex
49 default 0xfffff000
50 help
51 This must equal address of ap_sipi_vector from bootblock build.
Patrick Georgi819c7d42012-03-31 13:08:12 +020052
Ronald G. Minnich149d6752009-10-01 23:22:50 +000053config MMX
54 bool
Stefan Reinauera7acc512010-02-25 13:40:49 +000055 help
56 Select MMX in your socket or model Kconfig if your CPU has MMX
57 streaming SIMD instructions. ROMCC can build more efficient
58 code if it can spill to MMX registers.
Ronald G. Minnich149d6752009-10-01 23:22:50 +000059
60config SSE
61 bool
Stefan Reinauera7acc512010-02-25 13:40:49 +000062 help
63 Select SSE in your socket or model Kconfig if your CPU has SSE
64 streaming SIMD instructions. ROMCC can build more efficient
65 code if it can spill to SSE (aka XMM) registers.
66
67config SSE2
68 bool
Myles Watson34261952010-03-19 02:33:40 +000069 default n
Stefan Reinauera7acc512010-02-25 13:40:49 +000070 help
71 Select SSE2 in your socket or model Kconfig if your CPU has SSE2
72 streaming SIMD instructions. Some parts of coreboot can be built
73 with more efficient code if SSE2 instructions are available.
Patrick Georgi0e9a9252009-10-06 20:48:07 +000074
Stefan Reinauer8aedcbc2010-12-16 23:37:17 +000075endif # ARCH_X86
Alexandru Gagniuc00b579a2012-07-20 00:11:21 -050076
77config CPU_MICROCODE_IN_CBFS
78 bool
79 default n
80
81choice
Stefan Reinauer9c29cfa2013-02-27 20:24:11 +010082 prompt "Include CPU microcode in CBFS" if ARCH_X86
Alexandru Gagniuc00b579a2012-07-20 00:11:21 -050083 default CPU_MICROCODE_CBFS_GENERATE if CPU_MICROCODE_IN_CBFS
84 default CPU_MICROCODE_CBFS_NONE if !CPU_MICROCODE_IN_CBFS
85
86config CPU_MICROCODE_CBFS_GENERATE
87 bool "Generate from tree"
88 help
89 Select this option if you want microcode updates to be assembled when
90 building coreboot and included in the final image as a separate CBFS
91 file. Microcode will not be hard-coded into ramstage.
92
Stefan Tauner0ce2b432013-04-01 13:45:44 +020093 The microcode file may be removed from the ROM image at a later
Alexandru Gagniuc00b579a2012-07-20 00:11:21 -050094 time with cbfstool, if desired.
95
96 If unsure, select this option.
97
98config CPU_MICROCODE_CBFS_EXTERNAL
99 bool "Include external microcode file"
100 help
101 Select this option if you want to include an external file containing
102 the CPU microcode. This will be included as a separate file in CBFS.
103 A word of caution: only select this option if you are sure the
104 microcode that you have is newer than the microcode shipping with
105 coreboot.
106
Stefan Tauner0ce2b432013-04-01 13:45:44 +0200107 The microcode file may be removed from the ROM image at a later
Alexandru Gagniuc00b579a2012-07-20 00:11:21 -0500108 time with cbfstool, if desired.
109
110 If unsure, select "Generate from tree"
111
Alexandru Gagniuc00b579a2012-07-20 00:11:21 -0500112config CPU_MICROCODE_CBFS_NONE
113 bool "Do not include microcode updates"
114 help
115 Select this option if you do not want CPU microcode included in CBFS.
116 Note that for some CPUs, the microcode is hard-coded into the source
117 tree and is not loaded from CBFS. In this case, microcode will still
118 be updated. There is a push to move all microcode to CBFS, but this
119 change is not implemented for all CPUs.
120
121 This option currently applies to:
122 - Intel SandyBridge/IvyBridge
123 - VIA Nano
124
125 Microcode may be added to the ROM image at a later time with cbfstool,
126 if desired.
127
128 If unsure, select "Generate from tree"
129
130 The GOOD:
131 Microcode updates intend to solve issues that have been discovered
132 after CPU production. The expected effect is that systems work as
133 intended with the updated microcode, but we have also seen cases where
134 issues were solved by not applying microcode updates.
135
136 The BAD:
137 Note that some operating system include these same microcode patches,
138 so you may need to also disable microcode updates in your operating
139 system for this option to have an effect.
140
141 The UGLY:
142 A word of CAUTION: some CPUs depend on microcode updates to function
143 correctly. Not updating the microcode may leave the CPU operating at
144 less than optimal performance, or may cause outright hangups.
145 There are CPUs where coreboot cannot properly initialize the CPU
146 without microcode updates
147 For example, if running with the factory microcode, some Intel
148 SandyBridge CPUs may hang when enabling CAR, or some VIA Nano CPUs
149 will hang when changing the frequency.
150
151 Make sure you have a way of flashing the ROM externally before
152 selecting this option.
153
154endchoice
Jens Rottmann686dc0d2013-02-18 17:26:01 +0100155
156config CPU_MICROCODE_FILE
157 string "Path and filename of CPU microcode"
158 depends on CPU_MICROCODE_CBFS_EXTERNAL
159 default "cpu_microcode.bin"
160 help
161 The path and filename of the file containing the CPU microcode.