Re: x86/microcode: intel: correctly handle negative revisions

From: Burt Triplett
Date: Fri Mar 25 2011 - 03:14:38 EST


On 3/24/2011 7:09 PM, Henrique de Moraes Holschuh wrote:
> As per the Intel SDM vol 3A, microcode revisions are signed 32-bit
> numbers. The code was handling them as unsigned int in some places and as
> an int in other places.
>
> As per the clarification posted by Burt Triplett from the Intel BITS
> project, negative microcode revisions are used internally at Intel and
> should always get loaded. Also, they should not be overriden unless we
> can somehow differentiate "automated" loading from "forced" loading (which
> we cannot at this time). Burt says the SDM will be updated with this
> information eventually.
>
> The code should:
>
> 1. Ignore attempts to load a zero-revision microcode (that value is
> reserved for the CPU to signal that it is running with the factory
> microcode, and must not be present in a normal microcode update);
>
> 2. Always load negative revision microcodes, to help Intel's engineers;
>
> 3. Avoid upgrading from a BIOS-loaded negative revision microcode to
> a normal microcode, to not get in the way of Intel's engineers.
>
> 4. Upgrade from revision 0 (no updates loaded in CPU) to any revision.
>
> It was already doing some of that, but I don't feel like trying to track
> down exactly how the old code with its mix of signed/unsigned handling of
> revisions would behave in each of the above cases.
>
> Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx>
> LKML-Reference: <4D87E2CD.6020306@xxxxxxxxxxxxxxx>
> Cc: Tigran Aivazian <tigran@xxxxxxxxxxxxxxxxxxxx>
> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> Cc: Burt Triplett <burt@xxxxxxxxxxxxxxx>

Reviewed-by: Burt Triplett <burt@xxxxxxxxxxxxxxx>

Thanks,
Burt Triplett
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/