Thank you Mika! 
I will try to apply these instructions and give the return. 
Not this evening, but i mpatient . Eric 

----- Mail original -----

De: "Mika Westerberg" <mika.westerb...@intel.com> 
À: "cagole plus" <cagole.p...@laposte.net> 
Envoyé: Lundi 8 Janvier 2018 21:44:16 
Objet: [Bug 1734147] Re: corrupted BIOS due to Intel SPI bug in kernel 

This is what I typically do when I compile a custom kernel on a new 
machine. You need development tools like git, gcc, gmake etc. but I 
guess many distros have most of that stuff already installed. I did not 
try these so there might be typos and something could be missing. 

These steps should help to recover a system where there is some Linux 
distro (not necessarily Ubuntu). 

1. Get the latest kernel tree

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
$ cd linux 

2. Checkout the v4.15-rc7 branch

$ git checkout -b spi-nor-recover v4.15-rc7

3. Save and apply the patch from https://goo.gl/xUKJFR (this is the 
same patch that is linked in the bug description) 

$ git am 0001-Clear-both-SR-and-CR-explicitly-and-also-add-debug-m.patch

4. Configure the kernel so that it takes only those modules that you 
have currently loaded 

$ make localmodconfig

5. You may need to enable MTD subsystem, SPI-NOR and the intel-spi 
driver so run 

$ make nconfig

Then select following from the config

Device Drivers ---> 
<*> Memory Technology Device (MTD) support ---> 
<M> SPI-NOR device support ---> 
<M> Intel PCH/PCU SPI flash platform driver 

Then press F9 and to save .config and exit nconfig.

6. Build the kernel image and modules

$ make -j8

7. Once it is properly built without any errors you can install it 
along with the modules 

$ sudo make modules_install 
$ sudo make install 

Once the custom kernel is installed, you can reboot to this new kernel 
and it should clear the CMP bit from the serial flash status register. 
It logs something like below to your dmesg: 

[ 19.724288] intel-spi intel-spi: wrote SSFSTS_CTL=0x0045020c 
[ 19.724301] intel-spi intel-spi: wrote FDATA(0)=00 00 
[ 19.724304] intel-spi intel-spi: wrote SSFSTS_CTL=0x0041360c 
[ 19.736538] intel-spi intel-spi: wrote SSFSTS_CTL=0x0040520c 
[ 19.736542] intel-spi intel-spi: Both SR/CR cleared 

Then when you reboot, the BIOS should be able to save settings again and 
you can boot back to your distro kernel. 

After this you can remove the custom kernel from /boot and modules from 
/lib/modules. 

-- 
You received this bug notification because you are subscribed to the bug 
report. 
https://bugs.launchpad.net/bugs/1734147 

Title: 
corrupted BIOS due to Intel SPI bug in kernel 

Status in Linux: 
Unknown 
Status in linux package in Ubuntu: 
Fix Committed 
Status in linux-hwe-edge source package in Xenial: 
Fix Released 
Status in linux-oem source package in Xenial: 
Fix Released 
Status in linux source package in Artful: 
Fix Released 

Bug description: 
An update to linux kernel on Ubuntu 17.10 that enabled the Intel SPI 
drivers results in a serial flash that is read only in Intel Broadwell 
and Haswell machines with serial flashes with SPI_NOR_HAS_LOCK set. 

Symptoms: 
* BIOS settings cannot be saved 
* USB Boot impossible 
* EFI entries read-only. 

---

Fix: The issue was fixed in kernel version 4.13.0-21 by configuring 
the kernel so it is not compiled with Intel SPI support. But previous 
affected machines still suffered from a broken BIOS. 

Repair: If you still can boot into Ubuntu, you can recover your BIOS 
with the following steps: 

1. Boot into Ubuntu 
2. Download 
http://people.canonical.com/~ypwong/lp1734147/linux-image-4.15.0-041500rc6-generic_4.15.0-041500rc6.201712312330+20170103+1_amd64.deb
 
3. Install the downloaded package: 
$ sudo dpkg -i 
linux-image-4.15.0-041500rc6-generic_4.15.0-041500rc6.201712312330+20170103+1_amd64.deb
 
4. Make sure the kernel is installed without any error. Once installed, reboot. 
5. At grub, choose the newly installed kernel. You can choose the "recovery" 
mode. 
6. Reboot and go to BIOS settings to confirm your BIOS has been recovered. 
7. In case your BIOS is not recovered, reboot to the new kernel, then reboot 
*once again* to the new kernel, do not enter BIOS settings before the reboot. 
After the second reboot, check BIOS. 
8. If your BIOS issue remains, download another kernel from 
http://people.canonical.com/~ypwong/lp1734147/linux-image-4.15.0-041500rc6-generic_4.15.0-041500rc6.201712312330+clear+debug_amd64.deb,
 and use dpkg to install it, then repeat steps 4 to 6. 

After your BIOS is fixed, the kernel packages you just installed are 
no longer needed, you can remove it by running 'sudo dpkg -r linux- 
image-4.15.0-041500rc6-generic'. 

The patch used to build the linux v4.15 kernel in step 8 can be found 
at https://goo.gl/xUKJFR. 

---

Test Case: Fix has been verified by our HWE team on affected hardware.

Regression Potential: Minimal, it's unlikely anyone is actually doing 
anything which requires this driver. 

---

Affected Machines:

Lenovo B40-70 
Lenovo B50-70 
Lenovo B50-80 
Lenovo Flex-3 
Lenovo Flex-10 
Lenovo G40-30 
Lenovo G50-30 
Lenovo G50-70 
Lenovo G50-80 
Lenovo S20-30 
Lenovo U31-70 
Lenovo Y50-70 
Lenovo Y70-70 
Lenovo Yoga Thinkpad (20C0) 
Lenovo Yoga 2 11" - 20332 
Lenovo Z50-70 
Lenovo Z51-70 
Lenovo ideapad 100-15IBY 

Acer Aspire E5-771G 
Acer Aspire ES1-111M-C1LE (fixed following your new instruction (thank you)) 
Acer TravelMate B113 
Acer Swift SF314-52 (Fixed by 4.14.9) 
Toshiba Satellite S55T-B5233 
Toshiba Satellite L50-B-1R7 
Toshiba Satellite S50-B-13G 
Dell Inspiron 15-3531 
Mediacom Smartbook 14 Ultra M-SB14UC 
Acer Aspire E3-111-C0UM 
HP 14-r012la 

---

Affected serial flash devices by manufacturer part number, JEDEC ID 
(SPI_NOR_HAS_LOCK set in drivers/mtd/spi-nor/spi-nor.c) 
/* ESMT */ 
f25l32pa, 0x8c2016 
f25l32qa, 0x8c4116 
f25l64qa, 0x8c4117 
/* GigaDevice */ 
gd25q16, 0xc84015 
gd25q32, 0xc84016 
gd25lq32, 0xc86016 
gd25q64, 0xc84017 
gd25lq64c, 0xc86017 
gd25q128, 0xc84018 
gd25q256, 0xc84019 
/* Winbond */ 
w25q16dw, 0xef6015 
w25q32dw, 0xef6016 
w25q64dw, 0xef6017 
w25q128fw, 0xef6018 

---

Original Description:

Basically on Lenovo Y50-70 after installing Ubuntu 17.10, many users 
reported a corrupted BIOS. 

It's not possible to save new settings in BIOS anymore and after 
rebooting, the system starts with the old settings. 

Moreover (and most important) USB booting is not possible anymore 
since USB is not recognized. It's very serious, since our machines do 
not have a CDROM. 

Lenovo forums at the moment are full of topics regading this issue.

Thank you!!

To manage notifications about this bug go to: 
https://bugs.launchpad.net/linux/+bug/1734147/+subscriptions

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1734147

Title:
  corrupted BIOS due to Intel SPI bug in kernel

To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/1734147/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to