Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Aquantia AQC100 issues



Hi,

Yes, the patch solves the problem. Linked is up immediately after the boot.


On Wed, Apr 22, 2020, 11:26 Ryo Shimizu <ryo%nerv.org@localhost> wrote:

Hi!

>> Recently I received Asus XG-C100F SFP+ network controller based on
>> Aquantia AQC100. Though, it's currently supported by aq(4) driver, I
>> believe it should be relatively easy to add. I tried to blindly add
>> the device to the list and even made it work, unfortunately with some
>> caveats. To make work I need to boot into the system first and
>> physically reattach the cable (I am using DAC). Even if cable is
>> attached and system boots, media type is not recognized and reports as
>> if link is missing, unless I physically reattach it. After that it
>> properly configures and dhcpcd assigns IP address. I can successfully
>> access the network. Any ideas why I need to reattach the cable?

I'm not sure, but in the case of FIBRE, the behavior around link status
may be different from TP.
As a workaround, following patch to force polling linkstat. Will this
solve the problem?

cvs -q diff -U8 -a -p if_aq.c
Index: if_aq.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/if_aq.c,v
retrieving revision 1.11
diff -U 8 -a -p -r1.11 if_aq.c
--- if_aq.c     15 Feb 2020 12:20:35 -0000      1.11
+++ if_aq.c     22 Apr 2020 08:02:02 -0000
@@ -1301,16 +1301,21 @@ aq_attach(device_t parent, device_t self
                sc->sc_use_txrx_independent_intr = false;
                sc->sc_poll_linkstat = true;
                sc->sc_msix = true;
        } else {
                /* giving up using MSI-X */
                sc->sc_msix = false;
        }

+#define FORCE_POLL_LINKSTAT
+#ifdef FORCE_POLL_LINKSTAT
+       sc->sc_poll_linkstat = true;
+#endif
+
        aprint_debug_dev(sc->sc_dev,
            "ncpu=%d, pci_msix_count=%d."
            " allocate %d interrupts for %d%s queues%s\n",
            ncpu, msixcount,
            (sc->sc_use_txrx_independent_intr ?
            (sc->sc_nqueues * 2) : sc->sc_nqueues) +
            (sc->sc_poll_linkstat ? 0 : 1),
            sc->sc_nqueues,


Thanks,
--
ryo shimizu


Home | Main Index | Thread Index | Old Index