PCI vendor/device IDs vs subsystem vendor/device IDs

162 views
Skip to first unread message

Aleksander Morgado

unread,
Nov 13, 2020, 3:51:19 AM11/13/20
to fwupd
Hey!

I'm working on a firmware upgrade setup for PCI based WWAN modules, and I'm trying to understand what kind of IDs to expose both in MM and as GUIDs for fwupd.

The PCI configuration space defines the "vendor and device IDs" associated to the chip manufacturer, and the "subsystem vendor and device IDs" associated to the card manufacturer.

For ModemManager's purposes I think we would prefer the subsystem ones, as that should give us a matching on the module manufacturer, but now I'm a bit confused. The only module I have for testing has the same ID (0x1eac, Quectel PCI id) for both the "vendor ID" and the "subsystem vendor ID" fields (even if the chip is Qualcomm), and so I don't know whether using the subsystem ones in general is preferred or not.

And for fwupd integration, I'm not sure if the GUIDs should be built with the normal vendor ID and product IDs instead of the subsystem ones.

You all have more experience with PCI than I do, so I'd gladly accept hints and comments :)

Richard Hughes

unread,
Nov 13, 2020, 4:17:22 AM11/13/20
to Aleksander Morgado, fwupd
On Fri, 13 Nov 2020 at 08:51, Aleksander Morgado
<aleksande...@gmail.com> wrote:
> And for fwupd integration, I'm not sure if the GUIDs should be built with the normal vendor ID and product IDs instead of the subsystem ones.

Can you do both? e.g.

* PCI\VEN_14E4&DEV_1657
* PCI\VEN_14E4&DEV_1657&SUBSYS_17AA222E

-- that's what bcm57xx does.

Richard.

Aleksander Morgado

unread,
Nov 23, 2020, 4:05:56 PM11/23/20
to fwupd
Hey

> And for fwupd integration, I'm not sure if the GUIDs should be built with the normal vendor ID and product IDs instead of the subsystem ones.

Can you do both? e.g.

* PCI\VEN_14E4&DEV_1657
* PCI\VEN_14E4&DEV_1657&SUBSYS_17AA222E

-- that's what bcm57xx does.


That may work, yes.

Right now ModemManager defaults to exposing only the normal vendor/product IDs; but I believe we should probably expose both a GUID for only VEN+DEV and another one for VEN+DEV+SUBSYS. I'll ask around and see if that fits the usecase I'm working on.

Thanks!


Reply all
Reply to author
Forward
0 new messages