diff options
| author | Alexandre TORGUE <alexandre.torgue@st.com> | 2016-04-01 05:37:35 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-04-02 20:23:09 -0400 |
| commit | 0b7a43d37633614113ac54af73c193862dff4e50 (patch) | |
| tree | 8f78663c4bbc782676dfc764a4798095c80632a9 /Documentation | |
| parent | f748be531d7012c456b97f66091d86b3675c5fef (diff) | |
Documentation: networking: update stmmac
Update stmmac driver documentation according to new GMAC 4.x family.
Signed-off-by: Alexandre TORGUE <alexandre.torgue@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation')
| -rw-r--r-- | Documentation/networking/stmmac.txt | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/Documentation/networking/stmmac.txt b/Documentation/networking/stmmac.txt index d64a14714236..671fe3dd56d3 100644 --- a/Documentation/networking/stmmac.txt +++ b/Documentation/networking/stmmac.txt | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | STMicroelectronics 10/100/1000 Synopsys Ethernet driver | 1 | STMicroelectronics 10/100/1000 Synopsys Ethernet driver |
| 2 | 2 | ||
| 3 | Copyright (C) 2007-2014 STMicroelectronics Ltd | 3 | Copyright (C) 2007-2015 STMicroelectronics Ltd |
| 4 | Author: Giuseppe Cavallaro <peppe.cavallaro@st.com> | 4 | Author: Giuseppe Cavallaro <peppe.cavallaro@st.com> |
| 5 | 5 | ||
| 6 | This is the driver for the MAC 10/100/1000 on-chip Ethernet controllers | 6 | This is the driver for the MAC 10/100/1000 on-chip Ethernet controllers |
| @@ -138,6 +138,8 @@ struct plat_stmmacenet_data { | |||
| 138 | int (*init)(struct platform_device *pdev, void *priv); | 138 | int (*init)(struct platform_device *pdev, void *priv); |
| 139 | void (*exit)(struct platform_device *pdev, void *priv); | 139 | void (*exit)(struct platform_device *pdev, void *priv); |
| 140 | void *bsp_priv; | 140 | void *bsp_priv; |
| 141 | int has_gmac4; | ||
| 142 | bool tso_en; | ||
| 141 | }; | 143 | }; |
| 142 | 144 | ||
| 143 | Where: | 145 | Where: |
| @@ -181,6 +183,8 @@ Where: | |||
| 181 | registers. init/exit callbacks should not use or modify | 183 | registers. init/exit callbacks should not use or modify |
| 182 | platform data. | 184 | platform data. |
| 183 | o bsp_priv: another private pointer. | 185 | o bsp_priv: another private pointer. |
| 186 | o has_gmac4: uses GMAC4 core. | ||
| 187 | o tso_en: Enables TSO (TCP Segmentation Offload) feature. | ||
| 184 | 188 | ||
| 185 | For MDIO bus The we have: | 189 | For MDIO bus The we have: |
| 186 | 190 | ||
| @@ -278,6 +282,13 @@ Please see the following document: | |||
| 278 | o stmmac_ethtool.c: to implement the ethtool support; | 282 | o stmmac_ethtool.c: to implement the ethtool support; |
| 279 | o stmmac.h: private driver structure; | 283 | o stmmac.h: private driver structure; |
| 280 | o common.h: common definitions and VFTs; | 284 | o common.h: common definitions and VFTs; |
| 285 | o mmc_core.c/mmc.h: Management MAC Counters; | ||
| 286 | o stmmac_hwtstamp.c: HW timestamp support for PTP; | ||
| 287 | o stmmac_ptp.c: PTP 1588 clock; | ||
| 288 | o dwmac-<XXX>.c: these are for the platform glue-logic file; e.g. dwmac-sti.c | ||
| 289 | for STMicroelectronics SoCs. | ||
| 290 | |||
| 291 | - GMAC 3.x | ||
| 281 | o descs.h: descriptor structure definitions; | 292 | o descs.h: descriptor structure definitions; |
| 282 | o dwmac1000_core.c: dwmac GiGa core functions; | 293 | o dwmac1000_core.c: dwmac GiGa core functions; |
| 283 | o dwmac1000_dma.c: dma functions for the GMAC chip; | 294 | o dwmac1000_dma.c: dma functions for the GMAC chip; |
| @@ -289,11 +300,32 @@ Please see the following document: | |||
| 289 | o enh_desc.c: functions for handling enhanced descriptors; | 300 | o enh_desc.c: functions for handling enhanced descriptors; |
| 290 | o norm_desc.c: functions for handling normal descriptors; | 301 | o norm_desc.c: functions for handling normal descriptors; |
| 291 | o chain_mode.c/ring_mode.c:: functions to manage RING/CHAINED modes; | 302 | o chain_mode.c/ring_mode.c:: functions to manage RING/CHAINED modes; |
| 292 | o mmc_core.c/mmc.h: Management MAC Counters; | 303 | |
| 293 | o stmmac_hwtstamp.c: HW timestamp support for PTP; | 304 | - GMAC4.x generation |
| 294 | o stmmac_ptp.c: PTP 1588 clock; | 305 | o dwmac4_core.c: dwmac GMAC4.x core functions; |
| 295 | o dwmac-<XXX>.c: these are for the platform glue-logic file; e.g. dwmac-sti.c | 306 | o dwmac4_desc.c: functions for handling GMAC4.x descriptors; |
| 296 | for STMicroelectronics SoCs. | 307 | o dwmac4_descs.h: descriptor definitions; |
| 308 | o dwmac4_dma.c: dma functions for the GMAC4.x chip; | ||
| 309 | o dwmac4_dma.h: dma definitions for the GMAC4.x chip; | ||
| 310 | o dwmac4.h: core definitions for the GMAC4.x chip; | ||
| 311 | o dwmac4_lib.c: generic GMAC4.x functions; | ||
| 312 | |||
| 313 | 4.12) TSO support (GMAC4.x) | ||
| 314 | |||
| 315 | TSO (Tcp Segmentation Offload) feature is supported by GMAC 4.x chip family. | ||
| 316 | When a packet is sent through TCP protocol, the TCP stack ensures that | ||
| 317 | the SKB provided to the low level driver (stmmac in our case) matches with | ||
| 318 | the maximum frame len (IP header + TCP header + payload <= 1500 bytes (for | ||
| 319 | MTU set to 1500)). It means that if an application using TCP want to send a | ||
| 320 | packet which will have a length (after adding headers) > 1514 the packet | ||
| 321 | will be split in several TCP packets: The data payload is split and headers | ||
| 322 | (TCP/IP ..) are added. It is done by software. | ||
| 323 | |||
| 324 | When TSO is enabled, the TCP stack doesn't care about the maximum frame | ||
| 325 | length and provide SKB packet to stmmac as it is. The GMAC IP will have to | ||
| 326 | perform the segmentation by it self to match with maximum frame length. | ||
| 327 | |||
| 328 | This feature can be enabled in device tree through "snps,tso" entry. | ||
| 297 | 329 | ||
| 298 | 5) Debug Information | 330 | 5) Debug Information |
| 299 | 331 | ||
