<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7652.24">
<TITLE>Intel microcode revision code</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hello,</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Yesterday I wrote some code for the Syslinux boot loader that is meant to boot different images based on which revision of the CPU microcode that is currently loaded in the CPU (yes, this is a bit strange but we have a very good reason for it). I then compared my implementation with a few others an ran across yours, in </FONT><A HREF="http://www.openbios.org/viewvc/trunk/LinuxBIOSv2/src/cpu/intel/microcode/microcode.c?view=markup"><U><FONT COLOR="#0000FF" SIZE=2 FACE="Arial">http://www.openbios.org/viewvc/trunk/LinuxBIOSv2/src/cpu/intel/microcode/microcode.c?view=markup</FONT></U></A></P>

<P><FONT SIZE=2 FACE="Arial">Question to you guys: why is the first wrmsr instruction there? From my understanding, by not properly initialising ECX, EAX and EDX this will overwrite whatever is in the MSR pointed to by ECX?!</FONT></P>

<P><FONT SIZE=2 FACE="Arial">BTW I tried out your code on our target hardware (Intel Celeron M, 600 MHz) and with that first wrmsr line in place it hangs and without it, it runs just fine.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">Just wanted to let you know.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Best regards,</FONT>

<BR><FONT SIZE=2 FACE="Arial">Martin Karlsson</FONT>
</P>

</BODY>
</HTML>