Project

General

Profile

Actions

Bug #311

closed

T410 PCIe Endpoints missing after flashing coreboot

Added by Johannes Roith almost 3 years ago. Updated almost 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
board support
Target version:
-
Start date:
06/03/2021
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:

Description

After flashing coreboot on my Thinkpad T410, I realized the Mini PCIe Wifi card was no longer detected by my system. I have tried a second Intel Mini PCIe Wifi Card, I had lying around, but it was not recognized ether.

So I reflashed the original BIOS and checked lspci for devices (attached in PCIe_Bus/lenovo). The Wifi Card was found again. After comparing it to my lspci outputs with coreboot (PCIe_Bus/coreboot, it seems five devices (including the Bridge to Mini PCIe) are not detected with coreboot.

On the old coreboot documentation site, I found the result of lspci on the page of the T410 (https://www.coreboot.org/Board:lenovo/t410) and the Wifi Card is missing, too.

Do you have any idea, how to get the bridge to Mini PCIe working with coreboot, so I can use the Wifi Card? As far as I have understood, coreboot does not a full PCIe Enumeration. If so, can I force a full enumeration in coreboot or by changing a parameter in grub? Or is there already a workaround?

I have attached my coreboot configuration, too. I have used the ME_Cleaner to remove some parts of the Intel ME. I have tested it with Linux Mint and Fedora 34.


Files

T410.zip (6.05 KB) T410.zip Johannes Roith, 06/03/2021 12:34 PM
.config (24.8 KB) .config Johannes Roith, 06/03/2021 01:42 PM
coreboot_devtree_workaround.zip (2.94 KB) coreboot_devtree_workaround.zip Johannes Roith, 06/04/2021 09:05 AM
Actions #1

Updated by Paul Menzel almost 3 years ago

Thank you for taking the time to reporting this issue. Could you please try coreboot first without modifying the management engine?

Actions #2

Updated by Angel Pons almost 3 years ago

  • Category set to board support
  • Status changed from New to In Progress
  • Assignee set to Angel Pons

Looks like the host bridge (00:00.0) PCI device ID is wrong. It's supposed to be 8086:0044, but is 8086:006a with coreboot. This usually happens because of me_cleaner usage. The system isn't expected to run in this state, and this can cause issues.

Still, the fix seems to be simple: https://review.coreboot.org/55169

Actions #3

Updated by Lance Zhao almost 3 years ago

Maybe there's some private programming needed in T410, either a GPIO pin to
turn on/off power rail or some special sequence needed other than generic
pcie enumeration.

coreboot@fe80.eu 于2021年6月3日周四 下午9:45写道:

Issue #311 has been reported by Johannes Roith.


Bug #311: T410 PCIe Endpoints missing after flashing coreboot
https://ticket.coreboot.org/issues/311

  • Author: Johannes Roith
  • Status: New
  • Priority: Normal
  • Assignee:
  • Category:

* Target version:

After flashing coreboot on my Thinkpad T410, I realized the Mini PCIe Wifi
card was no longer detected by my system. I have tried a second Intel Mini
PCIe Wifi Card, I had lying around, but it was not recognized ether.

So I reflashed the original BIOS and checked lspci for devices (attached
in PCIe_Bus/lenovo). The Wifi Card was found again. After comparing it to
my lspci outputs with coreboot (PCIe_Bus/coreboot, it seems five devices
(including the Bridge to Mini PCIe) are not detected with coreboot.

On the old coreboot documentation site, I found the result of lspci on the
page of the T410 (https://www.coreboot.org/Board:lenovo/t410) and the
Wifi Card is missing, too.

Do you have any idea, how to get the bridge to Mini PCIe working with
coreboot, so I can use the Wifi Card? As far as I have understood, coreboot
does not a full PCIe Enumeration. If so, can I force a full enumeration in
coreboot or by changing a parameter in grub? Or is there already a
workaround?

I have attached my coreboot configuration, too. I have used the ME_Cleaner
to remove some parts of the Intel ME. I have tested it with Linux Mint and
Fedora 34.

---Files--------------------------------
T410.zip (6.05 KB)
.config (24.8 KB)

--
You have received this notification because you have either subscribed to
it, or are involved in it.
To change your notification preferences, please click here:
https://ticket.coreboot.org/my/account


coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-leave@coreboot.org

Actions #4

Updated by Johannes Roith almost 3 years ago

Angel Pons wrote:

Looks like the host bridge (00:00.0) PCI device ID is wrong. It's supposed to be 8086:0044, but is 8086:006a with coreboot. This usually happens because of me_cleaner usage. The system isn't expected to run in this state, and this can cause issues.

Still, the fix seems to be simple: https://review.coreboot.org/55169

Thank you all for your quick response.

I have tried Angel Pons' workaround to modify the device tree a little bit and recompiled the ROM with a cleaned Intel ME and now the Wifi Card is back there and ready for use!

Just for information I have attached some outputs of lspci with the coreboot build including the workaround.

From my side, we can close this bug, but maybe you want to wait, until the devicetree change is merged.

Thank you all once again and have a nice day,
Johannes

Actions #5

Updated by Nico Huber almost 3 years ago

  • Status changed from In Progress to Resolved

I've submitted the patches to master.

Johannes, if you can confirm that a build from master works unpatched now, you can close the ticket.

Actions

Also available in: Atom PDF