Lenovo just released an updated BIOS firmware version 1.30 for ThinkPad P1 Gen1 on June 3rd.

The changes in this v1.30 release are:

CHANGES IN THIS RELEASE
  Version 1.30

[Important updates]
- Update includes a security fix.
- Address CVE-2020-0529, 
  (https://cve.mitre.org//cgi-bin//cvename.cgi?name=CVE-2020-0529)
- Address CVE-2020-0528, 
  (https://cve.mitre.org//cgi-bin//cvename.cgi?name=CVE-2020-0528)

[New functions or enhancements]
- Updated the Diagnostics module to version 04.12.001.

[Problem fixes]
- Fixed an issue where USB keyboard connected via Thunderbolt WS Dock might not be used at BIOS POST.

This firmware supports both ThinkPad P1 Gen1 and ThinkPad X1 Extreme 1:

  • ThinkPad P1 (Type 20MD, 20ME)
  • ThinkPad X1 Extreme (Type 20MF, 20MG)

Let’s see if this firmware is available via fwupdmgr.

[root@benjo ~]# fwupdmgr update
Failed to connect to daemon: Error calling StartServiceByName for org.freedesktop.fwupd: Timeout was reached

Hmm… this error came up periodically and usually disappeared after rebooting. Let’s reboot the machine first.

After rebooting, the fwupdmgr is working as expected:

[root@benjo ~]# fwupdmgr refresh 
Fetching signature https://cdn.fwupd.org/downloads/firmware.xml.gz.jcat
Downloading…             [***************************************]
Fetching metadata https://cdn.fwupd.org/downloads/firmware-00557-stable.xml.gz
Downloading…             [***************************************]
Successfully downloaded new metadata: 4 local devices supported

[root@benjo ~]# fwupdmgr update
• Thunderbolt Controller has the latest available firmware version
• Embedded Controller has the latest available firmware version
• INTEL SSDPEKKF512G8L has no available firmware updates
• Intel Management Engine has the latest available firmware version
• System Firmware has the latest available firmware version
• UEFI Device Firmware has no available firmware updates
[root@benjo ~]# 

From the above output, the new firmware v1.30 is not yet available via this tool.

Like the update from last month ([v1.29](/2020/05/ bios-firmware-for-thinkpad-p1-gen1-1-29/), we can also perform this update manually.

❯❯❯ curl -O https://download.lenovo.com/pccbbs/mobiles/n2eul22w.zip
❯❯❯ unzip n2eul22w.zip
Archive:  n2eul22w.zip
  inflating: N2EET48W.cab
  inflating: N2EHT29W.cab

After decompressing the n2eul22w.zip, we have the following 2 files:

  • N2EET48W.cab - UEFI BIOS 1.30
  • N2EHT29W.cab - ECP (Embedded Controller Program) 1.14

I need to update both the UEIF BIOS and ECP from the last the upgrade. I couldn’t find any document mentioning which of these 2 firmwares needed to be instlaled first. So, I’ll start with ECP update.

❯❯❯ sudo fwupdmgr install N2EHT29W.cab
[sudo] password for kenno: 
Decompressing…           [***************************************]
Authenticating…          [***************************************]
Installing on Embedded Controller…                               ]
Scheduling…              [***************************************]
Successfully installed firmware

An update requires a reboot to complete. Restart now? [y|N]: 

Let’s reboot…

❯❯❯ sudo fwupdmgr get-devices
20MDCTO1WW
|
...
├─Embedded Controller:
│     Device ID:           6b3fcb33b92ea5cdd94954b276ad0b63ed14f9bb
│     Current version:     0.1.14
│     Minimum Version:     0.0.1
│     Vendor:              DMI:LENOVO
│     GUID:                74997a6b-1adf-4b12-b994-401f06ea8c72
│     Device Flags:        • Internal device
│                          • Updatable
│                          • Requires AC power
│                          • Supported on remote server
│                          • Needs a reboot after installation
│                          • Device is usable for the duration of the update
...

The ECP update was successful. Now, let’s also update the UEFI BIOS.

❯❯❯ sudo fwupdmgr install N2EET48W.cab
[sudo] password for kenno: 
Decompressing…           [***************************************]
Authenticating…          [***************************************]
Installing on System Firmware…                                   ]
Scheduling…              [***************************************]
Successfully installed firmware

An update requires a reboot to complete. Restart now? [y|N]:

Let’s reboot one more time… it took about 1 minute to update the BIOS.

❯❯❯ sudo fwupdmgr get-devices
20MDCTO1WW
|
...
─System Firmware:
│     Device ID:           71519311a643244a2eaf392fbf17c968ec135dd3
│     Current version:     0.1.30
│     Minimum Version:     0.1.30
│     Vendor:              LENOVO (DMI:LENOVO)
│     GUID:                a95d69e7-2fa0-4849-9159-75645bc6e153
│     Device Flags:        • Internal device
│                          • Updatable
│                          • Requires AC power
│                          • Supported on remote server
│                          • Needs a reboot after installation
│                          • Cryptographic hash verification is available
│                          • Device is usable for the duration of the update
...

All updates were successful. My P1 has the following BIOS firmware, ECP and OS:

  • UEFI BIOS: 1.30
  • ECP: 1.14
  • OS: Fedora 32

References: