Hi,
I've implemented an Ethernet driver based upon some example code we received from a parts vendor. This driver is running in a small embedded system - a DHCP server of sorts. The example code we received essentially blocked the world from starting up until someone inserted an RJ-45 cable - something which, in our product, is not a guarantee. The main reason for the block is that the example code sits around waiting for an MII negotiation to complete with some peer device on the LAN, e.g. Hub, switch, etc.
Our system cannot block waiting for a cable, so I removed the code that performs the MII negotiation and so far everything is working just fine. Our PHY chip is a broadcom part and I carefully compared the default register settings with the values that were loaded into them after the MII negotiation was complete. They were practically identical, so no big problem and I've never see our ethernet connection fail to come up and allocate IP addresses to a client (via DHCP).
The question is, does anyone out there know if there are any pitfalls waiting for me by not allowing the MII negotiation to complete? I'm also wondering whether the DHCP client device (e.g. laptop) will perform its own MII negotiation and learn our settings. I haven't been able to discover the rules for what peer must initiate the negotiation
- I'm guessing both do.
Regards
RealTimer