|
iPXE
|
Intel 10 Gigabit Ethernet network card driver. More...
Go to the source code of this file.
Macros | |
| #define | INTELX_CTRL 0x00000UL |
| Device Control Register. | |
| #define | INTELX_CTRL_LRST 0x00000008UL |
| Link reset. | |
| #define | INTELX_CTRL_RST 0x04000000UL |
| Device reset. | |
| #define | INTELX_RESET_DELAY_MS 20 |
| Time to delay for device reset, in milliseconds. | |
| #define | INTELX_EICR 0x00800UL |
| Extended Interrupt Cause Read Register. | |
| #define | INTELX_EIRQ_RX0 0x00000001UL |
| RX0 (via IVAR) | |
| #define | INTELX_EIRQ_TX0 0x00000002UL |
| RX0 (via IVAR) | |
| #define | INTELX_EIRQ_RXO 0x00020000UL |
| Receive overrun. | |
| #define | INTELX_EIRQ_LSC 0x00100000UL |
| Link status change. | |
| #define | INTELX_EIMS 0x00880UL |
| Interrupt Mask Set/Read Register. | |
| #define | INTELX_EIMC 0x00888UL |
| Interrupt Mask Clear Register. | |
| #define | INTELX_IVAR 0x00900UL |
| Interrupt Vector Allocation Register. | |
| #define | INTELX_IVAR_RX0(bit) |
| RX queue 0 allocation. | |
| #define | INTELX_IVAR_RX0_DEFAULT INTELX_IVAR_RX0 ( 0x00 ) |
| #define | INTELX_IVAR_RX0_MASK INTELX_IVAR_RX0 ( 0x3f ) |
| #define | INTELX_IVAR_RX0_VALID 0x00000080UL |
| RX queue 0 valid. | |
| #define | INTELX_IVAR_TX0(bit) |
| TX queue 0 allocation. | |
| #define | INTELX_IVAR_TX0_DEFAULT INTELX_IVAR_TX0 ( 0x01 ) |
| #define | INTELX_IVAR_TX0_MASK INTELX_IVAR_TX0 ( 0x3f ) |
| #define | INTELX_IVAR_TX0_VALID 0x00008000UL |
| TX queue 0 valid. | |
| #define | INTELX_FCTRL 0x05080UL |
| Receive Filter Control Register. | |
| #define | INTELX_FCTRL_MPE 0x00000100UL |
| Multicast promiscuous. | |
| #define | INTELX_FCTRL_UPE 0x00000200UL |
| Unicast promiscuous mode. | |
| #define | INTELX_FCTRL_BAM 0x00000400UL |
| Broadcast accept mode. | |
| #define | INTELX_RAL0 0x05400UL |
| Receive Address Low. | |
| #define | INTELX_RAL0_ALT 0x0a200UL |
| #define | INTELX_RAH0 0x05404UL |
| Receive Address High. | |
| #define | INTELX_RAH0_ALT 0x0a204UL |
| #define | INTELX_RAH0_AV 0x80000000UL |
| Address valid. | |
| #define | INTELX_RD 0x01000UL |
| Receive Descriptor register block. | |
| #define | INTELX_RXDCTL_VME 0x40000000UL |
| Receive Descriptor Control Register. | |
| #define | INTELX_SRRCTL 0x02100UL |
| Split Receive Control Register. | |
| #define | INTELX_SRRCTL_BSIZE(kb) |
| Receive buffer size. | |
| #define | INTELX_SRRCTL_BSIZE_DEFAULT INTELX_SRRCTL_BSIZE ( 0x02 ) |
| #define | INTELX_SRRCTL_BSIZE_MASK INTELX_SRRCTL_BSIZE ( 0x1f ) |
| #define | INTELX_RDRXCTL 0x02f00UL |
| Receive DMA Control Register. | |
| #define | INTELX_RDRXCTL_SECRC 0x00000001UL |
| Strip CRC. | |
| #define | INTELX_RXCTRL 0x03000UL |
| Receive Control Register. | |
| #define | INTELX_RXCTRL_RXEN 0x00000001UL |
| Receive enable. | |
| #define | INTELX_DMATXCTL 0x04a80UL |
| Transmit DMA Control Register. | |
| #define | INTELX_DMATXCTL_TE 0x00000001UL |
| Transmit enable. | |
| #define | INTELX_TD 0x06000UL |
| Transmit Descriptor register block. | |
| #define | INTELX_DCA_RXCTRL 0x02200UL |
| RX DCA Control Register. | |
| #define | INTELX_DCA_RXCTRL_MUST_BE_ZERO 0x00001000UL |
| Must be zero. | |
| #define | INTELX_HLREG0 0x04240UL |
| MAC Core Control 0 Register. | |
| #define | INTELX_HLREG0_JUMBOEN 0x00000004UL |
| Jumbo frame enable. | |
| #define | INTELX_MAXFRS 0x04268UL |
| Maximum Frame Size Register. | |
| #define | INTELX_MAXFRS_MFS(len) |
| Maximum frame size. | |
| #define | INTELX_MAXFRS_MFS_DEFAULT INTELX_MAXFRS_MFS ( ETH_FRAME_LEN + 4 /* VLAN */ + 4 /* CRC */ ) |
| #define | INTELX_MAXFRS_MFS_MASK INTELX_MAXFRS_MFS ( 0xffff ) |
| #define | INTELX_LINKS 0x042a4UL |
| Link Status Register. | |
| #define | INTELX_LINKS_UP 0x40000000UL |
| Link up. | |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
| FILE_SECBOOT (PERMITTED) | |
Intel 10 Gigabit Ethernet network card driver.
Definition in file intelx.h.
| #define INTELX_CTRL 0x00000UL |
| #define INTELX_CTRL_LRST 0x00000008UL |
| #define INTELX_CTRL_RST 0x04000000UL |
| #define INTELX_RESET_DELAY_MS 20 |
Time to delay for device reset, in milliseconds.
Definition at line 23 of file intelx.h.
Referenced by intelx_reset().
| #define INTELX_EICR 0x00800UL |
Extended Interrupt Cause Read Register.
Definition at line 26 of file intelx.h.
Referenced by intelx_poll().
| #define INTELX_EIRQ_RX0 0x00000001UL |
RX0 (via IVAR)
Definition at line 27 of file intelx.h.
Referenced by intelx_irq(), and intelx_poll().
| #define INTELX_EIRQ_TX0 0x00000002UL |
RX0 (via IVAR)
Definition at line 28 of file intelx.h.
Referenced by intelx_irq(), and intelx_poll().
| #define INTELX_EIRQ_RXO 0x00020000UL |
Receive overrun.
Definition at line 29 of file intelx.h.
Referenced by intelx_irq(), and intelx_poll().
| #define INTELX_EIRQ_LSC 0x00100000UL |
Link status change.
Definition at line 30 of file intelx.h.
Referenced by intelx_irq(), and intelx_poll().
| #define INTELX_EIMS 0x00880UL |
Interrupt Mask Set/Read Register.
Definition at line 33 of file intelx.h.
Referenced by intelx_irq().
| #define INTELX_EIMC 0x00888UL |
| #define INTELX_IVAR 0x00900UL |
Interrupt Vector Allocation Register.
Definition at line 39 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_IVAR_RX0_DEFAULT INTELX_IVAR_RX0 ( 0x00 ) |
Definition at line 41 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_IVAR_RX0_MASK INTELX_IVAR_RX0 ( 0x3f ) |
| #define INTELX_IVAR_RX0_VALID 0x00000080UL |
| #define INTELX_IVAR_TX0 | ( | bit | ) |
| #define INTELX_IVAR_TX0_DEFAULT INTELX_IVAR_TX0 ( 0x01 ) |
Definition at line 45 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_IVAR_TX0_MASK INTELX_IVAR_TX0 ( 0x3f ) |
| #define INTELX_IVAR_TX0_VALID 0x00008000UL |
| #define INTELX_FCTRL 0x05080UL |
Receive Filter Control Register.
Definition at line 50 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_FCTRL_MPE 0x00000100UL |
| #define INTELX_FCTRL_UPE 0x00000200UL |
| #define INTELX_FCTRL_BAM 0x00000400UL |
| #define INTELX_RAL0 0x05400UL |
Receive Address Low.
The MAC address registers RAL0/RAH0 exist at address 0x05400 for the 82598 and 0x0a200 for the 82599, according to the datasheet. In practice, the 82599 seems to also provide a copy of these registers at 0x05400. To aim for maximum compatibility, we try both addresses when reading the initial MAC address, and set both addresses when setting the MAC address.
Definition at line 64 of file intelx.h.
Referenced by intelx_fetch_mac(), intelx_open(), and intelx_try_fetch_mac().
| #define INTELX_RAL0_ALT 0x0a200UL |
Definition at line 65 of file intelx.h.
Referenced by intelx_fetch_mac(), and intelx_open().
| #define INTELX_RAH0 0x05404UL |
Receive Address High.
Definition at line 68 of file intelx.h.
Referenced by intelx_open(), and intelx_try_fetch_mac().
| #define INTELX_RAH0_ALT 0x0a204UL |
Definition at line 69 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_RAH0_AV 0x80000000UL |
| #define INTELX_RD 0x01000UL |
Receive Descriptor register block.
Definition at line 73 of file intelx.h.
Referenced by intelx_probe().
| #define INTELX_RXDCTL_VME 0x40000000UL |
Receive Descriptor Control Register.
Strip VLAN tag
Definition at line 76 of file intelx.h.
Referenced by intelxvf_open().
| #define INTELX_SRRCTL 0x02100UL |
Split Receive Control Register.
Definition at line 79 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_SRRCTL_BSIZE | ( | kb | ) |
| #define INTELX_SRRCTL_BSIZE_DEFAULT INTELX_SRRCTL_BSIZE ( 0x02 ) |
Definition at line 81 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_SRRCTL_BSIZE_MASK INTELX_SRRCTL_BSIZE ( 0x1f ) |
Definition at line 82 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_RDRXCTL 0x02f00UL |
| #define INTELX_RDRXCTL_SECRC 0x00000001UL |
| #define INTELX_RXCTRL 0x03000UL |
Receive Control Register.
Definition at line 89 of file intelx.h.
Referenced by intelx_close(), and intelx_open().
| #define INTELX_RXCTRL_RXEN 0x00000001UL |
Receive enable.
Definition at line 90 of file intelx.h.
Referenced by intelx_close(), and intelx_open().
| #define INTELX_DMATXCTL 0x04a80UL |
Transmit DMA Control Register.
Definition at line 93 of file intelx.h.
Referenced by intelx_close(), and intelx_open().
| #define INTELX_DMATXCTL_TE 0x00000001UL |
Transmit enable.
Definition at line 94 of file intelx.h.
Referenced by intelx_close(), and intelx_open().
| #define INTELX_TD 0x06000UL |
Transmit Descriptor register block.
Definition at line 97 of file intelx.h.
Referenced by intelx_probe().
| #define INTELX_DCA_RXCTRL 0x02200UL |
| #define INTELX_DCA_RXCTRL_MUST_BE_ZERO 0x00001000UL |
| #define INTELX_HLREG0 0x04240UL |
| #define INTELX_HLREG0_JUMBOEN 0x00000004UL |
| #define INTELX_MAXFRS 0x04268UL |
| #define INTELX_MAXFRS_MFS_DEFAULT INTELX_MAXFRS_MFS ( ETH_FRAME_LEN + 4 /* VLAN */ + 4 /* CRC */ ) |
Definition at line 110 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_MAXFRS_MFS_MASK INTELX_MAXFRS_MFS ( 0xffff ) |
Definition at line 112 of file intelx.h.
Referenced by intelx_open().
| #define INTELX_LINKS 0x042a4UL |
| #define INTELX_LINKS_UP 0x40000000UL |
| FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
| FILE_SECBOOT | ( | PERMITTED | ) |