Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[pandora-kernel.git] / drivers / net / netxen / netxen_nic.h
index 7384f59..76cd1f3 100644 (file)
@@ -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)    \
 #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,