Denis Carikli (GNUtoo@no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1945
-gerrit
commit 340eb10c1e6dd8664d71dc465a2f0df431007734 Author: Denis 'GNUtoo' Carikli GNUtoo@no-log.org Date: Thu Nov 29 22:25:35 2012 +0100
Add AMD microcode updating filter.
0x010000b7 is what corresponds to the microcode patch level of my CPU.
Change-Id: If6d72bfdbd9b9f78cd5774db82c401b638f35046 Signed-off-by: Denis 'GNUtoo' Carikli GNUtoo@no-log.org --- SerialICE/simba/cpu.lua | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
diff --git a/SerialICE/simba/cpu.lua b/SerialICE/simba/cpu.lua index be04825..40f21a6 100644 --- a/SerialICE/simba/cpu.lua +++ b/SerialICE/simba/cpu.lua @@ -129,3 +129,31 @@ filter_intel_microcode = { pre = intel_microcode_pre, post = intel_microcode_post, } + +-- AMD CPU microcode update +function amd_microcode_pre(f, action) + if action.rin.ecx == 0xc0010020 then + --action.dropped = true + --action.rout.edx = 0 + --action.rout.eax = 0xffff0000 + return drop_action(f, action) + end + return skip_filter(f, action) +end + +-- AMD CPU microcode revision check +-- Fakes microcode revision. +function amd_microcode_post(f, action) + if action.rin.ecx == 0x8b then + action.rout.eax = 0x010000b7 + return fake_action(f, action, 0) + end + return skip_filter(f, action) +end + +filter_amd_microcode = { + id = -1, + name = "Microcode Update", + pre = amd_microcode_pre, + post = amd_microcode_post, +}