X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_pmd_e1000%2Fe1000%2Fe1000_osdep.h;h=f1301f7f0a02934c58108b92a670cea5518d891e;hb=e1a00536c8ed65bee4e86976a0805fdc65faa741;hp=bf03bbf5f7e57835ea829fd158112b66100060cc;hpb=7ea63c1f744ee50825fdfe6b6284224c29639f1a;p=dpdk.git diff --git a/lib/librte_pmd_e1000/e1000/e1000_osdep.h b/lib/librte_pmd_e1000/e1000/e1000_osdep.h index bf03bbf5f7..f1301f7f0a 100644 --- a/lib/librte_pmd_e1000/e1000/e1000_osdep.h +++ b/lib/librte_pmd_e1000/e1000/e1000_osdep.h @@ -42,25 +42,13 @@ #include #include #include +#include #include "../e1000_logs.h" -/* Remove some compiler warnings for the files in this dir */ -#ifdef __INTEL_COMPILER -#pragma warning(disable:2259) /* conversion may lose significant bits */ -#pragma warning(disable:869) /* Parameter was never referenced */ -#pragma warning(disable:181) /* Arg incompatible with format string */ -#else -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wformat" -#pragma GCC diagnostic ignored "-Wuninitialized" -#if (((__GNUC__) >= 4) && ((__GNUC_MINOR__) >= 7)) -#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" -#endif -#endif - #define DELAY(x) rte_delay_us(x) #define usec_delay(x) DELAY(x) +#define usec_delay_irq(x) DELAY(x) #define msec_delay(x) DELAY(1000*(x)) #define msec_delay_irq(x) DELAY(1000*(x)) @@ -72,9 +60,23 @@ #define DEBUGOUT6(S, args...) DEBUGOUT(S, ##args) #define DEBUGOUT7(S, args...) DEBUGOUT(S, ##args) +#define UNREFERENCED_PARAMETER(_p) +#define UNREFERENCED_1PARAMETER(_p) +#define UNREFERENCED_2PARAMETER(_p, _q) +#define UNREFERENCED_3PARAMETER(_p, _q, _r) +#define UNREFERENCED_4PARAMETER(_p, _q, _r, _s) + #define FALSE 0 #define TRUE 1 +#define CMD_MEM_WRT_INVALIDATE 0x0010 /* BIT_4 */ + +/* Mutex used in the shared code */ +#define E1000_MUTEX uintptr_t +#define E1000_MUTEX_INIT(mutex) (*(mutex) = 0) +#define E1000_MUTEX_LOCK(mutex) (*(mutex) = 1) +#define E1000_MUTEX_UNLOCK(mutex) (*(mutex) = 0) + typedef uint64_t u64; typedef uint32_t u32; typedef uint16_t u16; @@ -108,6 +110,19 @@ static inline uint32_t e1000_read_addr(volatile void* addr) return E1000_PCI_REG(addr); } +/* Necessary defines */ +#define E1000_MRQC_ENABLE_MASK 0x00000007 +#define E1000_MRQC_RSS_FIELD_IPV6_EX 0x00080000 +#define E1000_ALL_FULL_DUPLEX ( \ + ADVERTISE_10_FULL | ADVERTISE_100_FULL | ADVERTISE_1000_FULL) + +#define M88E1543_E_PHY_ID 0x01410EA0 +#define NAHUM6LP_HW +#define ULP_SUPPORT + +#define E1000_RCTL_DTYP_MASK 0x00000C00 /* Descriptor type mask */ +#define E1000_MRQC_RSS_FIELD_IPV6_EX 0x00080000 + /* Register READ/WRITE macros */ #define E1000_READ_REG(hw, reg) \ @@ -125,6 +140,43 @@ static inline uint32_t e1000_read_addr(volatile void* addr) #define E1000_READ_REG_ARRAY_DWORD E1000_READ_REG_ARRAY #define E1000_WRITE_REG_ARRAY_DWORD E1000_WRITE_REG_ARRAY +#define E1000_ACCESS_PANIC(x, hw, reg, value) \ + rte_panic("%s:%u\t" RTE_STR(x) "(%p, 0x%x, 0x%x)", \ + __FILE__, __LINE__, (hw), (reg), (unsigned int)(value)) + +/* + * To be able to do IO write, we need to map IO BAR + * (bar 2/4 depending on device). + * Right now mapping multiple BARs is not supported by DPDK. + * Fortunatelly we need it only for legacy hw support. + */ + +#define E1000_WRITE_REG_IO(hw, reg, value) \ + E1000_WRITE_REG(hw, reg, value) + +/* + * Not implemented. + */ + +#define E1000_READ_FLASH_REG(hw, reg) \ + (E1000_ACCESS_PANIC(E1000_READ_FLASH_REG, hw, reg, 0), 0) + +#define E1000_READ_FLASH_REG16(hw, reg) \ + (E1000_ACCESS_PANIC(E1000_READ_FLASH_REG16, hw, reg, 0), 0) + +#define E1000_WRITE_FLASH_REG(hw, reg, value) \ + E1000_ACCESS_PANIC(E1000_WRITE_FLASH_REG, hw, reg, value) + +#define E1000_WRITE_FLASH_REG16(hw, reg, value) \ + E1000_ACCESS_PANIC(E1000_WRITE_FLASH_REG16, hw, reg, value) + #define STATIC static +#ifndef ETH_ADDR_LEN +#define ETH_ADDR_LEN 6 +#endif + +#define false FALSE +#define true TRUE + #endif /* _E1000_OSDEP_H_ */