#528

Keep in mind that there are two *separate* issues:

1. Bug off-by-one bug in intel-spi driver that causes CMP bit to accidentally 
set to 1. This results BIOS 
   being read-only. The bug was fixed by 9d63f17661e2 ("spi-nor: intel-spi: Fix 
broken software sequencing 
   codes") in september.

2. Some Lenovo Thinkpad Yoga BIOSes reset to default settings if their BCR 
register is touched. This BCR 
   handling is in a different driver (drivers/mfd/lpc_ich.c). This issue has 
been fixed by commit 
   d9018976cdb6 ("mfd: lpc_ich: Do not touch SPI-NOR write protection bit on 
Haswell/Broadwell") in july.

So in order to have a kernel that is free from both issues, you need to
disable the intel-spi driver (for reasons being that it is not supposed
to be enabled for normal users anyway) and then cherry-pick commit
d9018976cdb6 to make sure the other issue does not happen.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
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 Released
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 Yoga 3 11"
  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

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to