The MAC receiver supports wake-on-LAN (WOL) by detecting these events on incoming RX frames:
- Magic packets
- Address resolution protocol (ARP) requests to the device IP address
- Specific address 1 filter match
- Multicast hash filter match
The receiver must be enabled by writing a 1 to Network_Control [enable_receive]. These events can be individually enabled using the gem.wol_register [wol_mask_x] bits.
Also, when WOL is detected, the gem.int_status [wol_interrupt] bit is set by the controller.
Important: A receive buffer in the RXFIFO does not have to be available, but the
descriptor must be fetchable from memory when the wake-up event occurs. Alternately, the
receive DMA queues can be disabled by setting the GEM.receive_q_ptr [dma_rx_dis_q] bit =
1.
The wake-up interrupt is asserted for several reasons:
- An RX multicast filter event occurred
- An ARP request is generated
- Specific address 1 match even in the presence of a frame error