Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: 5.99.15 ale quirks on Asus Eee 1000H
Malcolm Herbert wrote:
> I've done an upgrade install on an Asus Eee 1000H ... so far things look
> like they're going well and the ale device is working, however I'm seeing
> the following from dmesg during boot and around dhclient startup:
>
> |ale0: DMA read error! -- resetting
> |ale0: could not disable Tx/Rx MAC(0x00000008)!
> |ale0: DMA read error! -- resetting
> |ale0: could not disable Tx/Rx MAC(0x00000008)!
> |ale0: DMA read error! -- resetting
> |ale0: could not disable Tx/Rx MAC(0x00000008)!
>
> The device is up and appears to work OK ... whatever the issue us
> doesn't appear to affect ssh interactive use, but haven't yet tried to
> push a lot of data through it, so can't give complete report, sorry
>
> Other than that, things seem fine ... still using stock 5.0 X11 as I
> forgot to build that ... :)
If your NIC is fast ethernet only, then attach patch may help.
Christoph
Index: if_ale.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/if_ale.c,v
retrieving revision 1.5
diff -u -p -r1.5 if_ale.c
--- if_ale.c 5 Aug 2009 07:03:04 -0000 1.5
+++ if_ale.c 5 Aug 2009 07:08:06 -0000
@@ -142,6 +142,17 @@ ale_miibus_readreg(device_t dev, int phy
if (phy != sc->ale_phyaddr)
return 0;
+ if (sc->ale_flags & ALE_FAST_ETHER) {
+ switch (reg) {
+ case MII_100T2CR:
+ case MII_100T2SR:
+ case MII_EXTSR:
+ return 0;
+ default:
+ break;
+ }
+ }
+
CSR_WRITE_4(sc, ALE_MDIO, MDIO_OP_EXECUTE | MDIO_OP_READ |
MDIO_SUP_PREAMBLE | MDIO_CLK_25_4 | MDIO_REG_ADDR(reg));
for (i = ALE_PHY_TIMEOUT; i > 0; i--) {
@@ -157,7 +168,7 @@ ale_miibus_readreg(device_t dev, int phy
return 0;
}
- return ((v & MDIO_DATA_MASK) >> MDIO_DATA_SHIFT);
+ return (v & MDIO_DATA_MASK) >> MDIO_DATA_SHIFT;
}
static void
@@ -170,6 +181,17 @@ ale_miibus_writereg(device_t dev, int ph
if (phy != sc->ale_phyaddr)
return;
+ if (sc->ale_flags & ALE_FAST_ETHER) {
+ switch (reg) {
+ case MII_100T2CR:
+ case MII_100T2SR:
+ case MII_EXTSR:
+ return;
+ default:
+ break;
+ }
+ }
+
CSR_WRITE_4(sc, ALE_MDIO, MDIO_OP_EXECUTE | MDIO_OP_WRITE |
(val & MDIO_DATA_MASK) << MDIO_DATA_SHIFT |
MDIO_SUP_PREAMBLE | MDIO_CLK_25_4 | MDIO_REG_ADDR(reg));
Home |
Main Index |
Thread Index |
Old Index