I have done some more investigating. I believe if_dc is not correctly interpreting the SROM. It turns out that on Znyx cards, the SIA block is not in the format the driver expects (there is a format bit you need to check to see what format it is in).
I manually re-interpreted the data in the SROM and put a special case in dc_apply_fixup() and now 10baseT half duplex works correctly (not only that, but the LEDs do the correct thing too). I won't post a patch, since the hack has SROM data that is specific to this card, but it appears that the SROM parsing section of if_dc and the media selection code needs serious work. According to the sample code I've seen (thanks to Andrew Gallatin for pointing me to the sample below), we're not consulting the SROM for _enough_ information, and we're making too many assumptions about its format. http://www.tru64unix.compaq.com/docs/dev_doc/DOCUMENTATION/HTML/DDK_R2/usr/opt/OSCB505/src/usr/examples/ddk/src/pci/ To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-net" in the body of the message