]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/tg3.h
Merge branch 'master' of hera.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6
[linux-2.6-omap-h63xx.git] / drivers / net / tg3.h
index d8e829f6fcb2b8a5049a257b5b679cb861f64617..6dbdad2b8f88693ffe9f31a9885f9e49059f19bc 100644 (file)
 #define   ASIC_REV_5906                         0x0c
 #define   ASIC_REV_USE_PROD_ID_REG      0x0f
 #define   ASIC_REV_5784                         0x5784
+#define   ASIC_REV_5761                         0x5761
 #define  GET_CHIP_REV(CHIP_REV_ID)     ((CHIP_REV_ID) >> 8)
 #define   CHIPREV_5700_AX               0x70
 #define   CHIPREV_5700_BX               0x71
 #define  PCISTATE_ROM_RETRY_ENABLE      0x00000040
 #define  PCISTATE_FLAT_VIEW             0x00000100
 #define  PCISTATE_RETRY_SAME_DMA        0x00002000
+#define  PCISTATE_ALLOW_APE_CTLSPC_WR   0x00010000
+#define  PCISTATE_ALLOW_APE_SHMEM_WR    0x00020000
 #define TG3PCI_CLOCK_CTRL              0x00000074
 #define  CLOCK_CTRL_CORECLK_DISABLE     0x00000200
 #define  CLOCK_CTRL_RXCLK_DISABLE       0x00000400
 #define SNDDATAC_MODE                  0x00001000
 #define  SNDDATAC_MODE_RESET            0x00000001
 #define  SNDDATAC_MODE_ENABLE           0x00000002
+#define  SNDDATAC_MODE_CDELAY           0x00000010
 /* 0x1004 --> 0x1400 unused */
 
 /* Send BD ring selector */
 #define TG3_CPMU_CTRL                  0x00003600
 #define  CPMU_CTRL_LINK_IDLE_MODE       0x00000200
 #define  CPMU_CTRL_LINK_AWARE_MODE      0x00000400
-/* 0x3604 --> 0x3800 unused */
+#define  CPMU_CTRL_LINK_SPEED_MODE      0x00004000
+/* 0x3604 --> 0x365c unused */
+
+#define TG3_CPMU_MUTEX_REQ             0x0000365c
+#define  CPMU_MUTEX_REQ_DRIVER          0x00001000
+#define TG3_CPMU_MUTEX_GNT             0x00003660
+#define  CPMU_MUTEX_GNT_DRIVER          0x00001000
+/* 0x3664 --> 0x3800 unused */
 
 /* Mbuf cluster free registers */
 #define MBFREE_MODE                    0x00003800
 #define  VCPU_STATUS_DRV_RESET          0x08000000
 
 #define VCPU_CFGSHDW                   0x00005104
+#define  VCPU_CFGSHDW_WOL_ENABLE        0x00000001
+#define  VCPU_CFGSHDW_WOL_MAGPKT        0x00000004
 #define  VCPU_CFGSHDW_ASPM_DBNC                 0x00001000
 
 /* Mailboxes */
 #define  FLASH_5787VENDOR_ATMEL_EEPROM_376KHZ   0x03000002
 #define  FLASH_5787VENDOR_MICRO_EEPROM_64KHZ    0x03000000
 #define  FLASH_5787VENDOR_MICRO_EEPROM_376KHZ   0x02000000
+#define  FLASH_5761VENDOR_ATMEL_MDB021D         0x00800003
+#define  FLASH_5761VENDOR_ATMEL_MDB041D         0x00800000
+#define  FLASH_5761VENDOR_ATMEL_MDB081D         0x00800002
+#define  FLASH_5761VENDOR_ATMEL_MDB161D         0x00800001
+#define  FLASH_5761VENDOR_ATMEL_ADB021D         0x00000003
+#define  FLASH_5761VENDOR_ATMEL_ADB041D         0x00000000
+#define  FLASH_5761VENDOR_ATMEL_ADB081D         0x00000002
+#define  FLASH_5761VENDOR_ATMEL_ADB161D         0x00000001
+#define  FLASH_5761VENDOR_ST_M_M45PE20  0x02800001
+#define  FLASH_5761VENDOR_ST_M_M45PE40  0x02800000
+#define  FLASH_5761VENDOR_ST_M_M45PE80  0x02800002
+#define  FLASH_5761VENDOR_ST_M_M45PE16  0x02800003
+#define  FLASH_5761VENDOR_ST_A_M45PE20  0x02000001
+#define  FLASH_5761VENDOR_ST_A_M45PE40  0x02000000
+#define  FLASH_5761VENDOR_ST_A_M45PE80  0x02000002
+#define  FLASH_5761VENDOR_ST_A_M45PE16  0x02000003
 #define  NVRAM_CFG1_5752PAGE_SIZE_MASK  0x70000000
 #define  FLASH_5752PAGE_SIZE_256        0x00000000
 #define  FLASH_5752PAGE_SIZE_512        0x10000000
 #define  ACCESS_ENABLE                  0x00000001
 #define  ACCESS_WR_ENABLE               0x00000002
 #define NVRAM_WRITE1                   0x00007028
-/* 0x702c --> 0x7400 unused */
+/* 0x702c unused */
+
+#define NVRAM_ADDR_LOCKOUT             0x00007030
+/* 0x7034 --> 0x7c00 unused */
 
-/* 0x7400 --> 0x7c00 unused */
 #define PCIE_TRANSACTION_CFG           0x00007c04
 #define PCIE_TRANS_CFG_1SHOT_MSI        0x20000000
 #define PCIE_TRANS_CFG_LOM              0x00000020
 #define  NIC_SRAM_DATA_CFG_MINI_PCI             0x00001000
 #define  NIC_SRAM_DATA_CFG_FIBER_WOL            0x00004000
 #define  NIC_SRAM_DATA_CFG_NO_GPIO2             0x00100000
+#define  NIC_SRAM_DATA_CFG_APE_ENABLE           0x00200000
 
 #define NIC_SRAM_DATA_VER                      0x00000b5c
 #define  NIC_SRAM_DATA_VER_SHIFT                16
 #define MII_TG3_TEST1_TRIM_EN          0x0010
 #define MII_TG3_TEST1_CRC_EN           0x8000
 
+/* APE registers.  Accessible through BAR1 */
+#define TG3_APE_EVENT                  0x000c
+#define  APE_EVENT_1                    0x00000001
+#define TG3_APE_LOCK_REQ               0x002c
+#define  APE_LOCK_REQ_DRIVER            0x00001000
+#define TG3_APE_LOCK_GRANT             0x004c
+#define  APE_LOCK_GRANT_DRIVER          0x00001000
+#define TG3_APE_SEG_SIG                        0x4000
+#define  APE_SEG_SIG_MAGIC              0x41504521
+
+/* APE shared memory.  Accessible through BAR1 */
+#define TG3_APE_FW_STATUS              0x400c
+#define  APE_FW_STATUS_READY            0x00000100
+#define TG3_APE_HOST_SEG_SIG           0x4200
+#define  APE_HOST_SEG_SIG_MAGIC                 0x484f5354
+#define TG3_APE_HOST_SEG_LEN           0x4204
+#define  APE_HOST_SEG_LEN_MAGIC                 0x0000001c
+#define TG3_APE_HOST_INIT_COUNT                0x4208
+#define TG3_APE_HOST_DRIVER_ID         0x420c
+#define  APE_HOST_DRIVER_ID_MAGIC       0xf0035100
+#define TG3_APE_HOST_BEHAVIOR          0x4210
+#define  APE_HOST_BEHAV_NO_PHYLOCK      0x00000001
+#define TG3_APE_HOST_HEARTBEAT_INT_MS  0x4214
+#define  APE_HOST_HEARTBEAT_INT_DISABLE         0
+#define  APE_HOST_HEARTBEAT_INT_5SEC    5000
+#define TG3_APE_HOST_HEARTBEAT_COUNT   0x4218
+
+#define TG3_APE_EVENT_STATUS           0x4300
+
+#define  APE_EVENT_STATUS_DRIVER_EVNT   0x00000010
+#define  APE_EVENT_STATUS_STATE_CHNGE   0x00000500
+#define  APE_EVENT_STATUS_STATE_START   0x00010000
+#define  APE_EVENT_STATUS_STATE_UNLOAD  0x00020000
+#define  APE_EVENT_STATUS_STATE_WOL     0x00030000
+#define  APE_EVENT_STATUS_STATE_SUSPEND         0x00040000
+#define  APE_EVENT_STATUS_EVENT_PENDING         0x80000000
+
+/* APE convenience enumerations. */
+#define TG3_APE_LOCK_MEM                4
+
+
 /* There are two ways to manage the TX descriptors on the tigon3.
  * Either the descriptors are in host DMA'able memory, or they
  * exist only in the cards on-chip SRAM.  All 16 send bds are under
@@ -2144,6 +2217,7 @@ struct tg3 {
        void                            (*write32_mbox) (struct tg3 *, u32,
                                                         u32);
        void __iomem                    *regs;
+       void __iomem                    *aperegs;
        struct net_device               *dev;
        struct pci_dev                  *pdev;
 
@@ -2269,6 +2343,9 @@ struct tg3 {
 #define TG3_FLG2_PHY_JITTER_BUG                0x20000000
 #define TG3_FLG2_NO_FWARE_REPORTED     0x40000000
 #define TG3_FLG2_PHY_ADJUST_TRIM       0x80000000
+       u32                             tg3_flags3;
+#define TG3_FLG3_NO_NVRAM_ADDR_TRANS   0x00000001
+#define TG3_FLG3_ENABLE_APE            0x00000002
 
        struct timer_list               timer;
        u16                             timer_counter;
@@ -2327,6 +2404,7 @@ struct tg3 {
 #define PHY_ID_BCM5787                 0xbc050ce0
 #define PHY_ID_BCM5756                 0xbc050ed0
 #define PHY_ID_BCM5784                 0xbc050fa0
+#define PHY_ID_BCM5761                 0xbc050fd0
 #define PHY_ID_BCM5906                 0xdc00ac40
 #define PHY_ID_BCM8002                 0x60010140
 #define PHY_ID_INVALID                 0xffffffff
@@ -2356,7 +2434,8 @@ struct tg3 {
         (X) == PHY_ID_BCM5752 || (X) == PHY_ID_BCM5714 || \
         (X) == PHY_ID_BCM5780 || (X) == PHY_ID_BCM5787 || \
         (X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM5756 || \
-        (X) == PHY_ID_BCM5906 || (X) == PHY_ID_BCM8002)
+        (X) == PHY_ID_BCM5906 || (X) == PHY_ID_BCM5761 || \
+        (X) == PHY_ID_BCM8002)
 
        struct tg3_hw_stats             *hw_stats;
        dma_addr_t                      stats_mapping;