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