Subject: Re: microcode driver for ia-32
To: None <tech-kern@NetBSD.org>
From: phlox <phlox-netbsd-kern@fnop.net>
List: tech-kern
Date: 08/09/2004 14:56:22
--+KJYzRxRHjYqLGl5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 2004.08.09 00:04:22 +0000, Martin Husemann wrote:
> Could you give a management summary for non IA-32 aware people like me?
> What kind of "microcode update" will this driver perform? Are there any
> that I should care about downloadable somewhere? They don't come as a
> standalone binary but need a running OS?
I'm going to give you some snippets of the IA-32 Arch. Manual Volume III (i=
t's
fairly well explained there):

"The Pentium 4, Intel Xeon, and P6 family processors have the capability to=
=20
correct errata by loading an Intel-supplied data block into the processor. =
The
data block is called a microcode update."
(Imagine this was possible in the first Pentiums, you wouldn't require the
Operating System to make those tricks due to the f00f bug:=20
http://www.x86.org/errata/dec97/f00fbug.htm)

"A microcode update consists of an Intel-supplied binary that contains a
descriptive header and data. No executable code resides within the update.
Each microcode update is tailored for a particular stepping of a Pentium 4,
Intel Xeon, or P6 family processor. A mismatch between the stepping of the
processor and the update results in a failure to load."

Intel supplies the microcode file to BIOS writters and to Tigran Aivazian,=
=20
who implemented the device driver in the Linux kernel.
If you want to check out the files go to:=20
http://www.urbanmyth.org/microcode/ucode/
This is the header format (2048 bytes):

  field           offset     lenght

header version:     0           4
update revision:    4           4
date:               8           4
processor:         12           4
checksum:          16           4
loader revision:   20           4
processor flags:   24           4
reserved:          28          20
update data:       48        2000

"The effects of a loaded update are cleared from the processor upon a hard=
=20
reset."=20
"A multiprocessor (MP) system requires loading each processor with update d=
ata
appropriate for its CPUID and platform ID bits."

Btw, some BIOS already do the microcode update upon boot up, so some users =
won't
be interested in this.

Regards.


--=20
  "Simplicity is the ultimate=20
    sophistication."=20
    -- Leonardo da Vinci     =20


--+KJYzRxRHjYqLGl5
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (NetBSD)

iD8DBQFBF4KGE4RCxrBa3LcRAg2xAJ9UGZA3AOoBwciO4m1Jx/wjocAAxgCfal0J
u1R7yS0C+IvBwkKoe7A4BWs=
=XkVn
-----END PGP SIGNATURE-----

--+KJYzRxRHjYqLGl5--