On Sat, Sep 12, 2015 at 12:44:55AM +0000, Paul Levlin wrote:
> Thank you for the quick response, and sorry for the delay in the
> result (also sorry for top-posting, don't know how to avoid it in
> this setting)..
> With the patch applied, the interface seems to be working fine
> (as it's only a 2-port system, the 2 extra interfaces that are
> unable to initialize are expected I guess?). The MAC addresses
> are retrieved successfully in the proper dmesg, but I've replaced
> the NIC-specific parts with ? in the output below.
>
> Thanks again for the quick reply and patch!
The I354 MAC is part of the Atom SoC. It seems the people responsible
for the board neglected to disable the unused pci functions.
Enabling all the em debugging can be very vebose, it might
be interesting to see what the other interfaces claim
for a phy id though:
Index: if_em.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_em.c,v
retrieving revision 1.304
diff -u -p -r1.304 if_em.c
--- if_em.c 11 Sep 2015 13:02:28 -0000 1.304
+++ if_em.c 12 Sep 2015 02:53:53 -0000
@@ -1851,7 +1851,7 @@ em_hardware_init(struct em_softc *sc)
INIT_DEBUGOUT("\nHardware Initialization Deferred ");
return (EAGAIN);
}
- printf("%s: Hardware Initialization Failed",
+ printf("\n%s: Hardware Initialization Failed\n",
sc->sc_dv.dv_xname);
return (EIO);
}
Index: if_em_hw.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_em_hw.c,v
retrieving revision 1.88
diff -u -p -r1.88 if_em_hw.c
--- if_em_hw.c 12 Sep 2015 02:38:14 -0000 1.88
+++ if_em_hw.c 12 Sep 2015 02:53:57 -0000
@@ -5368,6 +5368,7 @@ em_match_gig_phy(struct em_hw *hw)
hw->phy_id |= (uint32_t) (phy_id_low & PHY_REVISION_MASK);
hw->phy_revision = (uint32_t) phy_id_low & ~PHY_REVISION_MASK;
+printf("\nPHY ID 0x%X detected\n", hw->phy_id);
switch (hw->mac_type) {
case em_82543: