Print this page
Import some changes from FreeBSD (details later, this is quick-n-dirty for now).
        
@@ -1,8 +1,8 @@
 /******************************************************************************
 
-  Copyright (c) 2001-2012, Intel Corporation 
+  Copyright (c) 2001-2013, Intel Corporation 
   All rights reserved.
   
   Redistribution and use in source and binary forms, with or without 
   modification, are permitted provided that the following conditions are met:
   
@@ -35,10 +35,12 @@
 #ifndef _IXGBE_PHY_H_
 #define _IXGBE_PHY_H_
 
 #include "ixgbe_type.h"
 #define IXGBE_I2C_EEPROM_DEV_ADDR    0xA0
+#define IXGBE_I2C_EEPROM_DEV_ADDR2      0xA2
+#define IXGBE_I2C_EEPROM_BANK_LEN       0xFF
 
 /* EEPROM byte offsets */
 #define IXGBE_SFF_IDENTIFIER            0x0
 #define IXGBE_SFF_IDENTIFIER_SFP        0x3
 #define IXGBE_SFF_VENDOR_OUI_BYTE0      0x25
@@ -46,10 +48,14 @@
 #define IXGBE_SFF_VENDOR_OUI_BYTE2      0x27
 #define IXGBE_SFF_1GBE_COMP_CODES       0x6
 #define IXGBE_SFF_10GBE_COMP_CODES      0x3
 #define IXGBE_SFF_CABLE_TECHNOLOGY      0x8
 #define IXGBE_SFF_CABLE_SPEC_COMP       0x3C
+#define IXGBE_SFF_SFF_8472_SWAP         0x5C
+#define IXGBE_SFF_SFF_8472_COMP         0x5E
+#define IXGBE_SFF_SFF_8472_OSCB         0x6E
+#define IXGBE_SFF_SFF_8472_ESCB         0x76
 
 /* Bitmasks */
 #define IXGBE_SFF_DA_PASSIVE_CABLE      0x4
 #define IXGBE_SFF_DA_ACTIVE_CABLE       0x8
 #define IXGBE_SFF_DA_SPEC_ACTIVE_LIMITING       0x4
@@ -56,10 +62,13 @@
 #define IXGBE_SFF_1GBASESX_CAPABLE      0x1
 #define IXGBE_SFF_1GBASELX_CAPABLE      0x2
 #define IXGBE_SFF_1GBASET_CAPABLE       0x8
 #define IXGBE_SFF_10GBASESR_CAPABLE     0x10
 #define IXGBE_SFF_10GBASELR_CAPABLE     0x20
+#define IXGBE_SFF_SOFT_RS_SELECT_MASK   0x8
+#define IXGBE_SFF_SOFT_RS_SELECT_10G    0x8
+#define IXGBE_SFF_SOFT_RS_SELECT_1G     0x0
 #define IXGBE_I2C_EEPROM_READ_MASK      0x100
 #define IXGBE_I2C_EEPROM_STATUS_MASK    0x3
 #define IXGBE_I2C_EEPROM_STATUS_NO_OPERATION    0x0
 #define IXGBE_I2C_EEPROM_STATUS_PASS    0x1
 #define IXGBE_I2C_EEPROM_STATUS_FAIL    0x2
@@ -93,10 +102,18 @@
 #define IXGBE_I2C_T_BUF         5
 
 #define IXGBE_TN_LASI_STATUS_REG        0x9005
 #define IXGBE_TN_LASI_STATUS_TEMP_ALARM 0x0008
 
+/* SFP+ SFF-8472 Compliance */
+#define IXGBE_SFF_SFF_8472_UNSUP        0x00
+#define IXGBE_SFF_SFF_8472_REV_9_3      0x01
+#define IXGBE_SFF_SFF_8472_REV_9_5      0x02
+#define IXGBE_SFF_SFF_8472_REV_10_2     0x03
+#define IXGBE_SFF_SFF_8472_REV_10_4     0x04
+#define IXGBE_SFF_SFF_8472_REV_11_0     0x05
+
 s32 ixgbe_init_phy_ops_generic(struct ixgbe_hw *hw);
 bool ixgbe_validate_phy_addr(struct ixgbe_hw *hw, u32 phy_addr);
 enum ixgbe_phy_type ixgbe_get_phy_type_from_id(u32 phy_id);
 s32 ixgbe_get_phy_id(struct ixgbe_hw *hw);
 s32 ixgbe_identify_phy_generic(struct ixgbe_hw *hw);
@@ -106,11 +123,10 @@
 s32 ixgbe_write_phy_reg_generic(struct ixgbe_hw *hw, u32 reg_addr,
                                 u32 device_type, u16 phy_data);
 s32 ixgbe_setup_phy_link_generic(struct ixgbe_hw *hw);
 s32 ixgbe_setup_phy_link_speed_generic(struct ixgbe_hw *hw,
                                        ixgbe_link_speed speed,
-                                       bool autoneg,
                                        bool autoneg_wait_to_complete);
 s32 ixgbe_get_copper_link_capabilities_generic(struct ixgbe_hw *hw,
                                                ixgbe_link_speed *speed,
                                                bool *autoneg);