]> err.no Git - linux-2.6/blobdiff - drivers/net/netxen/netxen_nic_phan_reg.h
Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc
[linux-2.6] / drivers / net / netxen / netxen_nic_phan_reg.h
index 0c7c94328b7f6749489fc5746cac526e3bd9c1b5..a566b50f36f5dac6b3f20b320e479ad75f15712f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2003 - 2006 NetXen, Inc.
  * All rights reserved.
- * 
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  * MA  02111-1307, USA.
- * 
+ *
  * The full GNU General Public License is included in this distribution
  * in the file called LICENSE.
- * 
+ *
  * Contact Information:
  *    info@netxen.com
  * NetXen,
@@ -30,7 +30,7 @@
 #ifndef __NIC_PHAN_REG_H_
 #define __NIC_PHAN_REG_H_
 
-/* 
+/*
  * CRB Registers or queue message done only at initialization time.
  */
 #define NIC_CRB_BASE               NETXEN_CAM_RAM(0x200)
 
 #define CRB_CMD_PRODUCER_OFFSET_1   NETXEN_NIC_REG(0x1ac)
 #define CRB_CMD_CONSUMER_OFFSET_1   NETXEN_NIC_REG(0x1b0)
+#define CRB_CMD_PRODUCER_OFFSET_2   NETXEN_NIC_REG(0x1b8)
+#define CRB_CMD_CONSUMER_OFFSET_2   NETXEN_NIC_REG(0x1bc)
+
+// 1c0 to 1cc used for signature reg
+#define CRB_CMD_PRODUCER_OFFSET_3   NETXEN_NIC_REG(0x1d0)
+#define CRB_CMD_CONSUMER_OFFSET_3   NETXEN_NIC_REG(0x1d4)
 #define CRB_TEMP_STATE              NETXEN_NIC_REG(0x1b4)
 
+#define CRB_V2P_0                  NETXEN_NIC_REG(0x290)
+#define CRB_V2P_1                  NETXEN_NIC_REG(0x294)
+#define CRB_V2P_2                  NETXEN_NIC_REG(0x298)
+#define CRB_V2P_3                  NETXEN_NIC_REG(0x29c)
+#define CRB_V2P(port)              (CRB_V2P_0+((port)*4))
+#define CRB_DRIVER_VERSION         NETXEN_NIC_REG(0x2a0)
+/* sw int status/mask registers */
+#define CRB_SW_INT_MASK_0         NETXEN_NIC_REG(0x1d8)
+#define CRB_SW_INT_MASK_1         NETXEN_NIC_REG(0x1e0)
+#define CRB_SW_INT_MASK_2         NETXEN_NIC_REG(0x1e4)
+#define CRB_SW_INT_MASK_3         NETXEN_NIC_REG(0x1e8)
+
+/*
+ * capabilities register, can be used to selectively enable/disable features
+ * for backward compability
+ */
+#define CRB_NIC_CAPABILITIES_HOST      NETXEN_NIC_REG(0x1a8)
+#define CRB_NIC_CAPABILITIES_FW                NETXEN_NIC_REG(0x1dc)
+#define CRB_NIC_MSI_MODE_HOST          NETXEN_NIC_REG(0x270)
+#define CRB_NIC_MSI_MODE_FW                    NETXEN_NIC_REG(0x274)
+
+#define INTR_SCHEME_PERPORT            0x1
+#define MSI_MODE_MULTIFUNC             0x1
+
 /* used for ethtool tests */
 #define CRB_SCRATCHPAD_TEST        NETXEN_NIC_REG(0x280)
 
@@ -138,129 +168,7 @@ struct netxen_recv_crb {
        u32 crb_status_ring_size;
 };
 
-#if defined(DEFINE_GLOBAL_RECV_CRB)
-struct netxen_recv_crb recv_crb_registers[] = {
-       /*
-        * Instance 0.
-        */
-       {
-        /* rcv_desc_crb: */
-        {
-         {
-          /* crb_rcv_producer_offset: */
-          NETXEN_NIC_REG(0x100),
-          /* crb_rcv_consumer_offset: */
-          NETXEN_NIC_REG(0x104),
-          /* crb_gloablrcv_ring: */
-          NETXEN_NIC_REG(0x108),
-          /* crb_rcv_ring_size */
-          NETXEN_NIC_REG(0x10c),
-
-          },
-         /* Jumbo frames */
-         {
-          /* crb_rcv_producer_offset: */
-          NETXEN_NIC_REG(0x110),
-          /* crb_rcv_consumer_offset: */
-          NETXEN_NIC_REG(0x114),
-          /* crb_gloablrcv_ring: */
-          NETXEN_NIC_REG(0x118),
-          /* crb_rcv_ring_size */
-          NETXEN_NIC_REG(0x11c),
-          },
-         /* LRO */
-         {
-          /* crb_rcv_producer_offset: */
-          NETXEN_NIC_REG(0x120),
-          /* crb_rcv_consumer_offset: */
-          NETXEN_NIC_REG(0x124),
-          /* crb_gloablrcv_ring: */
-          NETXEN_NIC_REG(0x128),
-          /* crb_rcv_ring_size */
-          NETXEN_NIC_REG(0x12c),
-          }
-         },
-        /* crb_rcvstatus_ring: */
-        NETXEN_NIC_REG(0x130),
-        /* crb_rcv_status_producer: */
-        NETXEN_NIC_REG(0x134),
-        /* crb_rcv_status_consumer: */
-        NETXEN_NIC_REG(0x138),
-        /* crb_rcvpeg_state: */
-        NETXEN_NIC_REG(0x13c),
-        /* crb_status_ring_size */
-        NETXEN_NIC_REG(0x140),
-
-        },
-       /*
-        * Instance 1,
-        */
-       {
-        /* rcv_desc_crb: */
-        {
-         {
-          /* crb_rcv_producer_offset: */
-          NETXEN_NIC_REG(0x144),
-          /* crb_rcv_consumer_offset: */
-          NETXEN_NIC_REG(0x148),
-          /* crb_globalrcv_ring: */
-          NETXEN_NIC_REG(0x14c),
-          /* crb_rcv_ring_size */
-          NETXEN_NIC_REG(0x150),
-
-          },
-         /* Jumbo frames */
-         {
-          /* crb_rcv_producer_offset: */
-          NETXEN_NIC_REG(0x154),
-          /* crb_rcv_consumer_offset: */
-          NETXEN_NIC_REG(0x158),
-          /* crb_globalrcv_ring: */
-          NETXEN_NIC_REG(0x15c),
-          /* crb_rcv_ring_size */
-          NETXEN_NIC_REG(0x160),
-          },
-         /* LRO */
-         {
-          /* crb_rcv_producer_offset: */
-          NETXEN_NIC_REG(0x164),
-          /* crb_rcv_consumer_offset: */
-          NETXEN_NIC_REG(0x168),
-          /* crb_globalrcv_ring: */
-          NETXEN_NIC_REG(0x16c),
-          /* crb_rcv_ring_size */
-          NETXEN_NIC_REG(0x170),
-          }
-
-         },
-        /* crb_rcvstatus_ring: */
-        NETXEN_NIC_REG(0x174),
-        /* crb_rcv_status_producer: */
-        NETXEN_NIC_REG(0x178),
-        /* crb_rcv_status_consumer: */
-        NETXEN_NIC_REG(0x17c),
-        /* crb_rcvpeg_state: */
-        NETXEN_NIC_REG(0x180),
-        /* crb_status_ring_size */
-        NETXEN_NIC_REG(0x184),
-
-        },
-};
-
-u64 ctx_addr_sig_regs[][3] = {
-       {NETXEN_NIC_REG(0x188), NETXEN_NIC_REG(0x18c), NETXEN_NIC_REG(0x1c0)},
-       {NETXEN_NIC_REG(0x190), NETXEN_NIC_REG(0x194), NETXEN_NIC_REG(0x1c4)},
-       {NETXEN_NIC_REG(0x198), NETXEN_NIC_REG(0x19c), NETXEN_NIC_REG(0x1c8)},
-       {NETXEN_NIC_REG(0x1a0), NETXEN_NIC_REG(0x1a4), NETXEN_NIC_REG(0x1cc)}
-};
-
-#else
 extern struct netxen_recv_crb recv_crb_registers[];
-extern u64 ctx_addr_sig_regs[][3];
-#define CRB_CTX_ADDR_REG_LO            (ctx_addr_sig_regs[0][0])
-#define CRB_CTX_ADDR_REG_HI            (ctx_addr_sig_regs[0][2])
-#define CRB_CTX_SIGNATURE_REG       (ctx_addr_sig_regs[0][1])
-#endif                         /* DEFINE_GLOBAL_RECEIVE_CRB */
 
 /*
  * Temperature control.