[SerialICE] New patch to review for serialice: bb8620b Add AMD microcode updating filter.

Denis Carikli (GNUtoo@no-log.org) gerrit at coreboot.org
Thu Nov 29 23:31:03 CET 2012


Denis Carikli (GNUtoo at no-log.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1945

-gerrit

commit bb8620bf4279503a53cde60aefccfa4974e5c422
Author: Denis 'GNUtoo' Carikli <GNUtoo at no-log.org>
Date:   Thu Nov 29 22:25:35 2012 +0100

    Add AMD microcode updating filter.
    
    The microcode updating filter can be used this way:
    
    In your mainboard file add something like that:
      fake_microcode_value = 0x010000b7
    
      function do_mainboard_setup()
        [...]
        enable_hook(cpumsr_hooks, filter_amd_microcode)
      end
    
    0x010000b7 is what corresponds to the microcode patch level.
    
    Change-Id: If6d72bfdbd9b9f78cd5774db82c401b638f35046
    Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo at 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..43a1e42 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 = fake_microcode_value
+                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,
+}



More information about the SerialICE mailing list