Subject: Re: PCI and subsystem IDs.
To: Soren S. Jorvang <>
From: Todd Whitesel <>
List: tech-kern
Date: 10/06/1998 15:11:20
> 'Subsystem Vendor IDs can be obtained from the PCI SIG [...]'
> Whatever that means.

Um, it just means that you're supposed to register with the PCI SIG for an
assigned number, like purchasing a 24-bit ethernet address block from IEEE.

> 'Values for Subsystem ID are vendor specific.'
> Whatever that means.

Um, once you have obtained a unique vendor ID, you can manage the assignment
of the subsystem ID's in any way you see fit.

> Ensoniq AudioPCI	0x1274	0x5000	0x4c4c	0x4942
> 0x4942 is not in the PCI SIG lists, and 0x4c4c seems rather
> random. Ah well.

printf("%c%c%c%c\n", 0x42, 0x49, 0x4c, 0x4c);


> Anyway, what is important in relation to NetBSD is whether
> drivers need the sub IDs for matching/attachment, and I
> believe that is not the case.

I think you are correct, although conceivably one day they might be required
for quirk table purposes.

It is also possible that some perverse hardware vendor will make their card
extremely difficult, and the only method we have for distinguishing their
hack is to check the subsystem ID.

In fact this may already be true: I have an ultra-cheapie PCI NE2000 clone
which delays every packet exchange in such a way that it extends the round
trip time by 1 second. On the advice of another NetBSD user I tried
'ifconfig ne2 down ; ifconfig ne2 up' after a reboot and that fixes it.
As of yet I don't know what magic state gets reset by the down/up process.

Todd Whitesel
toddpw @