NetBSD-Bugs archive

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

re: port-i386/40677: Some fxp network cards no longer work



The following reply was made to PR port-i386/40677; it has been noted by GNATS.

From: matthew green <mrg%eterna.com.au@localhost>
To: "Stephan Thesing" <thesing%gmx.de@localhost>
Cc: gnats-bugs%NetBSD.org@localhost, netbsd-bugs%netbsd.org@localhost,
    gnats-admin%netbsd.org@localhost, port-i386-maintainer%netbsd.org@localhost
Subject: re: port-i386/40677: Some fxp network cards no longer work
Date: Thu, 19 Feb 2009 18:41:35 +1100

    I think the general idea of moving feature determination to the
    frontend file is good.
 
 yeah.  i just don't have the hardware to test the changes and there
 is another bug already from them.  but maybe you can help fix me fix
 them :-)
    
    It should be sufficient to change in fxp_pci_attach() in if_fxp_pci.c
    the default: branch of the switch, along the lines of the attached patch
    (compile tested only).
 
 so, your card matches the first patch of this change:
    
    Index: if_fxp_pci.c
    ===================================================================
    RCS file: /cvsroot/src/sys/dev/pci/if_fxp_pci.c,v
    retrieving revision 1.61
    diff -b -u -r1.61 if_fxp_pci.c
    --- if_fxp_pci.c        18 Jan 2009 10:37:04 -0000      1.61
    +++ if_fxp_pci.c        17 Feb 2009 21:22:09 -0000
    @@ -373,16 +373,29 @@
            case PCI_PRODUCT_INTEL_82562EH_HPNA_2:
            case PCI_PRODUCT_INTEL_PRO_100_VM_2:
                    aprint_normal(": %s, rev %d\n", fpp->fpp_name, sc->sc_rev);
    +
    +               if (sc->sc_rev >= FXP_REV_82558_A4)
                    sc->sc_flags |= FXPF_FC|FXPF_EXT_TXCB;
    +
    +               if (sc->sc_rev == FXP_REV_82550 || sc->sc_rev == 
FXP_REV_82550_C)
    +                       sc->sc_flags |= FXPF_EXT_RFA|FXPF_IPCB;
                    /*
                     * The ICH-2 and ICH-3 have the "resume bug".
                     */
                    sc->sc_flags |= FXPF_HAS_RESUME_BUG;
                    break;
 
 but what sort of testing did this part get?
    
    +
            default:
                    aprint_normal(": %s, rev %d\n", fpp->fpp_name, sc->sc_rev);
    -               sc->sc_flags |= 
FXPF_FC|FXPF_EXT_TXCB|FXPF_EXT_RFA|FXPF_IPCB;
    +
    +
    +               if (sc->sc_rev >= FXP_REV_82558_A4)
    +                       sc->sc_flags |= FXPF_FC|FXPF_EXT_TXCB;
    +
    +if (sc->sc_rev == FXP_REV_82550 || sc->sc_rev == FXP_REV_82550_C)
    +                       sc->sc_flags |= FXPF_EXT_RFA|FXPF_IPCB;
    +
                    break;
            }
    
 
 
 thanks for your help,
 
 
 .mrg.
 


Home | Main Index | Thread Index | Old Index