Make AMD Fam10h CPU microcode updates optional in Expert mode
Signed-off-by: Xavi Drudis Ferran <xdrudis@tinet.cat> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6385 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
837403dddf
commit
4c28a6f018
|
@ -50,3 +50,35 @@ config SET_FIDVID_CORE_RANGE
|
|||
|
||||
endif
|
||||
endif
|
||||
|
||||
config UPDATE_CPU_MICROCODE
|
||||
bool
|
||||
default y
|
||||
|
||||
config UPDATE_CPU_MICROCODE
|
||||
bool "Update CPU microcode"
|
||||
default y
|
||||
depends on EXPERT && CPU_AMD_MODEL_10XXX
|
||||
help
|
||||
Select this to apply patches to the CPU microcode provided by
|
||||
AMD without source, and distributed with coreboot, to address
|
||||
issues in the CPU post production.
|
||||
|
||||
Microcode updates distributed with coreboot are not necessarily
|
||||
the latest version available from AMD. Updates are only applied
|
||||
if they are newer than the microcode already in your CPU.
|
||||
|
||||
Unselect this to let Fam10h CPUs run with microcode as shipped
|
||||
from factory. No binary microcode patches will be included in the
|
||||
coreboot image in that case, which can help with creating an image
|
||||
for which complete source code is available, which in turn might
|
||||
simplify license compliance.
|
||||
|
||||
Microcode updates intend to solve issues that have been discovered
|
||||
after CPU production. The common case is that systems work as
|
||||
intended with updated microcode, but we have also seen cases where
|
||||
issues were solved by not applying the microcode updates.
|
||||
|
||||
Note that some operating system include these same microcode
|
||||
patches, so you may need to also disable microcode updates in
|
||||
your operating system in order for this option to matter.
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
# no conditionals here. If you include this file from a socket, then you get all the binaries.
|
||||
driver-y += model_10xxx_init.c
|
||||
ramstage-y += update_microcode.c
|
||||
ramstage-$(CONFIG_UPDATE_CPU_MICROCODE) += update_microcode.c
|
||||
ramstage-y += apic_timer.c
|
||||
ramstage-y += processor_name.c
|
||||
|
|
|
@ -325,7 +325,9 @@ static u32 init_cpus(u32 cpu_init_detectedx)
|
|||
* This happens after HTinit.
|
||||
* The BSP runs this code in it's own path.
|
||||
*/
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(cpuid_eax(1));
|
||||
#endif
|
||||
cpuSetAMDMSR();
|
||||
|
||||
#if CONFIG_SET_FIDVID
|
||||
|
|
|
@ -66,7 +66,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
|
||||
|
@ -132,7 +136,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -66,7 +66,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
#include "southbridge/amd/sb700/early_setup.c"
|
||||
|
@ -125,7 +129,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -87,7 +87,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
|
||||
|
@ -227,7 +231,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -65,7 +65,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
#include <spd.h>
|
||||
|
@ -124,7 +128,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -65,7 +65,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
#include <spd.h>
|
||||
|
@ -125,7 +129,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -65,7 +65,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
#include <spd.h>
|
||||
|
@ -125,7 +129,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -61,7 +61,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
#include <spd.h>
|
||||
|
@ -121,7 +125,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -65,7 +65,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
#include <spd.h>
|
||||
|
@ -123,7 +127,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -82,7 +82,11 @@ static inline int spd_read_byte(unsigned device, unsigned address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
|
||||
|
@ -136,7 +140,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -67,7 +67,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
#include <spd.h>
|
||||
|
@ -126,7 +130,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -72,7 +72,11 @@ static int spd_read_byte(u32 device, u32 address)
|
|||
#include "cpu/amd/quadcore/quadcore.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
#include <spd.h>
|
||||
|
@ -131,7 +135,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -76,7 +76,11 @@ static inline int spd_read_byte(unsigned device, unsigned address)
|
|||
#include "southbridge/nvidia/mcp55/early_setup_car.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
|
||||
|
@ -153,7 +157,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -68,7 +68,11 @@ static inline int spd_read_byte(unsigned device, unsigned address)
|
|||
#include "southbridge/nvidia/mcp55/early_setup_car.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
|
||||
|
@ -145,7 +149,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -74,7 +74,11 @@ static inline int spd_read_byte(unsigned device, unsigned address)
|
|||
#include "southbridge/nvidia/mcp55/early_setup_car.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
|
||||
|
@ -197,7 +201,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
|
@ -77,7 +77,11 @@ static inline int spd_read_byte(unsigned device, unsigned address)
|
|||
#include "southbridge/nvidia/mcp55/early_setup_car.c"
|
||||
#include "cpu/amd/car/post_cache_as_ram.c"
|
||||
#include "cpu/amd/microcode/microcode.c"
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
#include "cpu/amd/model_10xxx/update_microcode.c"
|
||||
#endif
|
||||
|
||||
#include "cpu/amd/model_10xxx/init_cpus.c"
|
||||
#include "northbridge/amd/amdfam10/early_ht.c"
|
||||
|
||||
|
@ -153,7 +157,9 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
/* Setup sysinfo defaults */
|
||||
set_sysinfo_in_ram(0);
|
||||
|
||||
#if CONFIG_UPDATE_CPU_MICROCODE
|
||||
update_microcode(val);
|
||||
#endif
|
||||
post_code(0x33);
|
||||
|
||||
cpuSetAMDMSR();
|
||||
|
|
Loading…
Reference in New Issue