707ff463e2
interrupts. This is a bit harder than it needs to be because there's more than one way to generate link attentions, at least one of which does not work on the BCM5700, but does on the 5701. For the 5701, we can safely use the 'link changed' bit in the status block, and we enable link change attentions in the mac event register. For the 5700, we have to use MII interrupts, which require checking the MAC status register rather than the status block. This requires doing an extra register access on each interrupt which I'd prefer to avoid, but them's the breaks. Testing with both a 3c996-T and 3c996B-T shows that we do in fact detect the link going up and down properly on cable insertions/disconnections. Also, avoid twiddling the autopoll enable bit in the MI mode register when doing a PHY read. I think this coupled with the other changes will stop the interrupt storms Paul Saab has been harassing me about. Manually setting the link to 100baseTX full duplex seems to work ok for me. (I'm typing over the 3c996B-T right now.) Lastly, teach the driver how to recognize a 3c996B-SX by checking the hardware config word in the EEPROM in order to detect the media. We attach 5701 fiber cards correctly now, but I haven't verified that they send/receive packets yet since I don't have a second fiber interface at home. (I know that fiber 5700 cards work, so I'm keeping my fingers crossed.) |
||
---|---|---|
.. | ||
if_bge.c | ||
if_bgereg.h |