diff options
Diffstat (limited to 'drivers/net/netxen/netxen_nic.h')
| -rw-r--r-- | drivers/net/netxen/netxen_nic.h | 80 | 
1 files changed, 59 insertions, 21 deletions
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h index 7384f59df61..76cd1f3e9fc 100644 --- a/drivers/net/netxen/netxen_nic.h +++ b/drivers/net/netxen/netxen_nic.h @@ -53,8 +53,8 @@  #define _NETXEN_NIC_LINUX_MAJOR 4  #define _NETXEN_NIC_LINUX_MINOR 0 -#define _NETXEN_NIC_LINUX_SUBVERSION 50 -#define NETXEN_NIC_LINUX_VERSIONID  "4.0.50" +#define _NETXEN_NIC_LINUX_SUBVERSION 65 +#define NETXEN_NIC_LINUX_VERSIONID  "4.0.65"  #define NETXEN_VERSION_CODE(a, b, c)	(((a) << 24) + ((b) << 16) + (c))  #define _major(v)	(((v) >> 24) & 0xff) @@ -74,8 +74,6 @@  #define NETXEN_FLASH_TOTAL_SIZE  (NETXEN_NUM_FLASH_SECTORS \  					* NETXEN_FLASH_SECTOR_SIZE) -#define PHAN_VENDOR_ID 0x4040 -  #define RCV_DESC_RINGSIZE(rds_ring)	\  	(sizeof(struct rcv_desc) * (rds_ring)->num_desc)  #define RCV_BUFF_RINGSIZE(rds_ring)	\ @@ -117,9 +115,11 @@  #define NX_P3_B0		0x40  #define NX_P3_B1		0x41  #define NX_P3_B2		0x42 +#define NX_P3P_A0		0x50  #define NX_IS_REVISION_P2(REVISION)     (REVISION <= NX_P2_C1)  #define NX_IS_REVISION_P3(REVISION)     (REVISION >= NX_P3_A0) +#define NX_IS_REVISION_P3P(REVISION)     (REVISION >= NX_P3P_A0)  #define FIRST_PAGE_GROUP_START	0  #define FIRST_PAGE_GROUP_END	0x100000 @@ -419,6 +419,34 @@ struct status_desc {  	__le64 status_desc_data[2];  } __attribute__ ((aligned(16))); +/* UNIFIED ROMIMAGE *************************/ +#define NX_UNI_FW_MIN_SIZE		0x3eb000 +#define NX_UNI_DIR_SECT_PRODUCT_TBL	0x0 +#define NX_UNI_DIR_SECT_BOOTLD		0x6 +#define NX_UNI_DIR_SECT_FW		0x7 + +/*Offsets */ +#define NX_UNI_CHIP_REV_OFF		10 +#define NX_UNI_FLAGS_OFF		11 +#define NX_UNI_BIOS_VERSION_OFF 	12 +#define NX_UNI_BOOTLD_IDX_OFF		27 +#define NX_UNI_FIRMWARE_IDX_OFF 	29 + +struct uni_table_desc{ +	uint32_t	findex; +	uint32_t	num_entries; +	uint32_t	entry_size; +	uint32_t	reserved[5]; +}; + +struct uni_data_desc{ +	uint32_t	findex; +	uint32_t	size; +	uint32_t	reserved[5]; +}; + +/* UNIFIED ROMIMAGE *************************/ +  /* The version of the main data structure */  #define	NETXEN_BDINFO_VERSION 1 @@ -485,7 +513,15 @@ struct status_desc {  #define NX_P2_MN_ROMIMAGE	0  #define NX_P3_CT_ROMIMAGE	1  #define NX_P3_MN_ROMIMAGE	2 -#define NX_FLASH_ROMIMAGE	3 +#define NX_UNIFIED_ROMIMAGE	3 +#define NX_FLASH_ROMIMAGE	4 +#define NX_UNKNOWN_ROMIMAGE	0xff + +#define NX_P2_MN_ROMIMAGE_NAME		"nxromimg.bin" +#define NX_P3_CT_ROMIMAGE_NAME		"nx3fwct.bin" +#define NX_P3_MN_ROMIMAGE_NAME		"nx3fwmn.bin" +#define NX_UNIFIED_ROMIMAGE_NAME	"phanfw.bin" +#define NX_FLASH_ROMIMAGE_NAME		"flash"  extern char netxen_nic_driver_name[]; @@ -543,13 +579,16 @@ struct netxen_hardware_context {  	void __iomem *pci_base1;  	void __iomem *pci_base2;  	void __iomem *db_base; +	void __iomem *ocm_win_crb; +  	unsigned long db_len;  	unsigned long pci_len0; -	int qdr_sn_window; -	int ddr_mn_window; -	u32 mn_win_crb; -	u32 ms_win_crb; +	u32 ocm_win; +	u32 crb_win; + +	rwlock_t crb_lock; +	spinlock_t mem_lock;  	u8 cut_through;  	u8 revision_id; @@ -1039,6 +1078,9 @@ typedef struct {  #define LINKEVENT_LINKSPEED_MBPS	0  #define LINKEVENT_LINKSPEED_ENCODED	1 +#define AUTO_FW_RESET_ENABLED	0xEF10AF12 +#define AUTO_FW_RESET_DISABLED	0xDCBAAF12 +  /* firmware response header:   *	63:58 - message type   *	57:56 - owner @@ -1086,6 +1128,7 @@ typedef struct {  #define NETXEN_NIC_MSIX_ENABLED		0x04  #define NETXEN_NIC_LRO_ENABLED		0x08  #define NETXEN_NIC_BRIDGE_ENABLED       0X10 +#define NETXEN_NIC_DIAG_ENABLED		0x20  #define NETXEN_IS_MSI_FAMILY(adapter) \  	((adapter)->flags & (NETXEN_NIC_MSI_ENABLED | NETXEN_NIC_MSIX_ENABLED)) @@ -1115,10 +1158,6 @@ struct netxen_adapter {  	struct pci_dev *pdev;  	struct list_head mac_list; -	u32 curr_window; -	u32 crb_win; -	rwlock_t adapter_lock; -  	spinlock_t tx_clean_lock;  	u16 num_txd; @@ -1163,6 +1202,8 @@ struct netxen_adapter {  	u32 int_vec_bit;  	u32 heartbit; +	u8 mac_addr[ETH_ALEN]; +  	struct netxen_adapter_stats stats;  	struct netxen_recv_context recv_ctx; @@ -1180,11 +1221,10 @@ struct netxen_adapter {  	u32 (*crb_read)(struct netxen_adapter *, ulong);  	int (*crb_write)(struct netxen_adapter *, ulong, u32); -	int (*pci_mem_read)(struct netxen_adapter *, u64, void *, int); -	int (*pci_mem_write)(struct netxen_adapter *, u64, void *, int); +	int (*pci_mem_read)(struct netxen_adapter *, u64, u64 *); +	int (*pci_mem_write)(struct netxen_adapter *, u64, u64); -	unsigned long (*pci_set_window)(struct netxen_adapter *, -			unsigned long long); +	int (*pci_set_window)(struct netxen_adapter *, u64, u32 *);  	u32 (*io_read)(struct netxen_adapter *, void __iomem *);  	void (*io_write)(struct netxen_adapter *, void __iomem *, u32); @@ -1203,12 +1243,10 @@ struct netxen_adapter {  	struct work_struct  tx_timeout_task; -	struct net_device_stats net_stats; -  	nx_nic_intr_coalesce_t coal;  	unsigned long state; -	u32 resv5; +	__le32 file_prd_off;	/*File fw product offset*/  	u32 fw_version;  	const struct firmware *fw;  }; @@ -1271,7 +1309,7 @@ int netxen_load_firmware(struct netxen_adapter *adapter);  int netxen_need_fw_reset(struct netxen_adapter *adapter);  void netxen_request_firmware(struct netxen_adapter *adapter);  void netxen_release_firmware(struct netxen_adapter *adapter); -int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose); +int netxen_pinit_from_rom(struct netxen_adapter *adapter);  int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, int *valp);  int netxen_rom_fast_read_words(struct netxen_adapter *adapter, int addr,  |