[Soekris] net4801 and linux
M. Warner Losh
imp at bsdimp.com
Fri Aug 1 07:03:38 UTC 2003
I just got done adding some code in FreeBSD for this problem.
When enumerating pci bus, you must read the header at offset 0x0e,
which contains the header type. If you don't know what it is, skip
it. In FreeBSD, we only grok 0, 1 and 2 header types, so we ignore
all devices that don't have these types.
Accorrding to the standards docs that I've been pointed at, the header
byte is the only byte that's guarnateed to be readable. Not even the
vendor word is guaranteed, or so some people read the standard.
Maybe your printk are changing the timing of things, but you might try
to rework the code to use thiis test. I've not looked at the linux
pci code in a very long time, so I can't help further.
More information about the Soekris-tech