Re: AMD microcode loading broken on 32 bit

From: Boris Ostrovsky
Date: Thu Jan 23 2014 - 14:09:16 EST


On 01/23/2014 01:54 PM, Gene Heskett wrote:
On Thursday 23 January 2014, Boris Ostrovsky wrote:
On 01/21/2014 01:25 PM, Borislav Petkov wrote:
On Tue, Jan 21, 2014 at 12:55:53PM -0500, Boris Ostrovsky wrote:
cat $(AMD_UCODE_PATH)/* >

ucode_initrd/kernel/x86/microcode/AuthenticAMD.bin

(cd ucode_initrd;find . | cpio -o -H newc >

../$(DISTDIR)/common/ucode_initrd.cpio)

...
cat $(DISTDIR)/common/ucode_initrd.cpio \
$(DISTDIR)/common/_initramfs.cpio.gz > \
$(DISTDIR)/common/initramfs.cpio.gz

and as I just discovered, with a little twist: apparently
AMD_UCODE_PATH points to Intel microcode.
LOL!

@hpa: in case you were wondering whether Intel ucode works on AMD - it
doesn't! :-)

So we clearly screwed up on our end but I'd think that we shouldn't
crash when this happens.
Yes, we shouldn't. I'll try to reproduce it here.
So I tried this on a "good" system and I am pretty sure this is broken.
I don't
have any microcode in initrd and I am still dying in
load_microcode_amd().
You can find the code on AMD's web site if you look carefully, or at least
I was able to some years ago when I built this box. There s/b an installer
that lives in /etc/init.d, and the code itself normally lives in the
/lib/firmware/amd-ucode/ directory.

If its working correctly you should see something resembling this in your
dmsg with:
gene@coyote$ grep microcode /var/log/dmesg
[ 22.572212] microcode: CPU0: patch_level=0x01000065
[ 22.573242] microcode: CPU0: new patch_level=0x01000083
[ 22.573256] microcode: CPU1: patch_level=0x01000065
[ 22.573263] microcode: CPU1: new patch_level=0x01000083
[ 22.573273] microcode: CPU2: patch_level=0x01000065
[ 22.573281] microcode: CPU2: new patch_level=0x01000083
[ 22.573293] microcode: CPU3: patch_level=0x01000065
[ 22.573301] microcode: CPU3: new patch_level=0x01000083
[ 22.573377] microcode: Microcode Update Driver: v2.00
<tigran@xxxxxxxxxxxxxxxxxxxx>, Peter Oruba

That was from a bootup to 3.12.6, 32 bit PAE, on a quad core phenom.

Right. But the (suspected) regression is from this Monday's merge
of early microcode loading code.

-boris

--
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/