On Thu, Aug 28, 2014 at 09:21:15PM +0200, Axel Rau wrote:
> Am 28.08.2014 um 13:51 schrieb Jonathan Gray <j...@jsg.id.au>:
> 
> > Start with the following patch, perhaps there needs to be
> > some additional i347 specific handling.
> I’m seeing now:
> - - -
> em_set_phy_type
> Invalid PHY ID 0x1410DC0
>  
> Error, did not detect valid phy.
>  
> em2: Hardware Initialization Failedem2: Unable to initialize the hardware
> - - -
> Complete debug output available on request.

Initial support for the i347 phy was added back in March but that wasn't
part of 5.5.  I suspect you want something along the lines of the
following patch:

Index: if_em_hw.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_em_hw.c,v
retrieving revision 1.77
diff -u -p -r1.77 if_em_hw.c
--- if_em_hw.c  22 Feb 2014 04:41:31 -0000      1.77
+++ if_em_hw.c  29 Aug 2014 06:02:46 -0000
@@ -225,8 +225,10 @@ em_set_phy_type(struct em_hw *hw)
        case M88E1000_I_PHY_ID:
        case M88E1011_I_PHY_ID:
        case M88E1111_I_PHY_ID:
+       case M88E1112_E_PHY_ID:
        case M88E1543_E_PHY_ID:
        case I210_I_PHY_ID:
+       case I347AT4_E_PHY_ID:
                hw->phy_type = em_phy_m88;
                break;
        case IGP01E1000_I_PHY_ID:
@@ -5199,7 +5201,9 @@ em_match_gig_phy(struct em_hw *hw)
        case em_i350:
                if (hw->phy_id == I82580_I_PHY_ID ||
                    hw->phy_id == I210_I_PHY_ID ||
+                   hw->phy_id == I347AT4_E_PHY_ID ||
                    hw->phy_id == I350_I_PHY_ID ||
+                   hw->phy_id == M88E1112_E_PHY_ID ||
                    hw->phy_id == M88E1543_E_PHY_ID) {
                        uint32_t mdic;
 
Index: if_em_hw.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_em_hw.h,v
retrieving revision 1.58
diff -u -p -r1.58 if_em_hw.h
--- if_em_hw.h  22 Feb 2014 04:41:32 -0000      1.58
+++ if_em_hw.h  29 Aug 2014 06:02:46 -0000
@@ -3381,6 +3381,8 @@ struct em_host_command_info {
 #define M88E1000_14_PHY_ID   M88E1000_E_PHY_ID
 #define M88E1011_I_REV_4     0x04
 #define M88E1111_I_PHY_ID    0x01410CC0
+#define M88E1112_E_PHY_ID    0x01410C90
+#define I347AT4_E_PHY_ID     0x01410DC0
 #define L1LXT971A_PHY_ID     0x001378E0
 #define GG82563_E_PHY_ID     0x01410CA0
 #define BME1000_E_PHY_ID     0x01410CB0

Reply via email to