8.2.6.19 LPI Operation in the GMAC

It is best to use firmware to control LPI. LPI operation happens at the system level. Firmware gives maximum control and flexibility of operation. LPI operation is straightforward and firmware should be capable of responding within the required timeframes.

Auto-negotiation:

  1. Indicate EEE capability using next page auto-negotiation.

For the transmit path:

  1. If the link has been up for 1 second and there is nothing being transmitted, write to the TXLPIEN bit in the Network Control register.
  2. If connected to 1000BASE-T PHY using RGMII, there is nothing more to do.
  3. If connected to a backplane using a 1000BASE-KX PHY, use firmware to periodically disable the SerDes transmit path. (Write to bit 1.160.0 for 1000BASE-KX.)
  4. Wake up by clearing the TXLPIEN bit in the Network Control register.

For the receive path:

  1. Enable RXLPISBC bit in GMAC_IER. The bit RXLPIS is set in Network Status Register triggering an interrupt.
  2. Wait for an interrupt to indicate that LPI has been received.
  3. Disable relevant parts of the receive path if desired but keep the PCS and SerDes active.
  4. The RXLPIS bit in Network Status Register gets cleared to indicate that regular idle has been received. This triggers an interrupt.
  5. Re-enable the receive path.