Alex | af2cbfd | 2017-02-06 19:17:34 -0800 | [diff] [blame] | 1 | source "drivers/net/phy/Kconfig" |
| 2 | |
Joe Hershberger | 05c3e68 | 2015-03-22 17:09:10 -0500 | [diff] [blame] | 3 | config DM_ETH |
| 4 | bool "Enable Driver Model for Ethernet drivers" |
| 5 | depends on DM |
| 6 | help |
| 7 | Enable driver model for Ethernet. |
| 8 | |
| 9 | The eth_*() interface will be implemented by the UC_ETH class |
| 10 | This is currently implemented in net/eth.c |
| 11 | Look in include/net.h for details. |
Joe Hershberger | 3ea143a | 2015-03-22 17:09:13 -0500 | [diff] [blame] | 12 | |
| 13 | menuconfig NETDEVICES |
| 14 | bool "Network device support" |
| 15 | depends on NET |
Joe Hershberger | ef0f2f5 | 2015-06-22 16:15:30 -0500 | [diff] [blame] | 16 | default y if DM_ETH |
Joe Hershberger | 3ea143a | 2015-03-22 17:09:13 -0500 | [diff] [blame] | 17 | help |
| 18 | You must select Y to enable any network device support |
| 19 | Generally if you have any networking support this is a given |
| 20 | |
| 21 | If unsure, say Y |
| 22 | |
| 23 | if NETDEVICES |
| 24 | |
Philipp Tomsich | 449ea2c | 2017-03-26 18:50:23 +0200 | [diff] [blame] | 25 | config PHY_GIGE |
| 26 | bool "Enable GbE PHY status parsing and configuration" |
| 27 | help |
| 28 | Enables support for parsing the status output and for |
| 29 | configuring GbE PHYs (affects the inner workings of some |
| 30 | commands and miiphyutil.c). |
| 31 | |
Marek Vasut | e40095f | 2016-05-24 23:29:09 +0200 | [diff] [blame] | 32 | config AG7XXX |
| 33 | bool "Atheros AG7xxx Ethernet MAC support" |
| 34 | depends on DM_ETH && ARCH_ATH79 |
| 35 | select PHYLIB |
| 36 | help |
| 37 | This driver supports the Atheros AG7xxx Ethernet MAC. This MAC is |
| 38 | present in the Atheros AR7xxx, AR9xxx and QCA9xxx MIPS chips. |
| 39 | |
| 40 | |
Thomas Chou | 96fa1e4 | 2015-10-22 15:29:11 +0800 | [diff] [blame] | 41 | config ALTERA_TSE |
| 42 | bool "Altera Triple-Speed Ethernet MAC support" |
| 43 | depends on DM_ETH |
| 44 | select PHYLIB |
| 45 | help |
| 46 | This driver supports the Altera Triple-Speed (TSE) Ethernet MAC. |
| 47 | Please find details on the "Triple-Speed Ethernet MegaCore Function |
| 48 | Resource Center" of Altera. |
| 49 | |
Suji Velupillai | c89782d | 2017-07-10 14:05:41 -0700 | [diff] [blame] | 50 | config BCM_SF2_ETH |
| 51 | bool "Broadcom SF2 (Starfighter2) Ethernet support" |
| 52 | select PHYLIB |
| 53 | help |
| 54 | This is an abstract framework which provides a generic interface |
| 55 | to MAC and DMA management for multiple Broadcom SoCs such as |
| 56 | Cygnus, NSP and bcm28155_ap platforms. |
| 57 | |
| 58 | config BCM_SF2_ETH_DEFAULT_PORT |
| 59 | int "Broadcom SF2 (Starfighter2) Ethernet default port number" |
| 60 | depends on BCM_SF2_ETH |
| 61 | default 0 |
| 62 | help |
| 63 | Default port number for the Starfighter2 ethernet driver. |
| 64 | |
| 65 | config BCM_SF2_ETH_GMAC |
| 66 | bool "Broadcom SF2 (Starfighter2) GMAC Ethernet support" |
| 67 | depends on BCM_SF2_ETH |
| 68 | help |
| 69 | This flag enables the ethernet support for Broadcom platforms with |
| 70 | GMAC such as Cygnus. This driver is based on the framework provided |
| 71 | by the BCM_SF2_ETH driver. |
| 72 | Say Y to any bcmcygnus based platforms. |
| 73 | |
Stephen Warren | ba4dfef | 2016-10-21 14:46:47 -0600 | [diff] [blame] | 74 | config DWC_ETH_QOS |
| 75 | bool "Synopsys DWC Ethernet QOS device support" |
| 76 | depends on DM_ETH |
| 77 | select PHYLIB |
| 78 | help |
| 79 | This driver supports the Synopsys Designware Ethernet QOS (Quality |
| 80 | Of Service) IP block. The IP supports many options for bus type, |
| 81 | clocking/reset structure, and feature list. This driver currently |
| 82 | supports the specific configuration used in NVIDIA's Tegra186 chip, |
| 83 | but should be extensible to other combinations quite easily. |
| 84 | |
Simon Glass | c294ac5 | 2015-08-19 09:33:41 -0600 | [diff] [blame] | 85 | config E1000 |
| 86 | bool "Intel PRO/1000 Gigabit Ethernet support" |
| 87 | help |
| 88 | This driver supports Intel(R) PRO/1000 gigabit ethernet family of |
| 89 | adapters. For more information on how to identify your adapter, go |
| 90 | to the Adapter & Driver ID Guide at: |
| 91 | |
| 92 | <http://support.intel.com/support/network/adapter/pro100/21397.htm> |
| 93 | |
| 94 | config E1000_SPI_GENERIC |
| 95 | bool "Allow access to the Intel 8257x SPI bus" |
| 96 | depends on E1000 |
| 97 | help |
| 98 | Allow generic access to the SPI bus on the Intel 8257x, for |
| 99 | example with the "sspi" command. |
| 100 | |
| 101 | config E1000_SPI |
| 102 | bool "Enable SPI bus utility code" |
| 103 | depends on E1000 |
| 104 | help |
| 105 | Utility code for direct access to the SPI bus on Intel 8257x. |
| 106 | This does not do anything useful unless you set at least one |
| 107 | of CONFIG_CMD_E1000 or CONFIG_E1000_SPI_GENERIC. |
| 108 | |
| 109 | config CMD_E1000 |
| 110 | bool "Enable the e1000 command" |
| 111 | depends on E1000 |
| 112 | help |
| 113 | This enables the 'e1000' management command for E1000 devices. When |
| 114 | used on devices with SPI support you can reprogram the EEPROM from |
| 115 | U-Boot. |
| 116 | |
Joe Hershberger | 3ea143a | 2015-03-22 17:09:13 -0500 | [diff] [blame] | 117 | config ETH_SANDBOX |
| 118 | depends on DM_ETH && SANDBOX |
| 119 | default y |
| 120 | bool "Sandbox: Mocked Ethernet driver" |
| 121 | help |
| 122 | This driver simply responds with fake ARP replies and ping |
| 123 | replies that are used to verify network stack functionality |
| 124 | |
| 125 | This driver is particularly useful in the test/dm/eth.c tests |
| 126 | |
Joe Hershberger | a346ca7 | 2015-03-22 17:09:21 -0500 | [diff] [blame] | 127 | config ETH_SANDBOX_RAW |
| 128 | depends on DM_ETH && SANDBOX |
| 129 | default y |
| 130 | bool "Sandbox: Bridge to Linux Raw Sockets" |
| 131 | help |
| 132 | This driver is a bridge from the bottom of the network stack |
| 133 | in U-Boot to the RAW AF_PACKET API in Linux. This allows real |
| 134 | network traffic to be tested from within sandbox. See |
| 135 | board/sandbox/README.sandbox for more details. |
| 136 | |
Simon Glass | ef48f6d | 2015-04-05 16:07:34 -0600 | [diff] [blame] | 137 | config ETH_DESIGNWARE |
| 138 | bool "Synopsys Designware Ethernet MAC" |
Thomas Chou | 25af71c | 2015-12-07 20:53:29 +0800 | [diff] [blame] | 139 | select PHYLIB |
Simon Glass | ef48f6d | 2015-04-05 16:07:34 -0600 | [diff] [blame] | 140 | help |
| 141 | This MAC is present in SoCs from various vendors. It supports |
| 142 | 100Mbit and 1 Gbit operation. You must enable CONFIG_PHYLIB to |
| 143 | provide the PHY (physical media interface). |
| 144 | |
Max Filippov | f072712 | 2016-08-05 18:26:15 +0300 | [diff] [blame] | 145 | config ETHOC |
| 146 | bool "OpenCores 10/100 Mbps Ethernet MAC" |
| 147 | help |
| 148 | This MAC is present in OpenRISC and Xtensa XTFPGA boards. |
| 149 | |
Jagan Teki | 97d29ca | 2016-10-08 18:00:12 +0530 | [diff] [blame] | 150 | config FEC_MXC |
| 151 | bool "FEC Ethernet controller" |
Patrick Bruenn | 98d62e6 | 2016-11-04 11:57:02 +0100 | [diff] [blame] | 152 | depends on MX5 || MX6 |
Jagan Teki | 97d29ca | 2016-10-08 18:00:12 +0530 | [diff] [blame] | 153 | help |
| 154 | This driver supports the 10/100 Fast Ethernet controller for |
| 155 | NXP i.MX processors. |
| 156 | |
Tom Rini | 8dc1b17 | 2017-05-26 11:18:53 -0400 | [diff] [blame] | 157 | config FTMAC100 |
| 158 | bool "Ftmac100 Ethernet Support" |
| 159 | help |
| 160 | This MAC is present in Andestech SoCs. |
| 161 | |
Chris Packham | 7654f62 | 2017-08-21 20:17:03 +1200 | [diff] [blame] | 162 | config MVNETA |
Miquel Raynal | e7ab2cc | 2017-12-28 15:43:09 +0100 | [diff] [blame] | 163 | bool "Marvell Armada XP/385/3700 network interface support" |
| 164 | depends on ARMADA_XP || ARMADA_38X || ARMADA_3700 |
Chris Packham | 7654f62 | 2017-08-21 20:17:03 +1200 | [diff] [blame] | 165 | select PHYLIB |
| 166 | help |
| 167 | This driver supports the network interface units in the |
Miquel Raynal | e7ab2cc | 2017-12-28 15:43:09 +0100 | [diff] [blame] | 168 | Marvell ARMADA XP, ARMADA 38X and ARMADA 3700 SoCs |
Chris Packham | 7654f62 | 2017-08-21 20:17:03 +1200 | [diff] [blame] | 169 | |
Stefan Roese | 99d4c6d | 2016-02-10 07:22:10 +0100 | [diff] [blame] | 170 | config MVPP2 |
Stefan Roese | e7935c4 | 2017-02-15 11:42:59 +0100 | [diff] [blame] | 171 | bool "Marvell Armada 375/7K/8K network interface support" |
| 172 | depends on ARMADA_375 || ARMADA_8K |
Stefan Roese | 99d4c6d | 2016-02-10 07:22:10 +0100 | [diff] [blame] | 173 | select PHYLIB |
| 174 | help |
| 175 | This driver supports the network interface units in the |
Stefan Roese | e7935c4 | 2017-02-15 11:42:59 +0100 | [diff] [blame] | 176 | Marvell ARMADA 375, 7K and 8K SoCs. |
Stefan Roese | 99d4c6d | 2016-02-10 07:22:10 +0100 | [diff] [blame] | 177 | |
Wenyou Yang | ebcb40a | 2016-11-02 10:06:55 +0800 | [diff] [blame] | 178 | config MACB |
| 179 | bool "Cadence MACB/GEM Ethernet Interface" |
| 180 | depends on DM_ETH |
| 181 | select PHYLIB |
| 182 | help |
| 183 | The Cadence MACB ethernet interface is found on many Atmel |
| 184 | AT91 and SAMA5 parts. This driver also supports the Cadence |
| 185 | GEM (Gigabit Ethernet MAC) found in some ARM SoC devices. |
| 186 | Say Y to include support for the MACB/GEM chip. |
| 187 | |
Wilson Lee | 4bf5691 | 2017-08-22 20:25:07 -0700 | [diff] [blame] | 188 | config MACB_ZYNQ |
| 189 | bool "Cadence MACB/GEM Ethernet Interface for Xilinx Zynq" |
| 190 | depends on MACB |
| 191 | help |
| 192 | The Cadence MACB ethernet interface was used on Zynq platform. |
| 193 | Say Y to enable support for the MACB/GEM in Zynq chip. |
| 194 | |
Bin Meng | b68fe15 | 2015-08-27 22:25:58 -0700 | [diff] [blame] | 195 | config PCH_GBE |
| 196 | bool "Intel Platform Controller Hub EG20T GMAC driver" |
| 197 | depends on DM_ETH && DM_PCI |
| 198 | select PHYLIB |
| 199 | help |
| 200 | This MAC is present in Intel Platform Controller Hub EG20T. It |
| 201 | supports 10/100/1000 Mbps operation. |
| 202 | |
Mylène Josserand | 751b0be | 2017-04-02 12:59:08 +0200 | [diff] [blame] | 203 | config RGMII |
| 204 | bool "Enable RGMII" |
| 205 | help |
| 206 | Enable the support of the Reduced Gigabit Media-Independent |
| 207 | Interface (RGMII). |
| 208 | |
Bin Meng | 86e9dc8 | 2016-03-21 06:47:41 -0700 | [diff] [blame] | 209 | config RTL8139 |
| 210 | bool "Realtek 8139 series Ethernet controller driver" |
| 211 | help |
| 212 | This driver supports Realtek 8139 series fast ethernet family of |
| 213 | PCI chipsets/adapters. |
| 214 | |
Bin Meng | 0764f24 | 2016-03-21 06:47:42 -0700 | [diff] [blame] | 215 | config RTL8169 |
| 216 | bool "Realtek 8169 series Ethernet controller driver" |
| 217 | help |
| 218 | This driver supports Realtek 8169 series gigabit ethernet family of |
| 219 | PCI/PCIe chipsets/adapters. |
| 220 | |
Adam Ford | 8daec2d | 2017-09-05 15:20:44 -0500 | [diff] [blame] | 221 | config SMC911X |
| 222 | bool "SMSC LAN911x and LAN921x controller driver" |
| 223 | |
| 224 | if SMC911X |
| 225 | |
| 226 | config SMC911X_BASE |
| 227 | hex "SMC911X Base Address" |
| 228 | help |
| 229 | Define this to hold the physical address |
| 230 | of the device (I/O space) |
| 231 | |
| 232 | choice |
| 233 | prompt "SMC911X bus width" |
| 234 | default SMC911X_16_BIT |
| 235 | |
| 236 | config SMC911X_32_BIT |
| 237 | bool "Enable 32-bit interface" |
| 238 | |
| 239 | config SMC911X_16_BIT |
| 240 | bool "Enable 16-bit interface" |
| 241 | help |
| 242 | Define this if data bus is 16 bits. If your processor |
| 243 | automatically converts one 32 bit word to two 16 bit |
| 244 | words you may also try CONFIG_SMC911X_32_BIT. |
| 245 | |
| 246 | endchoice |
| 247 | endif #SMC911X |
| 248 | |
Mylène Josserand | 4d43d06 | 2017-04-02 12:59:03 +0200 | [diff] [blame] | 249 | config SUN7I_GMAC |
| 250 | bool "Enable Allwinner GMAC Ethernet support" |
| 251 | help |
| 252 | Enable the support for Sun7i GMAC Ethernet controller |
| 253 | |
Stefan Mavrodiev | aba3924 | 2017-11-03 08:56:51 +0200 | [diff] [blame] | 254 | config SUN7I_GMAC_FORCE_TXERR |
| 255 | bool "Force PA17 as gmac function" |
| 256 | depends on SUN7I_GMAC |
| 257 | help |
| 258 | Some ethernet phys needs TXERR control. Since the GMAC |
| 259 | doesn't have such signal, setting PA17 as GMAC function |
| 260 | makes the pin output low, which enables data transmission. |
| 261 | |
Mylène Josserand | abc3e4d | 2017-04-02 12:59:07 +0200 | [diff] [blame] | 262 | config SUN4I_EMAC |
| 263 | bool "Allwinner Sun4i Ethernet MAC support" |
| 264 | depends on DM_ETH |
Artturi Alm | 6270a3f | 2017-11-08 05:08:58 +0200 | [diff] [blame] | 265 | select PHYLIB |
Mylène Josserand | abc3e4d | 2017-04-02 12:59:07 +0200 | [diff] [blame] | 266 | help |
| 267 | This driver supports the Allwinner based SUN4I Ethernet MAC. |
| 268 | |
Amit Singh Tomar | a29710c | 2016-07-06 17:59:44 +0530 | [diff] [blame] | 269 | config SUN8I_EMAC |
| 270 | bool "Allwinner Sun8i Ethernet MAC support" |
| 271 | depends on DM_ETH |
| 272 | select PHYLIB |
Philipp Tomsich | 449ea2c | 2017-03-26 18:50:23 +0200 | [diff] [blame] | 273 | select PHY_GIGE |
Amit Singh Tomar | a29710c | 2016-07-06 17:59:44 +0530 | [diff] [blame] | 274 | help |
| 275 | This driver supports the Allwinner based SUN8I/SUN50I Ethernet MAC. |
| 276 | It can be found in H3/A64/A83T based SoCs and compatible with both |
Tom Rini | 7131d2d | 2017-02-20 09:38:03 -0500 | [diff] [blame] | 277 | External and Internal PHYs. |
Amit Singh Tomar | a29710c | 2016-07-06 17:59:44 +0530 | [diff] [blame] | 278 | |
Michal Simek | 338a5f2 | 2015-12-09 16:54:42 +0100 | [diff] [blame] | 279 | config XILINX_AXIEMAC |
| 280 | depends on DM_ETH && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP) |
| 281 | select PHYLIB |
| 282 | select MII |
| 283 | bool "Xilinx AXI Ethernet" |
| 284 | help |
| 285 | This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs. |
| 286 | |
Michal Simek | 3229c86 | 2015-12-11 09:41:49 +0100 | [diff] [blame] | 287 | config XILINX_EMACLITE |
Zubair Lutfullah Kakakhel | 2f1f05f | 2016-07-27 12:25:09 +0100 | [diff] [blame] | 288 | depends on DM_ETH && (MICROBLAZE || ARCH_ZYNQ || ARCH_ZYNQMP || MIPS) |
Michal Simek | 3229c86 | 2015-12-11 09:41:49 +0100 | [diff] [blame] | 289 | select PHYLIB |
| 290 | select MII |
| 291 | bool "Xilinx Ethernetlite" |
| 292 | help |
| 293 | This MAC is present in Xilinx Microblaze, Zynq and ZynqMP SoCs. |
| 294 | |
Michal Simek | 596e578 | 2015-11-30 14:34:52 +0100 | [diff] [blame] | 295 | config ZYNQ_GEM |
| 296 | depends on DM_ETH && (ARCH_ZYNQ || ARCH_ZYNQMP) |
Michal Simek | 7bccc75 | 2015-12-11 09:14:31 +0100 | [diff] [blame] | 297 | select PHYLIB |
Michal Simek | 596e578 | 2015-11-30 14:34:52 +0100 | [diff] [blame] | 298 | bool "Xilinx Ethernet GEM" |
| 299 | help |
Michal Simek | c942810 | 2015-12-09 16:53:52 +0100 | [diff] [blame] | 300 | This MAC is present in Xilinx Zynq and ZynqMP SoCs. |
Michal Simek | 596e578 | 2015-11-30 14:34:52 +0100 | [diff] [blame] | 301 | |
Purna Chandra Mandal | 23e7578 | 2016-01-28 15:30:21 +0530 | [diff] [blame] | 302 | config PIC32_ETH |
| 303 | bool "Microchip PIC32 Ethernet Support" |
| 304 | depends on DM_ETH && MACH_PIC32 |
| 305 | select PHYLIB |
| 306 | help |
| 307 | This driver implements 10/100 Mbps Ethernet and MAC layer for |
| 308 | Microchip PIC32 microcontrollers. |
| 309 | |
Sjoerd Simons | 0125bcf | 2017-01-11 11:46:11 +0100 | [diff] [blame] | 310 | config GMAC_ROCKCHIP |
| 311 | bool "Rockchip Synopsys Designware Ethernet MAC" |
| 312 | depends on DM_ETH && ETH_DESIGNWARE |
| 313 | help |
| 314 | This driver provides Rockchip SoCs network support based on the |
| 315 | Synopsys Designware driver. |
| 316 | |
Marek Vasut | 8ae51b6 | 2017-05-13 15:54:28 +0200 | [diff] [blame] | 317 | config RENESAS_RAVB |
| 318 | bool "Renesas Ethernet AVB MAC" |
| 319 | depends on DM_ETH && RCAR_GEN3 |
| 320 | select PHYLIB |
| 321 | help |
| 322 | This driver implements support for the Ethernet AVB block in |
| 323 | Renesas M3 and H3 SoCs. |
| 324 | |
Christophe Leroy | fad51ac | 2017-07-06 10:33:23 +0200 | [diff] [blame] | 325 | config MPC8XX_FEC |
| 326 | bool "Fast Ethernet Controller on MPC8XX" |
| 327 | depends on 8xx |
| 328 | select MII |
| 329 | help |
| 330 | This driver implements support for the Fast Ethernet Controller |
| 331 | on MPC8XX |
| 332 | |
| 333 | config ETHER_ON_FEC1 |
| 334 | bool "FEC1" |
| 335 | depends on MPC8XX_FEC |
| 336 | default y |
| 337 | |
| 338 | config FEC1_PHY |
| 339 | int "FEC1 PHY" |
| 340 | depends on ETHER_ON_FEC1 |
| 341 | default -1 |
| 342 | help |
| 343 | Define to the hardcoded PHY address which corresponds |
| 344 | to the given FEC; i. e. |
| 345 | #define CONFIG_FEC1_PHY 4 |
| 346 | means that the PHY with address 4 is connected to FEC1 |
| 347 | |
| 348 | When set to -1, means to probe for first available. |
| 349 | |
| 350 | config PHY_NORXERR |
| 351 | bool "PHY_NORXERR" |
| 352 | depends on ETHER_ON_FEC1 |
| 353 | default n |
| 354 | help |
| 355 | The PHY does not have a RXERR line (RMII only). |
| 356 | (so program the FEC to ignore it). |
| 357 | |
| 358 | config ETHER_ON_FEC2 |
| 359 | bool "FEC2" |
| 360 | depends on MPC8XX_FEC && MPC885 |
| 361 | default y |
| 362 | |
| 363 | config FEC2_PHY |
| 364 | int "FEC2 PHY" |
| 365 | depends on ETHER_ON_FEC2 |
| 366 | default -1 |
| 367 | help |
| 368 | Define to the hardcoded PHY address which corresponds |
| 369 | to the given FEC; i. e. |
| 370 | #define CONFIG_FEC1_PHY 4 |
| 371 | means that the PHY with address 4 is connected to FEC1 |
| 372 | |
| 373 | When set to -1, means to probe for first available. |
| 374 | |
| 375 | config FEC2_PHY_NORXERR |
| 376 | bool "PHY_NORXERR" |
| 377 | depends on ETHER_ON_FEC2 |
| 378 | default n |
| 379 | help |
| 380 | The PHY does not have a RXERR line (RMII only). |
| 381 | (so program the FEC to ignore it). |
| 382 | |
Ahmed Mansour | 541d576 | 2017-12-15 16:01:01 -0500 | [diff] [blame] | 383 | config SYS_DPAA_QBMAN |
| 384 | bool "Device tree fixup for QBMan on freescale SOCs" |
| 385 | depends on (ARM || PPC) && !SPL_BUILD |
| 386 | default y if ARCH_B4860 || \ |
| 387 | ARCH_B4420 || \ |
| 388 | ARCH_P1023 || \ |
| 389 | ARCH_P2041 || \ |
| 390 | ARCH_T1023 || \ |
| 391 | ARCH_T1024 || \ |
| 392 | ARCH_T1040 || \ |
| 393 | ARCH_T1042 || \ |
| 394 | ARCH_T2080 || \ |
| 395 | ARCH_T2081 || \ |
| 396 | ARCH_T4240 || \ |
| 397 | ARCH_T4160 || \ |
| 398 | ARCH_P4080 || \ |
| 399 | ARCH_P3041 || \ |
| 400 | ARCH_P5040 || \ |
| 401 | ARCH_P5020 || \ |
| 402 | ARCH_LS1043A || \ |
| 403 | ARCH_LS1046A |
| 404 | help |
| 405 | QBman fixups to allow deep sleep in DPAA 1 SOCs |
| 406 | |
Joe Hershberger | 3ea143a | 2015-03-22 17:09:13 -0500 | [diff] [blame] | 407 | endif # NETDEVICES |