1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #ifndef _INTELXLVF_H
- #define _INTELXLVF_H
-
- /** @file
- *
- * Intel 40 Gigabit Ethernet virtual function network card driver
- *
- */
-
- FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
-
- #include "intelxl.h"
-
- /** BAR size */
- #define INTELXLVF_BAR_SIZE 0x10000
-
- /** Transmit Queue Tail Register */
- #define INTELXLVF_QTX_TAIL 0x00000
-
- /** Receive Queue Tail Register */
- #define INTELXLVF_QRX_TAIL 0x02000
-
- /** VF Interrupt Zero Dynamic Control Register */
- #define INTELXLVF_VFINT_DYN_CTL0 0x5c00
-
- /** VF Admin Queue register block */
- #define INTELXLVF_ADMIN 0x6000
-
- /** Admin Command Queue Base Address Low Register (offset) */
- #define INTELXLVF_ADMIN_CMD_BAL 0x1c00
-
- /** Admin Command Queue Base Address High Register (offset) */
- #define INTELXLVF_ADMIN_CMD_BAH 0x1800
-
- /** Admin Command Queue Length Register (offset) */
- #define INTELXLVF_ADMIN_CMD_LEN 0x0800
-
- /** Admin Command Queue Head Register (offset) */
- #define INTELXLVF_ADMIN_CMD_HEAD 0x0400
-
- /** Admin Command Queue Tail Register (offset) */
- #define INTELXLVF_ADMIN_CMD_TAIL 0x2400
-
- /** Admin Event Queue Base Address Low Register (offset) */
- #define INTELXLVF_ADMIN_EVT_BAL 0x0c00
-
- /** Admin Event Queue Base Address High Register (offset) */
- #define INTELXLVF_ADMIN_EVT_BAH 0x0000
-
- /** Admin Event Queue Length Register (offset) */
- #define INTELXLVF_ADMIN_EVT_LEN 0x2000
-
- /** Admin Event Queue Head Register (offset) */
- #define INTELXLVF_ADMIN_EVT_HEAD 0x1400
-
- /** Admin Event Queue Tail Register (offset) */
- #define INTELXLVF_ADMIN_EVT_TAIL 0x1000
-
- /** Maximum time to wait for a VF admin request to complete */
- #define INTELXLVF_ADMIN_MAX_WAIT_MS 2000
-
- /** VF Reset Status Register */
- #define INTELXLVF_VFGEN_RSTAT 0x8800
- #define INTELXLVF_VFGEN_RSTAT_VFR_STATE(x) ( (x) & 0x3 )
- #define INTELXLVF_VFGEN_RSTAT_VFR_STATE_ACTIVE 0x2
-
- /** Maximum time to wait for reset to complete */
- #define INTELXLVF_RESET_MAX_WAIT_MS 1000
-
- /**
- * Initialise descriptor ring
- *
- * @v ring Descriptor ring
- * @v count Number of descriptors
- * @v len Length of a single descriptor
- * @v tail Tail register offset
- */
- static inline __attribute__ (( always_inline)) void
- intelxlvf_init_ring ( struct intelxl_ring *ring, unsigned int count,
- size_t len, unsigned int tail ) {
-
- ring->len = ( count * len );
- ring->tail = tail;
- }
-
- #endif /* _INTELXLVF_H */
|