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, 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: