| @@ -1,18 +1,18 @@ | | | @@ -1,18 +1,18 @@ |
1 | /* $NetBSD: if_cnmac.c,v 1.5 2016/12/15 09:28:03 ozaki-r Exp $ */ | | 1 | /* $NetBSD: if_cnmac.c,v 1.5.8.1 2017/11/27 14:09:11 martin Exp $ */ |
2 | | | 2 | |
3 | #include <sys/cdefs.h> | | 3 | #include <sys/cdefs.h> |
4 | #if 0 | | 4 | #if 0 |
5 | __KERNEL_RCSID(0, "$NetBSD: if_cnmac.c,v 1.5 2016/12/15 09:28:03 ozaki-r Exp $"); | | 5 | __KERNEL_RCSID(0, "$NetBSD: if_cnmac.c,v 1.5.8.1 2017/11/27 14:09:11 martin Exp $"); |
6 | #endif | | 6 | #endif |
7 | | | 7 | |
8 | #include "opt_octeon.h" | | 8 | #include "opt_octeon.h" |
9 | | | 9 | |
10 | #ifdef OCTEON_ETH_DEBUG | | 10 | #ifdef OCTEON_ETH_DEBUG |
11 | | | 11 | |
12 | #ifndef DIAGNOSTIC | | 12 | #ifndef DIAGNOSTIC |
13 | #define DIAGNOSTIC | | 13 | #define DIAGNOSTIC |
14 | #endif | | 14 | #endif |
15 | | | 15 | |
16 | #ifndef DEBUG | | 16 | #ifndef DEBUG |
17 | #define DEBUG | | 17 | #define DEBUG |
18 | #endif | | 18 | #endif |
| @@ -356,26 +356,29 @@ octeon_eth_attach(device_t parent, devic | | | @@ -356,26 +356,29 @@ octeon_eth_attach(device_t parent, devic |
356 | ifp->if_ioctl = octeon_eth_ioctl; | | 356 | ifp->if_ioctl = octeon_eth_ioctl; |
357 | ifp->if_start = octeon_eth_start; | | 357 | ifp->if_start = octeon_eth_start; |
358 | ifp->if_watchdog = octeon_eth_watchdog; | | 358 | ifp->if_watchdog = octeon_eth_watchdog; |
359 | ifp->if_init = octeon_eth_init; | | 359 | ifp->if_init = octeon_eth_init; |
360 | ifp->if_stop = octeon_eth_stop; | | 360 | ifp->if_stop = octeon_eth_stop; |
361 | IFQ_SET_MAXLEN(&ifp->if_snd, max(GATHER_QUEUE_SIZE, IFQ_MAXLEN)); | | 361 | IFQ_SET_MAXLEN(&ifp->if_snd, max(GATHER_QUEUE_SIZE, IFQ_MAXLEN)); |
362 | IFQ_SET_READY(&ifp->if_snd); | | 362 | IFQ_SET_READY(&ifp->if_snd); |
363 | | | 363 | |
364 | /* XXX: not yet tx checksum */ | | 364 | /* XXX: not yet tx checksum */ |
365 | ifp->if_capabilities = | | 365 | ifp->if_capabilities = |
366 | IFCAP_CSUM_IPv4_Rx | IFCAP_CSUM_TCPv4_Rx | IFCAP_CSUM_UDPv4_Rx | | | 366 | IFCAP_CSUM_IPv4_Rx | IFCAP_CSUM_TCPv4_Rx | IFCAP_CSUM_UDPv4_Rx | |
367 | IFCAP_CSUM_TCPv6_Rx | IFCAP_CSUM_UDPv6_Rx; | | 367 | IFCAP_CSUM_TCPv6_Rx | IFCAP_CSUM_UDPv6_Rx; |
368 | | | 368 | |
| | | 369 | /* 802.1Q VLAN-sized frames are supported */ |
| | | 370 | sc->sc_ethercom.ec_capabilities |= ETHERCAP_VLAN_MTU; |
| | | 371 | |
369 | octeon_gmx_set_mac_addr(sc->sc_gmx_port, enaddr); | | 372 | octeon_gmx_set_mac_addr(sc->sc_gmx_port, enaddr); |
370 | octeon_gmx_set_filter(sc->sc_gmx_port); | | 373 | octeon_gmx_set_filter(sc->sc_gmx_port); |
371 | | | 374 | |
372 | if_attach(ifp); | | 375 | if_attach(ifp); |
373 | ether_ifattach(ifp, enaddr); | | 376 | ether_ifattach(ifp, enaddr); |
374 | | | 377 | |
375 | /* XXX */ | | 378 | /* XXX */ |
376 | sc->sc_rate_recv_check_link_cap.tv_sec = 1; | | 379 | sc->sc_rate_recv_check_link_cap.tv_sec = 1; |
377 | sc->sc_rate_recv_check_jumbo_cap.tv_sec = 1; | | 380 | sc->sc_rate_recv_check_jumbo_cap.tv_sec = 1; |
378 | sc->sc_rate_recv_check_code_cap.tv_sec = 1; | | 381 | sc->sc_rate_recv_check_code_cap.tv_sec = 1; |
379 | sc->sc_rate_recv_fixup_odd_nibble_short_cap.tv_sec = 1; | | 382 | sc->sc_rate_recv_fixup_odd_nibble_short_cap.tv_sec = 1; |
380 | sc->sc_rate_recv_fixup_odd_nibble_preamble_cap.tv_sec = 1; | | 383 | sc->sc_rate_recv_fixup_odd_nibble_preamble_cap.tv_sec = 1; |
381 | sc->sc_rate_recv_fixup_odd_nibble_crc_cap.tv_sec = 1; | | 384 | sc->sc_rate_recv_fixup_odd_nibble_crc_cap.tv_sec = 1; |