diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-12-09 01:14:38 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-12-09 01:14:38 -0500 |
commit | bcd6acd51f3d4d1ada201e9bc5c40a31d6d80c71 (patch) | |
tree | 2f6dffd2d3e4dd67355a224de7e7a960335a92fd /drivers/net/netxen/netxen_nic.h | |
parent | 11c34c7deaeeebcee342cbc35e1bb2a6711b2431 (diff) | |
parent | 3ff6a468b45b5dfeb0e903e56f4eb27d34b2437c (diff) |
Merge commit 'origin/master' into next
Conflicts:
include/linux/kvm.h
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 @@ | |||
53 | 53 | ||
54 | #define _NETXEN_NIC_LINUX_MAJOR 4 | 54 | #define _NETXEN_NIC_LINUX_MAJOR 4 |
55 | #define _NETXEN_NIC_LINUX_MINOR 0 | 55 | #define _NETXEN_NIC_LINUX_MINOR 0 |
56 | #define _NETXEN_NIC_LINUX_SUBVERSION 50 | 56 | #define _NETXEN_NIC_LINUX_SUBVERSION 65 |
57 | #define NETXEN_NIC_LINUX_VERSIONID "4.0.50" | 57 | #define NETXEN_NIC_LINUX_VERSIONID "4.0.65" |
58 | 58 | ||
59 | #define NETXEN_VERSION_CODE(a, b, c) (((a) << 24) + ((b) << 16) + (c)) | 59 | #define NETXEN_VERSION_CODE(a, b, c) (((a) << 24) + ((b) << 16) + (c)) |
60 | #define _major(v) (((v) >> 24) & 0xff) | 60 | #define _major(v) (((v) >> 24) & 0xff) |
@@ -74,8 +74,6 @@ | |||
74 | #define NETXEN_FLASH_TOTAL_SIZE (NETXEN_NUM_FLASH_SECTORS \ | 74 | #define NETXEN_FLASH_TOTAL_SIZE (NETXEN_NUM_FLASH_SECTORS \ |
75 | * NETXEN_FLASH_SECTOR_SIZE) | 75 | * NETXEN_FLASH_SECTOR_SIZE) |
76 | 76 | ||
77 | #define PHAN_VENDOR_ID 0x4040 | ||
78 | |||
79 | #define RCV_DESC_RINGSIZE(rds_ring) \ | 77 | #define RCV_DESC_RINGSIZE(rds_ring) \ |
80 | (sizeof(struct rcv_desc) * (rds_ring)->num_desc) | 78 | (sizeof(struct rcv_desc) * (rds_ring)->num_desc) |
81 | #define RCV_BUFF_RINGSIZE(rds_ring) \ | 79 | #define RCV_BUFF_RINGSIZE(rds_ring) \ |
@@ -117,9 +115,11 @@ | |||
117 | #define NX_P3_B0 0x40 | 115 | #define NX_P3_B0 0x40 |
118 | #define NX_P3_B1 0x41 | 116 | #define NX_P3_B1 0x41 |
119 | #define NX_P3_B2 0x42 | 117 | #define NX_P3_B2 0x42 |
118 | #define NX_P3P_A0 0x50 | ||
120 | 119 | ||
121 | #define NX_IS_REVISION_P2(REVISION) (REVISION <= NX_P2_C1) | 120 | #define NX_IS_REVISION_P2(REVISION) (REVISION <= NX_P2_C1) |
122 | #define NX_IS_REVISION_P3(REVISION) (REVISION >= NX_P3_A0) | 121 | #define NX_IS_REVISION_P3(REVISION) (REVISION >= NX_P3_A0) |
122 | #define NX_IS_REVISION_P3P(REVISION) (REVISION >= NX_P3P_A0) | ||
123 | 123 | ||
124 | #define FIRST_PAGE_GROUP_START 0 | 124 | #define FIRST_PAGE_GROUP_START 0 |
125 | #define FIRST_PAGE_GROUP_END 0x100000 | 125 | #define FIRST_PAGE_GROUP_END 0x100000 |
@@ -419,6 +419,34 @@ struct status_desc { | |||
419 | __le64 status_desc_data[2]; | 419 | __le64 status_desc_data[2]; |
420 | } __attribute__ ((aligned(16))); | 420 | } __attribute__ ((aligned(16))); |
421 | 421 | ||
422 | /* UNIFIED ROMIMAGE *************************/ | ||
423 | #define NX_UNI_FW_MIN_SIZE 0x3eb000 | ||
424 | #define NX_UNI_DIR_SECT_PRODUCT_TBL 0x0 | ||
425 | #define NX_UNI_DIR_SECT_BOOTLD 0x6 | ||
426 | #define NX_UNI_DIR_SECT_FW 0x7 | ||
427 | |||
428 | /*Offsets */ | ||
429 | #define NX_UNI_CHIP_REV_OFF 10 | ||
430 | #define NX_UNI_FLAGS_OFF 11 | ||
431 | #define NX_UNI_BIOS_VERSION_OFF 12 | ||
432 | #define NX_UNI_BOOTLD_IDX_OFF 27 | ||
433 | #define NX_UNI_FIRMWARE_IDX_OFF 29 | ||
434 | |||
435 | struct uni_table_desc{ | ||
436 | uint32_t findex; | ||
437 | uint32_t num_entries; | ||
438 | uint32_t entry_size; | ||
439 | uint32_t reserved[5]; | ||
440 | }; | ||
441 | |||
442 | struct uni_data_desc{ | ||
443 | uint32_t findex; | ||
444 | uint32_t size; | ||
445 | uint32_t reserved[5]; | ||
446 | }; | ||
447 | |||
448 | /* UNIFIED ROMIMAGE *************************/ | ||
449 | |||
422 | /* The version of the main data structure */ | 450 | /* The version of the main data structure */ |
423 | #define NETXEN_BDINFO_VERSION 1 | 451 | #define NETXEN_BDINFO_VERSION 1 |
424 | 452 | ||
@@ -485,7 +513,15 @@ struct status_desc { | |||
485 | #define NX_P2_MN_ROMIMAGE 0 | 513 | #define NX_P2_MN_ROMIMAGE 0 |
486 | #define NX_P3_CT_ROMIMAGE 1 | 514 | #define NX_P3_CT_ROMIMAGE 1 |
487 | #define NX_P3_MN_ROMIMAGE 2 | 515 | #define NX_P3_MN_ROMIMAGE 2 |
488 | #define NX_FLASH_ROMIMAGE 3 | 516 | #define NX_UNIFIED_ROMIMAGE 3 |
517 | #define NX_FLASH_ROMIMAGE 4 | ||
518 | #define NX_UNKNOWN_ROMIMAGE 0xff | ||
519 | |||
520 | #define NX_P2_MN_ROMIMAGE_NAME "nxromimg.bin" | ||
521 | #define NX_P3_CT_ROMIMAGE_NAME "nx3fwct.bin" | ||
522 | #define NX_P3_MN_ROMIMAGE_NAME "nx3fwmn.bin" | ||
523 | #define NX_UNIFIED_ROMIMAGE_NAME "phanfw.bin" | ||
524 | #define NX_FLASH_ROMIMAGE_NAME "flash" | ||
489 | 525 | ||
490 | extern char netxen_nic_driver_name[]; | 526 | extern char netxen_nic_driver_name[]; |
491 | 527 | ||
@@ -543,13 +579,16 @@ struct netxen_hardware_context { | |||
543 | void __iomem *pci_base1; | 579 | void __iomem *pci_base1; |
544 | void __iomem *pci_base2; | 580 | void __iomem *pci_base2; |
545 | void __iomem *db_base; | 581 | void __iomem *db_base; |
582 | void __iomem *ocm_win_crb; | ||
583 | |||
546 | unsigned long db_len; | 584 | unsigned long db_len; |
547 | unsigned long pci_len0; | 585 | unsigned long pci_len0; |
548 | 586 | ||
549 | int qdr_sn_window; | 587 | u32 ocm_win; |
550 | int ddr_mn_window; | 588 | u32 crb_win; |
551 | u32 mn_win_crb; | 589 | |
552 | u32 ms_win_crb; | 590 | rwlock_t crb_lock; |
591 | spinlock_t mem_lock; | ||
553 | 592 | ||
554 | u8 cut_through; | 593 | u8 cut_through; |
555 | u8 revision_id; | 594 | u8 revision_id; |
@@ -1039,6 +1078,9 @@ typedef struct { | |||
1039 | #define LINKEVENT_LINKSPEED_MBPS 0 | 1078 | #define LINKEVENT_LINKSPEED_MBPS 0 |
1040 | #define LINKEVENT_LINKSPEED_ENCODED 1 | 1079 | #define LINKEVENT_LINKSPEED_ENCODED 1 |
1041 | 1080 | ||
1081 | #define AUTO_FW_RESET_ENABLED 0xEF10AF12 | ||
1082 | #define AUTO_FW_RESET_DISABLED 0xDCBAAF12 | ||
1083 | |||
1042 | /* firmware response header: | 1084 | /* firmware response header: |
1043 | * 63:58 - message type | 1085 | * 63:58 - message type |
1044 | * 57:56 - owner | 1086 | * 57:56 - owner |
@@ -1086,6 +1128,7 @@ typedef struct { | |||
1086 | #define NETXEN_NIC_MSIX_ENABLED 0x04 | 1128 | #define NETXEN_NIC_MSIX_ENABLED 0x04 |
1087 | #define NETXEN_NIC_LRO_ENABLED 0x08 | 1129 | #define NETXEN_NIC_LRO_ENABLED 0x08 |
1088 | #define NETXEN_NIC_BRIDGE_ENABLED 0X10 | 1130 | #define NETXEN_NIC_BRIDGE_ENABLED 0X10 |
1131 | #define NETXEN_NIC_DIAG_ENABLED 0x20 | ||
1089 | #define NETXEN_IS_MSI_FAMILY(adapter) \ | 1132 | #define NETXEN_IS_MSI_FAMILY(adapter) \ |
1090 | ((adapter)->flags & (NETXEN_NIC_MSI_ENABLED | NETXEN_NIC_MSIX_ENABLED)) | 1133 | ((adapter)->flags & (NETXEN_NIC_MSI_ENABLED | NETXEN_NIC_MSIX_ENABLED)) |
1091 | 1134 | ||
@@ -1115,10 +1158,6 @@ struct netxen_adapter { | |||
1115 | struct pci_dev *pdev; | 1158 | struct pci_dev *pdev; |
1116 | struct list_head mac_list; | 1159 | struct list_head mac_list; |
1117 | 1160 | ||
1118 | u32 curr_window; | ||
1119 | u32 crb_win; | ||
1120 | rwlock_t adapter_lock; | ||
1121 | |||
1122 | spinlock_t tx_clean_lock; | 1161 | spinlock_t tx_clean_lock; |
1123 | 1162 | ||
1124 | u16 num_txd; | 1163 | u16 num_txd; |
@@ -1163,6 +1202,8 @@ struct netxen_adapter { | |||
1163 | u32 int_vec_bit; | 1202 | u32 int_vec_bit; |
1164 | u32 heartbit; | 1203 | u32 heartbit; |
1165 | 1204 | ||
1205 | u8 mac_addr[ETH_ALEN]; | ||
1206 | |||
1166 | struct netxen_adapter_stats stats; | 1207 | struct netxen_adapter_stats stats; |
1167 | 1208 | ||
1168 | struct netxen_recv_context recv_ctx; | 1209 | struct netxen_recv_context recv_ctx; |
@@ -1180,11 +1221,10 @@ struct netxen_adapter { | |||
1180 | u32 (*crb_read)(struct netxen_adapter *, ulong); | 1221 | u32 (*crb_read)(struct netxen_adapter *, ulong); |
1181 | int (*crb_write)(struct netxen_adapter *, ulong, u32); | 1222 | int (*crb_write)(struct netxen_adapter *, ulong, u32); |
1182 | 1223 | ||
1183 | int (*pci_mem_read)(struct netxen_adapter *, u64, void *, int); | 1224 | int (*pci_mem_read)(struct netxen_adapter *, u64, u64 *); |
1184 | int (*pci_mem_write)(struct netxen_adapter *, u64, void *, int); | 1225 | int (*pci_mem_write)(struct netxen_adapter *, u64, u64); |
1185 | 1226 | ||
1186 | unsigned long (*pci_set_window)(struct netxen_adapter *, | 1227 | int (*pci_set_window)(struct netxen_adapter *, u64, u32 *); |
1187 | unsigned long long); | ||
1188 | 1228 | ||
1189 | u32 (*io_read)(struct netxen_adapter *, void __iomem *); | 1229 | u32 (*io_read)(struct netxen_adapter *, void __iomem *); |
1190 | void (*io_write)(struct netxen_adapter *, void __iomem *, u32); | 1230 | void (*io_write)(struct netxen_adapter *, void __iomem *, u32); |
@@ -1203,12 +1243,10 @@ struct netxen_adapter { | |||
1203 | 1243 | ||
1204 | struct work_struct tx_timeout_task; | 1244 | struct work_struct tx_timeout_task; |
1205 | 1245 | ||
1206 | struct net_device_stats net_stats; | ||
1207 | |||
1208 | nx_nic_intr_coalesce_t coal; | 1246 | nx_nic_intr_coalesce_t coal; |
1209 | 1247 | ||
1210 | unsigned long state; | 1248 | unsigned long state; |
1211 | u32 resv5; | 1249 | __le32 file_prd_off; /*File fw product offset*/ |
1212 | u32 fw_version; | 1250 | u32 fw_version; |
1213 | const struct firmware *fw; | 1251 | const struct firmware *fw; |
1214 | }; | 1252 | }; |
@@ -1271,7 +1309,7 @@ int netxen_load_firmware(struct netxen_adapter *adapter); | |||
1271 | int netxen_need_fw_reset(struct netxen_adapter *adapter); | 1309 | int netxen_need_fw_reset(struct netxen_adapter *adapter); |
1272 | void netxen_request_firmware(struct netxen_adapter *adapter); | 1310 | void netxen_request_firmware(struct netxen_adapter *adapter); |
1273 | void netxen_release_firmware(struct netxen_adapter *adapter); | 1311 | void netxen_release_firmware(struct netxen_adapter *adapter); |
1274 | int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose); | 1312 | int netxen_pinit_from_rom(struct netxen_adapter *adapter); |
1275 | 1313 | ||
1276 | int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, int *valp); | 1314 | int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, int *valp); |
1277 | int netxen_rom_fast_read_words(struct netxen_adapter *adapter, int addr, | 1315 | int netxen_rom_fast_read_words(struct netxen_adapter *adapter, int addr, |