- rtl8169replenish(ctlr);
- ctlr->rcr = Rxfthnone|Mrxdmaunlimited|Ab|Am|Apm;
-
- /*
- * Setting Mulrw in Cplusc disables the Tx/Rx DMA burst
- * settings in Tcr/Rcr; the (1<<14) is magic.
- */
- cplusc = csr16r(ctlr, Cplusc) & ~(1<<14);
- cplusc |= /*Rxchksum|*/Mulrw;
- switch(ctlr->macv){
- default:
- panic("ether8169: unknown macv %#08ux for vid %#ux did %#ux",
- ctlr->macv, ctlr->pcidev->vid, ctlr->pcidev->did);
- case Macv01:
- break;
- case Macv02:
- case Macv03:
- cplusc |= 1<<14; /* magic */
- break;
- case Macv05:
- /*
- * This is interpreted from clearly bogus code
- * in the manufacturer-supplied driver, it could
- * be wrong. Untested.
- */
- r = csr8r(ctlr, Config2) & 0x07;
- if(r == 0x01) /* 66MHz PCI */
- csr32w(ctlr, 0x7C, 0x0007FFFF); /* magic */
- else
- csr32w(ctlr, 0x7C, 0x0007FF00); /* magic */
- pciclrmwi(ctlr->pcidev);
- break;
- case Macv13:
- /*
- * This is interpreted from clearly bogus code
- * in the manufacturer-supplied driver, it could
- * be wrong. Untested.
- */
- pcicfgw8(ctlr->pcidev, 0x68, 0x00); /* magic */
- pcicfgw8(ctlr->pcidev, 0x69, 0x08); /* magic */
- break;
- case Macv04:
- case Macv07:
- case Macv07a:
- case Macv11:
- case Macv12:
- case Macv12a:
- case Macv14:
- case Macv15:
- case Macv25:
- break;
- }