• No results found

Power Management 6

6.3 D3 cold support

6.4.3 Wakeup Packets

6.4.3.1 Pre-Defined Filters

The following packets are supported by the Ethernet controller’s pre-defined filters:

Directed Packet (including exact, multicast indexed, and broadcast)

Magic Packet* (not applicable to the 82541ER)

ARP/IPv4 Request Packet (ARP Request Packet for the 82544GC/EI)

Directed IPv4 Packet (Directed IP Packet for the 82544GC/EI)

Directed IPv6 Packet1

Each of these filters are enabled if the corresponding bit in the Wakeup Filter Control Register (WUFC) is set to 1b.

The following explanation of each filter includes a table listing which bytes at which offsets are compared to determine if the packet passes the filter. Note that both VLAN2 frames and LLC/Snap can increase the given offsets if they are present (see Section 9.3 for details).

For the 82541PI/GI/EI and 82547GI/EI, various tables can also include a reference to a possible VLAN Tag and LLC/SNAP Header. These Ethernet controllers detect VLAN and LLC/Snap frames by checking the initial size/type field. They first check for a VLAN header by comparing the size/type field to the value programmed in the VLAN EtherType register. If the field matches, the Ethernet controllers consider the frame a VLAN frame. They then check the VLAN ID against the values programmed in the VLAN Filter Table Array. If the ID matches the packet, processing

The Ethernet controller generates a wakeup event after receiving any packet whose destination address matches one of the 16 valid programmed Receive Addresses if the Directed Exact Wakeup Enable bit is set in the Wakeup Filter Control Register (WUFC.EX).

6.4.3.1.2 Directed Multicast Packet

For multicast packets, the upper bits of the incoming packet’s destination address indexes a bit vector (Multicast Table Array) that indicates whether to accept the packet. If the Directed Multicast Wakeup Enable bit set in the Wakeup Filter Control Register (WUFC.MC) and the indexed bit in the vector is one then the Ethernet controller generates a wakeup event. The exact bits used in the comparison are programmed by software in the Multicast Offset field of the Receive Control Register (RCTL.MO).

6.4.3.1.3 Broadcast

If the Broadcast Wakeup Enable bit in the Wakeup Filter Control Register (WUFC.BC) is set, the Ethernet controller generates a wakeup event when it receives a broadcast packet.

6.4.3.1.4 Magic Packet*1

Magic Packet* technology is defined at: http://www.amd.com/products/npd/overview/20212.html.

The Ethernet controller expects the destination address to:

1. Be the broadcast address (FF.FF.FF.FF.FF.FF)

2. Match the value in Receive Address Register 0 (RAH0, RAL0). This is initially loaded from the EEPROM but can be changed by the software driver.

3. Match any other address filtering enabled by the software driver.

The Ethernet controller searches for the contents of Receive Address Register 0 (RAH0, RAL0) as the embedded IEEE address. It considers any non FF byte after a series of at least 6 FFs to be the start of the address for comparison purposes (for example, it catches the case of 7 FFs followed by the address). As soon as one of the first 96 bytes after a string of FFs doesn’t match, it continues to search for anther set of at least 6 FFs followed by the 16 copies of the IEEE address later in the packet. Note that this definition precludes the first byte of the destination address from being FF.

Offset # of

bytes Field Value Action Comment

0 6 Destination Address Compare Match any

pre-programmed address

Offset # of

Bytes Field Value Action Comment

0 6 Destination Address Compare See Section 6.4.3.1.2.

Offset # of

bytes Field Value Action Comment

0 6 Destination Address FF*6 Compare

1. Not applicable to the 82541ER.

A Magic Packet’s destination address must match the address filtering enabled in the configuration registers with the exception that broadcast packets are considered to match even if the Broadcast Accept bit of the Receive Control Register (RCTL.BAM) is 0b. If APM Wakeup is enabled in the EEPROM, Ethernet controller starts up with the Receive Address Register 0 (RAH0, RAL0) loaded from the EEPROM. This is enables it to accept packets with the matching IEEE address before the driver comes up.

Note: Accepting broadcast magic packets for wakeup purposes when the Broadcast Accept bit of the Receive Control Register (RCTL.BAM) is 0b is a change from the 82544GC/EI Ethernet controller, which initialized RCTL.BAM to 1b if APM was enabled in the EEPROM, but then required that bit to be 1b to accept broadcast Magic Packets, unless broadcast packets passed another perfect or multicast filter.

Offset # of

bytes Field Value Action Comment

0 6 Destination Address Compare MAC Header –

processed by main address filter

6 6 Source Address Skip

12a 8 Possible LLC/SNAP Header Skip

12a 4 Possible VLAN Tag Skip

12a 4 Type Skip

any 6 Synchronizing Stream FF*6+ Compare

any+6 96 16 copies of Node Address A*16 Compare

Compared to Receive Address Register 0 (RAH0, RAL0) a. Not applicable to the 82541PI/GI/EI and 82547GI/EI.

6.4.3.1.5 ARP/IPv4 Request Packet1

The Ethernet controller supports receiving ARP Request packets for wakeup if the ARP bit is set in the Wakeup Filter Control Register (WUFC). Four IPv4 addresses are supported which are programmed in the IPv4 Address Table (IPv4AT)2. A successfully matched packet must contain a broadcast MAC address, a Protocol Type of 0806h, an ARP OPCODE of 01h, and one of the four programmed IPv4 addresses. The Ethernet controller also handles ARP Request packets that have VLAN tagging on both Ethernet II and Ethernet SNAP types.

1. ARP Request Packet for the 82544GC/EI.

2. Four IP addresses are supported which are programmed in the IP Address Table (IPAT) for the 82544GC/EI.

Offset # of

bytes Field Value Action Comment

0 6 Destination Address Compare

MAC Header – processed by main address filter

6 6 Source Address Skip

12 12 + Sa

8

D = (0/8)a Possible LLC/SNAP Header Type<= 1500 and AAAA_0300_0000ha

Skip Checka

12 4

S = (0/4)a Possible VLAN Tag 8100h and check IDa Skip Checka

19 + D + Sa 1 Protocol Address Length 04h Compare

20

4 Sender IP Address - Ignore

32

32 + D + Sa 6 Target HW Address - Ignore

38

38 + D + Sa 4 Target IP Address IPv4ATb Compare May match any of 4

values in IPv4ATb a. 82541PI/GI/EI and 82547GI/EI only.

b. IPAT for the 82544GC/EI.

6.4.3.1.6 Directed IPv4 Packet1

The Ethernet controller supports receiving Directed IPv42 packets for wakeup if the IPv4 bit is set in the WakeUp Filter Control Register (WUFC). Four IPv4 addresses are supported which are programmed in the IPv4 Address Table (IPv4AT). A successfully matched packet must contain the station’s MAC address, a Protocol Type of 0800h, and one of the four programmed IPv4 addresses.

The Ethernet controller also handles Directed IPv4 packets that have VLAN tagging on both Ethernet II and Ethernet SNAP types.

Offset # of bytes Field Value Action Comment

0 6 Destination Address Compare

MAC Header – processed by main address filter

6 6 Source Address Skip

Ignorea

12 12 + Sa

8

D = (0/8)a Possible LLC/SNAP Header

Type<= 1500