On Fri, Feb 14, 2014 at 05:00:03PM +1100, Jonathan Gray wrote: > On Thu, Feb 13, 2014 at 11:30:14PM -0600, Andrew Lester wrote: > > Hi All, > > > > > > > > I tried to install OpenBSD 5.4 (amd64) on a PC using a Supermicro > > > > A1SRi-2758F motherboard which is based on the Intel Atom C2000 > > > > (Rangeley) platform, and has an integrated i354 Quad-port GbE > > > > network adapter. The installation was unable to detect any of the > > > > network interfaces. Is anybody aware of some sort of workaround for > > > > this problem? I tried to do a PXE install which is ironic because it > > > > was over one of the interfaces. At the network configuration part of > > > > the installation, it detected a "vlan0" interface which I was unable > > > > to configure. > > Here is a diff against -current that may work but doesn't > handle some of the i354 special casing:
And here is one that might give the phy more chance of working: Index: if_em.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_em.c,v retrieving revision 1.275 diff -u -p -r1.275 if_em.c --- if_em.c 28 Dec 2013 03:34:54 -0000 1.275 +++ if_em.c 14 Feb 2014 05:55:27 -0000 @@ -144,6 +144,9 @@ const struct pci_matchid em_devices[] = { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_I350_FIBER }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_I350_SERDES }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_I350_SGMII }, + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_I354_BP_1GBPS }, + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_I354_BP_2_5GBPS }, + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_I354_SGMII }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ICH8_82567V_3 }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ICH8_IFE }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ICH8_IFE_G }, Index: if_em_hw.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_em_hw.c,v retrieving revision 1.75 diff -u -p -r1.75 if_em_hw.c --- if_em_hw.c 27 Nov 2013 01:13:10 -0000 1.75 +++ if_em_hw.c 14 Feb 2014 06:22:25 -0000 @@ -225,6 +225,7 @@ em_set_phy_type(struct em_hw *hw) case M88E1000_I_PHY_ID: case M88E1011_I_PHY_ID: case M88E1111_I_PHY_ID: + case M88E1543_E_PHY_ID: hw->phy_type = em_phy_m88; break; case IGP01E1000_I_PHY_ID: @@ -523,6 +524,9 @@ em_set_mac_type(struct em_hw *hw) case E1000_DEV_ID_I350_SERDES: case E1000_DEV_ID_I350_SGMII: case E1000_DEV_ID_I350_DA4: + case E1000_DEV_ID_I354_BACKPLANE_1GBPS: + case E1000_DEV_ID_I354_SGMII: + case E1000_DEV_ID_I354_BACKPLANE_2_5GBPS: hw->mac_type = em_i350; hw->initialize_hw_bits_disable = 1; hw->eee_enable = 1; @@ -5178,7 +5182,9 @@ em_match_gig_phy(struct em_hw *hw) break; case em_82580: case em_i350: - if (hw->phy_id == I82580_I_PHY_ID || hw->phy_id == I350_I_PHY_ID) { + if (hw->phy_id == I82580_I_PHY_ID || + hw->phy_id == I350_I_PHY_ID || + hw->phy_id == M88E1543_E_PHY_ID) { uint32_t mdic; mdic = EM_READ_REG(hw, E1000_MDICNFG); Index: if_em_hw.h =================================================================== RCS file: /cvs/src/sys/dev/pci/if_em_hw.h,v retrieving revision 1.56 diff -u -p -r1.56 if_em_hw.h --- if_em_hw.h 27 Nov 2013 01:13:10 -0000 1.56 +++ if_em_hw.h 14 Feb 2014 06:20:45 -0000 @@ -571,6 +571,9 @@ int32_t em_check_phy_reset_block(struct #define E1000_DEV_ID_I350_SGMII 0x1524 #define E1000_DEV_ID_82576_QUAD_CU_ET2 0x1526 #define E1000_DEV_ID_I350_DA4 0x1546 +#define E1000_DEV_ID_I354_BACKPLANE_1GBPS 0x1F40 +#define E1000_DEV_ID_I354_SGMII 0x1F41 +#define E1000_DEV_ID_I354_BACKPLANE_2_5GBPS 0x1F45 #define E1000_DEV_ID_82574L 0x10D3 #define E1000_DEV_ID_EP80579_LAN_1 0x5040 #define E1000_DEV_ID_EP80579_LAN_2 0x5044 @@ -3374,6 +3377,7 @@ struct em_host_command_info { #define GG82563_E_PHY_ID 0x01410CA0 #define BME1000_E_PHY_ID 0x01410CB0 #define BME1000_E_PHY_ID_R2 0x01410CB1 +#define M88E1543_E_PHY_ID 0x01410EA0 #define I82577_E_PHY_ID 0x01540050 #define I82578_E_PHY_ID 0x004DD040 #define I82579_E_PHY_ID 0x01540090