diff options
Diffstat (limited to 'Documentation/networking/stmmac.txt')
-rw-r--r-- | Documentation/networking/stmmac.txt | 48 |
1 files changed, 37 insertions, 11 deletions
diff --git a/Documentation/networking/stmmac.txt b/Documentation/networking/stmmac.txt index 7ee770b5ef5f..80a7a3454902 100644 --- a/Documentation/networking/stmmac.txt +++ b/Documentation/networking/stmmac.txt | |||
@@ -7,7 +7,7 @@ This is the driver for the MAC 10/100/1000 on-chip Ethernet controllers | |||
7 | (Synopsys IP blocks); it has been fully tested on STLinux platforms. | 7 | (Synopsys IP blocks); it has been fully tested on STLinux platforms. |
8 | 8 | ||
9 | Currently this network device driver is for all STM embedded MAC/GMAC | 9 | Currently this network device driver is for all STM embedded MAC/GMAC |
10 | (7xxx SoCs). | 10 | (7xxx SoCs). Other platforms start using it i.e. ARM SPEAr. |
11 | 11 | ||
12 | DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100 | 12 | DWC Ether MAC 10/100/1000 Universal version 3.41a and DWC Ether MAC 10/100 |
13 | Universal version 4.0 have been used for developing the first code | 13 | Universal version 4.0 have been used for developing the first code |
@@ -95,9 +95,14 @@ Several information came from the platform; please refer to the | |||
95 | driver's Header file in include/linux directory. | 95 | driver's Header file in include/linux directory. |
96 | 96 | ||
97 | struct plat_stmmacenet_data { | 97 | struct plat_stmmacenet_data { |
98 | int bus_id; | 98 | int bus_id; |
99 | int pbl; | 99 | int pbl; |
100 | int has_gmac; | 100 | int clk_csr; |
101 | int has_gmac; | ||
102 | int enh_desc; | ||
103 | int tx_coe; | ||
104 | int bugged_jumbo; | ||
105 | int pmt; | ||
101 | void (*fix_mac_speed)(void *priv, unsigned int speed); | 106 | void (*fix_mac_speed)(void *priv, unsigned int speed); |
102 | void (*bus_setup)(unsigned long ioaddr); | 107 | void (*bus_setup)(unsigned long ioaddr); |
103 | #ifdef CONFIG_STM_DRIVERS | 108 | #ifdef CONFIG_STM_DRIVERS |
@@ -114,6 +119,12 @@ Where: | |||
114 | registers (on STM platforms); | 119 | registers (on STM platforms); |
115 | - has_gmac: GMAC core is on board (get it at run-time in the next step); | 120 | - has_gmac: GMAC core is on board (get it at run-time in the next step); |
116 | - bus_id: bus identifier. | 121 | - bus_id: bus identifier. |
122 | - tx_coe: core is able to perform the tx csum in HW. | ||
123 | - enh_desc: if sets the MAC will use the enhanced descriptor structure. | ||
124 | - clk_csr: CSR Clock range selection. | ||
125 | - bugged_jumbo: some HWs are not able to perform the csum in HW for | ||
126 | over-sized frames due to limited buffer sizes. Setting this | ||
127 | flag the csum will be done in SW on JUMBO frames. | ||
117 | 128 | ||
118 | struct plat_stmmacphy_data { | 129 | struct plat_stmmacphy_data { |
119 | int bus_id; | 130 | int bus_id; |
@@ -131,13 +142,28 @@ Where: | |||
131 | - interface: physical MII interface mode; | 142 | - interface: physical MII interface mode; |
132 | - phy_reset: hook to reset HW function. | 143 | - phy_reset: hook to reset HW function. |
133 | 144 | ||
145 | SOURCES: | ||
146 | - Kconfig | ||
147 | - Makefile | ||
148 | - stmmac_main.c: main network device driver; | ||
149 | - stmmac_mdio.c: mdio functions; | ||
150 | - stmmac_ethtool.c: ethtool support; | ||
151 | - stmmac_timer.[ch]: timer code used for mitigating the driver dma interrupts | ||
152 | Only tested on ST40 platforms based. | ||
153 | - stmmac.h: private driver structure; | ||
154 | - common.h: common definitions and VFTs; | ||
155 | - descs.h: descriptor structure definitions; | ||
156 | - dwmac1000_core.c: GMAC core functions; | ||
157 | - dwmac1000_dma.c: dma functions for the GMAC chip; | ||
158 | - dwmac1000.h: specific header file for the GMAC; | ||
159 | - dwmac100_core: MAC 100 core and dma code; | ||
160 | - dwmac100_dma.c: dma funtions for the MAC chip; | ||
161 | - dwmac1000.h: specific header file for the MAC; | ||
162 | - dwmac_lib.c: generic DMA functions shared among chips | ||
163 | - enh_desc.c: functions for handling enhanced descriptors | ||
164 | - norm_desc.c: functions for handling normal descriptors | ||
165 | |||
134 | TODO: | 166 | TODO: |
135 | - Continue to make the driver more generic and suitable for other Synopsys | 167 | - XGMAC controller is not supported. |
136 | Ethernet controllers used on other architectures (i.e. ARM). | ||
137 | - 10G controllers are not supported. | ||
138 | - MAC uses Normal descriptors and GMAC uses enhanced ones. | ||
139 | This is a limit that should be reviewed. MAC could want to | ||
140 | use the enhanced structure. | ||
141 | - Checksumming: Rx/Tx csum is done in HW in case of GMAC only. | ||
142 | - Review the timer optimisation code to use an embedded device that seems to be | 168 | - Review the timer optimisation code to use an embedded device that seems to be |
143 | available in new chip generations. | 169 | available in new chip generations. |