Functional Description
if ((vid_ingress_check) and (Rx port is not VLAN member) and (VLAN found))
then do not update address
if ((source address found) and (receive port number != port_number) and (secure or block))
then do not update address
if ((source address found) and (receive port number != port_number))
then update address
14.3.2.7.3.3 Touching Process
if ((source address found) and (ageable) and (not touched))
then set touched
14.3.2.8 Packet Priority Handling
Packets are received on three ports, two of which are CPGMAC_SL Ethernet ports and the third port is
the CPPI host port. Received packets have a received packet priority (0 to 7 with 7 being the highest
priority). The received packet priority is determined as shown:
1. If the first packet LTYPE = 0x8100 then the received packet priority is the packet priority (VLAN tagged
and priority tagged packets).
2. If the first packet LTYPE = 0x0800 and byte 14 (following the LTYPE) is equal to 0x45 then the
received packet priority is the 6-bit TOS field in byte 15 (upper 6-bits) mapped through the port’s DSCP
priority mapping register (IPV4 packet).
3. The received packet priority is the source (ingress) port priority (untagged non-IPV4 packet).
The received packet priority is mapped through the receive ports associated “packet priority to header
packet priority mapping register” to obtain the header packet priority (the CPDMA Rx and Tx nomenclature
is reversed from the CPGMAC_SL nomenclature for legacy reasons). The header packet priority is
mapped through the “header priority to switch priority mapping register” to obtain the hardware switch
priority (0 to 3 with 3 being the highest priority). The header packet priority is then used as the actual
transmit packet priority if the VLAN information is to be sent on egress.
14.3.2.9 FIFO Memory Control
Each of the three CPSW_3G ports has an identical associated FIFO. Each FIFO contains a single logical
receive (ingress) queue and four logical transmit queues (priority 0 through 3). Each FIFO memory
contains 20,480 bytes (20k) total organized as 2560 by 64-bit words contained in a single memory
instance. The FIFO memory is used for the associated port transmit and receive queues. The tx_max_blks
field in the FIFO’s associated Max_Blks register determines the maximum number of 1k FIFO memory
blocks to be allocated to the four logical transmit queues (transmit total).
The rx_max_blks field in the FIFO’s associated Max_Blks register determines the maximum number of 1k
memory blocks to be allocated to the logical receive queue. The tx_max_blks value plus the rx_max_blks
value must sum to 20 (the total number of blocks in the FIFO). If the sum were less than 20 then some
memory blocks would be unused.The default is 17 (decimal) transmit blocks and three receive blocks. The
FIFO’s follow the naming convention of the Ethernet ports.Host Port is Port0 and External Ports are
Port1,2
14.3.2.10 FIFO Transmit Queue Control
There are four transmit queues in each transmit FIFO. Software has some flexibility in determining how
packets are loaded into the queues and on how packet priorities are selected for transmission (how
packets are removed and transmitted from queues). All ports on the switch have identical FIFO’s. For the
purposes of the below the transmit FIFO is switch egress even though the port 0 transmit FIFO is
connected to the CPDMA receive (also switch egress). The CPDMA nomenclature is reversed from the
CPGMAC_SL nomenclature due to legacy reasons.
1204
Ethernet Subsystem
SPRUH73H – October 2011 – Revised April 2013
Copyright © 2011–2013, Texas Instruments Incorporated