GMII/MII
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 209
// Set link speed to 10Mb
bmcr = (0 << 6) | (1 << 13);
// Set half-duplex operation
bmcr |= (0 << 8);
// Force loopback
// Disable 1000Mb autoneg advertisement
phy_write(0x09, 0);
// Disable 10/100 autoneg advertisement
phy_write(0x04, (00001b << 0));
// Write forced link speed
phy_write(0x00, bmcr);
----------------------
100Base-TX Full-Duplex
----------------------
uint16_t bmcr = 0;
// Reset PHY
// Enable auto-MDIX
// Set link speed to 10Mb
bmcr = (0 << 6) | (1 << 13);
// Set full-duplex operation
bmcr |= (1 << 8);
// Force loopback
// Disable 1000Mb autoneg advertisement
phy_write(0x09, 0);
// Disable 10/100 autoneg advertisement
phy_write(0x04, (00001b << 0));
// Write forced link speed
phy_write(0x00, bmcr);
----------------------
1000Base-T Half-Duplex
----------------------
- Half duplex operation not supported at 1000Mb per 802.3 specification
----------------------
1000Base-T Full-Duplex
----------------------
- Forced speed not supported, must use autoneg but only advertise 1000Mb speed
uint16_t bmcr = 0, gig = 0;