Energy Efficient Ethernet
™
BCM5718 Programmer’s Guide
Broadcom®
January 29, 2016 • 5718-PG108-R Page 148
c. Clear the Enable bit in the Send Data Initiator Mode Register (offset: 0xC00)
d. Clear the Enable bit in the Read DMA Mode Register (offset: 0x4800)
e. Clear the Enable bit in the Send Data Completion Mode Register (offset: 0x1000)
f. Clear the Enable bit in the Send BD Initiator Mode Register (offset: 0x1C00)
5. Shut down all of the memory managers and related state machines.
a. Clear the Enable bit in the Host Coalescing Mode Register (offset: 0x3C00)
b. Clear the Enable bit in the Write DMA Mode Register (offset: 0x4C00)
c. Reset the FTQ by setting 0xfffffff to the FTQ Reset Register (offset: 0x5C00)
d. Set FTQ Reset Register 0x5C00 to 0
6. Reset the controller. Call Device Reset Procedure (see “Device Reset Procedure” on page 146)
7. Instruct the firmware do the following post reset:
Note: Do this only if ASF enabled.
a. write 0x2 to the device memory (offset 0xc04)
b. write 0x80000002 to the device memory (offset 0xc04)
8. Free the RX/TX Ring list and buffers.
9. Set PCI power state to D3hot.
Energy Efficient Ethernet
™
The BCM5718 family of controllers supports the IEEE specification for Energy Efficient Ethernet (EEE)
(IEEE 802.3az-2010). The algorithm below describes how to initialize and enable EEE mode in the BCM5718
family of controllers.
/*
* Controller EEE initialization
*/
// Disable LPI requests
val = reg_read(0x36B0);
val &= 0xFFFFFF7F;
reg_write(0x36B0, val);
// Setup PHY DSP for EEE
mii_write(0x18, 0x0C00);
mii_write(0x17, 0x4022);
mii_write(0x15, 0x017B);
mii_write(0x18, 0x0400);
if (enable EEE advertisement)
{
// Enable EEE advertisement for 100Base-TX and 1000Base-T modes
mii_write(0x0D, 0x0007);
mii_write(0x0E, 0x003C);
mii_write(0x0D, 0x4007);