Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 722768 - sys-firmware/intel-microcode-20200508_p20200508: cpu 0x000406e3 (06-4e-03) doesn't boot with MCU 2020-01-09, rev 0x00da
Summary: sys-firmware/intel-microcode-20200508_p20200508: cpu 0x000406e3 (06-4e-03) do...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-05-12 22:29 UTC by Heiko
Modified: 2020-06-14 22:12 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Heiko 2020-05-12 22:29:20 UTC
Hi, i have an notebook with intel core-m7 cpu 

https://ark.intel.com/content/www/us/en/ark/products/88199/intel-core-m7-6y75-processor-4m-cache-up-to-3-10-ghz.html

It suddenly stopped booting when i updated the kernel which made little sense given the circumstances. i tracked the issue down to the built-in intel cpu microcode, in my case

CONFIG_EXTRA_FIRMWARE="intel-ucode/06-4e-03"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

Apparently, between my kernel update schedule, the file had changed on my filesystem, and ever since even older kernels wouldnt boot anymore when built with the microcode binary included.

I checked the file from my file system against 
https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/master/intel-ucode/06-4e-03

and noticed they differ. 

[chef@ux305 ~]$ iucode_tool -l /tmp/06-4e-03
microcode bundle 1: /tmp/06-4e-03
selected microcodes:
  001/001: sig 0x000406e3, pf_mask 0xc0, 2019-10-03, rev 0x00d6, size 101376
[chef@ux305 ~]$ iucode_tool -l /lib/firmware/intel-ucode/06-4e-03
microcode bundle 1: /lib/firmware/intel-ucode/06-4e-03
selected microcodes:
  001/001: sig 0x000406e3, pf_mask 0xc0, 2020-01-09, rev 0x00da, size 104448


Without further investigation i rebuilt my kernel pointing to the file from github instead from the intel-microcode package and it sure enough boots again.

Maybe i just did something wrong, but i have been using the intel-microcode package in this way for something like 3 years and this one really tripped me bad.

I tried booting with efi stub directly or via refind, both wouldnt work. A boot with kexec worked, though.
Comment 1 Thomas Deutschmann (RETIRED) gentoo-dev 2020-05-12 23:53:35 UTC
It's not clear from the diff what's the working file for you.
I assume your system has problems with *latest* MCU 2020-01-09, rev 0x00da.

Is that correct?
Comment 2 El Goretto 2020-05-13 10:52:49 UTC
AAAAAH, I've been banging my head on my desk a few dozens of times trying to spot what was wrong with this microcode which prevent my laptop to boot. It has a CPU with same signature as yours, Heiko (https://ark.intel.com/content/www/us/en/ark/products/88192/intel-core-i7-6600u-processor-4m-cache-up-to-3-40-ghz.html):
$ iucode_tool -S -l /lib/firmware/intel-ucode/*
iucode_tool: system has processor(s) with signature 0x000406e3
microcode bundle 1: /lib/firmware/intel-ucode/06-4e-01
microcode bundle 2: /lib/firmware/intel-ucode/06-4e-02
microcode bundle 3: /lib/firmware/intel-ucode/06-4e-03
microcode bundle 4: /lib/firmware/intel-ucode/06-4e-08
selected microcodes:
  001/001: sig 0x000406e1, pf_mask 0xf2, 2014-08-06, rev 0x0016, size 80896
  001/002: sig 0x000406e1, pf_mask 0x80, 2014-11-11, rev 0x0020, size 81920
  002/001: sig 0x000406e2, pf_mask 0xf2, 2014-11-05, rev 0x000a, size 79872
  002/002: sig 0x000406e2, pf_mask 0xc0, 2015-05-21, rev 0x002c, size 86016
  003/001: sig 0x000406e3, pf_mask 0xc0, 2020-01-09, rev 0x00da, size 104448
  004/001: sig 0x000406e8, pf_mask 0x80, 2016-04-14, rev 0x0026, size 94208


I'm not sure that sys-firmware/intel-microcode-20200508_p20200508 is the only version affected. MCU rev 0x00da must have been in there for a while. MCU wasn't loaded on my system before because of having USE initramfs only recently enabled (my bad) + long time since last stable sys-kernel/gentoo-sources update, which means Grub2 didn't picked intel-uc.img until a couple weeks back.

I tested loading the MCU by getting it "inside the kernel" like Heiko does instead of loading it by intel-uc.img, but same issue occurred. So I concluded the way I load the MCU is not relevant.

On a side note, I updated laptop's BIOS, and default MC is now revision=0xd6 (microcode: sig=0x406e3, pf=0x80, revision=0xd6).
Comment 3 Heiko 2020-05-13 11:56:28 UTC
Sorry for not making that clear.

>> I assume your system has problems with *latest* MCU 2020-01-09, rev 0x00da.
>> Is that correct?

Yes, that is correct.

@El Goretto: Yeah, the problems started with the intel-microcode package version released on 2020-04-29 i think. My last successful "old" kernel was built on April 1st, and i noticed the problem on May 1st for the first time.

Some more info that may or may not help:
The problematic kernel i built with revision 0x00da actually did update the processor microcode to 0x00da when booted with kexec (the only possible way i found) as per dmesg.

When i boot with my workaround obviously i'm at 0x00d6 now, and doing 
echo 1 > /sys/devices/system/cpu/microcode/reload 
after boot does nothing. The 0x00da version is still installed in /lib/firmware/intel-ucode.
Comment 4 El Goretto 2020-05-14 09:52:17 UTC
Not really helpful, but I did `echo 1 > /sys/devices/system/cpu/microcode/reload` and I got this:

microcode: updated to revision 0xda, date = 2020-01-09
x86/CPU: CPU features have changed after loading microcode, but might not take effect.
x86/CPU: Please consider either early loading through initrd/built-in or a potential BIOS update.
microcode: Reload completed, microcode revision: 0xda

Running a MC that doesn't boot may not be safe, so rebooting right now :)
Comment 5 Tommy Pettersson 2020-06-02 09:20:24 UTC
I have had this problem for a while. The boot hangs after loading the kernel, when loading /boot/intel-uc.img. I can however press 'e' in grub and edit out the intel-uc.img option to proceed with the boot, but without updated microcode. I have since replaced /boot/intel-uc.img with an older version that works.

The latest version that works for me is 20191115_p20200209.

I have tried 20191115_p20200429 and 20200508_p20200508 which both fails.

I have not tried 20200520_p20200601 yet, but will do so when I get the chance.

Vendor ID:  GenuineIntel
CPU family: 6
Model:      78
Model name: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
Comment 6 Jisarpoz88 2020-06-12 05:54:55 UTC
The bug is confirmed upstream:
https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/issues/31

I personally have been unable to boot (hangs at Loading kernel, any new kernel using the new Intel microcode version 06-4e-03)

The only kernel that runs normally is one I have from 3 months ago, with the Intel microcode blob builtin.
(revision=0xd6, date=2019-10-03, 06-4e-03).
Which is the same suggested to be used by upstream right now. 

This version needs to be reverted asap back to portage tree and the new one hard-masked until it's fixed by upstream.

Please change the status to confirmed.
Comment 7 El Goretto 2020-06-12 16:37:33 UTC
Hi,

I just installed sys-firmware/intel-microcode-20200609_p20200601 which now contains MC rev 0x00dc for "our CPUs".
Same issue than with rev 0x00da.
Comment 8 Teika kazura 2020-06-13 23:21:08 UTC
As a compromise, Debian's update excludes Skylake-U/Y's microcode. It's the best thing that one can do for now.
https://www.debian.org/security/2020/dsa-4701
Comment 9 Larry the Git Cow gentoo-dev 2020-06-14 22:12:13 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1d8ba62ab0bcbea3133864a8dfce246406f181c

commit c1d8ba62ab0bcbea3133864a8dfce246406f181c
Author:     Thomas Deutschmann <whissi@gentoo.org>
AuthorDate: 2020-06-14 22:09:40 +0000
Commit:     Thomas Deutschmann <whissi@gentoo.org>
CommitDate: 2020-06-14 22:11:50 +0000

    sys-firmware/intel-microcode: rev bump
    
    - Mask sig 0x000406e3, pf_mask 0xc0, revision=0xd6 [Link 1]
    
    - Mask sig 0x000406e3, pf_mask 0xc0, revision=0xda [Bug 722768]
    
    This will basically downgrade microcode for 0x000406e3 back to rev 0x00d6 from 2019-10-03.
    
    Link 1: https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/issues/31
    Closes: https://bugs.gentoo.org/722768
    Package-Manager: Portage-2.3.100, Repoman-2.3.22
    Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>

 sys-firmware/intel-microcode/Manifest              |   1 +
 .../intel-microcode-20200609_p20200601-r1.ebuild   | 259 +++++++++++++++++++++
 2 files changed, 260 insertions(+)