• Alexandre TORGUE's avatar
    stmmac: add descriptors function for GMAC 4.xx · 753a7109
    Alexandre TORGUE authored
    One of main changes of GMAC 4.xx IP is descriptors management.
    -descriptors are only used in ring mode.
    -A descriptor is composed of 4 32bits registers (no more extended
     descriptors)
    -descriptor mechanism (Tx for example, but it is exactly the same for RX):
    -useful registers:
    	-DMA_CH#_TxDesc_Ring_Len: length of transmit descriptor
    				   ring
    	-DMA_CH#_TxDesc_List_Address: start address of the ring
    	-DMA_CH#_TxDesc_Tail_Pointer: address of the last
    				      descriptor to send + 1.
    	-DMA_CH#_TxDesc_Current_App_TxDesc: address of the current
    					    descriptor
    
    -The descriptor Tail Pointer register contains the pointer to the
     descriptor address (N). The base address and the current
     descriptor decide the address of the current descriptor that the
     DMA can process. The descriptors up to one location less than the
     one indicated by the descriptor tail pointer (N-1) are owned by
     the DMA. The DMA continues to process the descriptors until the
     following condition occurs:
     "current descriptor pointer == Descriptor Tail pointer"
    
      Then the DMA goes into suspend mode. The application must perform
      a write to descriptor tail pointer register and update the tail
      pointer to have the following condition and to start a new
          transfer:
      "current descriptor pointer < Descriptor tail pointer"
    
      The DMA automatically wraps around the base address when the end
      of ring is reached.
    
    -New features are available on IP:
    -TSO (TCP Segmentation Offload) for TX only
    -Split header: to have header and payload in 2 different buffers
    Signed-off-by: default avatarAlexandre TORGUE <alexandre.torgue@st.com>
    Signed-off-by: default avatarGiuseppe Cavallaro <peppe.cavallaro@st.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    753a7109
dwmac4_descs.h 4.3 KB