Re: Fix built-in early-load Intel microcode alignment

From: Luis Chamberlain
Date: Wed Jan 15 2020 - 13:58:20 EST


On Wed, Jan 15, 2020 at 08:46:04PM +0200, Jari Ruusu wrote:
> On 1/15/20, Luis Chamberlain <mcgrof@xxxxxxxxxx> wrote:
> > On Mon, Jan 13, 2020 at 09:58:25PM +0200, Jari Ruusu wrote:
> >> Before that 16-byte alignment patch was applied, my only one
> >> microcode built-in BLOB was "accidentally" 16-byte aligned.
> >
> > How did it accidentially get 16-byte aligned?
>
> Old code aligned it to 8-bytes.
> There is 50/50-chance of it also being 16-byte aligned.

But *how? Why is there a 50/50 chance of it being aligned to
16 bytes if 8 bytes are currently specified?

> So it ended up being both 8-byte and 16-byte aligned.

What do you mean both? How can it be aligned to both?

> > Also, how do you *know* something is broken right now?
>
> I haven't spotted brokenness in Linux microcode loader other
> than that small alignment issue.
>
> However, I can confirm that there are 2 microcode updates newer
> than what my laptop computer's latest BIOS includes. Both newer
> ones (20191115 and 20191112) are unstable on my laptop computer
> i5-7200U (fam 6 model 142 step 9 pf 0x80). Hard lockups with both
> of them. Back to BIOS microcode for now.

I was more interested in how you are *certain*, other than manualcode
inspection, and that a spec indicates we should use 16 bytes for Intel
microcode -- that the 8 byte alignment *does* not allow users to
currently update their Intel CPU microcode for built-in firmware.

>From what I gather so far we have no case yet reported where we know for
sure it fails right now with the 8 byte alignment on 64-bit.

This information would just be useful for the commit log.

Luis