Re: [PATCH] arch/x86/kernel/cpu/microcode/intel: don't store initrd's start

From: Nicolai Stange
Date: Mon Jul 25 2016 - 10:17:18 EST


Borislav Petkov <bp@xxxxxxxxx> writes:

> On Mon, Jul 25, 2016 at 02:59:43PM +0200, Nicolai Stange wrote:
>> Applied on top of next-20160722 and it boots
>
> Does it apply the microcode too? Or your box doesn't need microcode?

[ 0.000000] microcode: microcode updated early to revision 0x20, date = 2016-03-16
[ 2.929972] microcode: sig=0x306c3, pf=0x10, revision=0x20

Is this a "yes"?

/proc/cpuinfo shows a "microcode" value of 0x20 for all logical cores at
least.

>> Doesn't this break the builtin-ucode case (!blobs.valid) where
>> blobs.start is supposed to be zero?
>
> Good point.
>
> Well, it shouldn't because in the builtin case start should simply
> contain the ASLR offset the physmem mapping was moved to and this offset
> is exactly where the builtin images should be... Let me poke at it to
> see whether I'm seeing things correctly.

Hmm. From what I've seen, I've concluded that the builtin images'
addresses are __va ones (assuming x86_64). I might be wrong though.

Another point: does PAGE_OFFSET_BASE exist on ARCH=i386?

And a third one, more of a sidenote: I've seen a comment somewhere that
blobs.start is set to 0 in the builtin case. However, I was unable to
find this initialization in the original code. This very last point
would have been fixed by my patch as a sideeffect. I just forgot about
this remark.

Thanks,

Nicolai