Jump to content

Updated drivers for Windows XP SP3 and Windows 2003 SP2 (x32/x64) for modern hardware


Recommended Posts

Posted

@reboot12

Now your router shows the same 10MB as mine;))..

Here is the next KD block for the 2.5.3 driver, for to understand, what is going on

Dietmar

!sym quiet
sxd ud
bc *
bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\n\", poi(@esp+0x0c); gc"
bu i219!I219TxSendOne ".echo TXONE; gc"
bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo TXRECLAIM; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc"
bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo RXPOLL; dd @$t1+0x280c L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; gc"
bu ndis!EthFilterDprIndicateReceive ".echo NDIS_RX; gc"
bu ndis!EthFilterDprIndicateReceiveComplete ".echo NDIS_RXC; gc"
g

 


Posted
13 minutes ago, Dietmar said:

Now your router shows the same 10MB as mine;))..

I don't think so - my router has last DHCP query from Win10 (WinPE):
last-DHCP-query.png

Posted

@reboot12

Here is next KD block for the driver 2.5.3

Dietmar

!sym quiet
sxd ud
bc *
bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXONE_IN regs=%p\n\", $t1; bp /1 @$t2 \".echo TXONE_OUT; dd i219!g_TxRx+0x08 L12; dd i219!g_TxRx+0x4C L2; dd poi(i219!g_TxRx+0x08) L4; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3590 L1; gc\"; gc"
bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo TXRECLAIM; dd poi(i219!g_TxRx+0x08) L4; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3590 L1; gc"
bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo RXPOLL; dd @$t1+0x280c L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; gc"
g

 

Posted

@reboot12

Next KD Block for the same driver 2.5.3

Dietmar

!sym quiet
sxd ud
bc *
bu i219!I219MiniportSendPackets ".echo SENDPKTS; kb; gc"
bu i219!I219TxSendOne ".echo TXONE; gc"
bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo TXRECLAIM; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3590 L1; gc"
bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo TXRXSTART; dd @$t1+0x2800 L12; dd @$t1+0x2828 L1; dd @$t1+0x2c00 L1; dd @$t1+0x3800 L12; dd @$t1+0x3590 L1; gc"
bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo RXPOLL; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; gc"
g

 

Posted

@reboot12

Just now I make a direkt compare with the Windbg output from my i219 board with yours.

They are very similar, but mine connects and yours not, so may be we see alittle bit more

Dietmar

Posted

@reboot12

Oh..I found something really interesting in both logs. They are nearly identic but NOT in the status of MMIO:

works:          MMIO mapped phys=df500000 reslen=0x20000 maplen=0x20000 irqL=5 irqV=865 ctrl=00180240 status=40080640

not works:    MMIO mapped phys=c0300000 reslen=0x20000 maplen=0x20000 irqL=7 irqV=387 ctrl=00180240 status=00080640

Dietmar

 

Posted

@reboot12

I think, that I found out, what is going on:

Was bedeutet das für den i219 Treiber unter XP? Oh..I found something really interesting in both logs. They are nearly identic but NOT in the status of MMIO:works: MMIO mapped phys=df500000 reslen=0x20000 maplen=0x20000 irqL=5 irqV=865 ctrl=00180240 status=40080640not works: MMIO mapped phys=c0300000 reslen=0x20000 maplen=0x20000 irqL=7 irqV=387 ctrl=00180240 status=00080640

Das Web wird durchsucht

27 Ergebnisse

Der entscheidende Unterschied zwischen den beiden Logs liegt im Status-Register der MMIO-Mapped-Region (vermutlich das STATUS-Register der e1000e-Familie, Offset 0x8 bzw. ähnlich):

Funktioniert: status=40080640

Funktioniert nicht: status=00080640

Der Unterschied ist exakt Bit 30 (vom LSB aus gezählt, also 2³⁰ = 0x40000000):

40080640 = 00080640 | 40000000

Bit 30 ist 1 im funktionierenden Fall

Bit 30 ist 0 im nicht funktionierenden Fall

Bei Intel-Gigabit-Ethernet-Controllern (e1000/e1000e/i219 usw.) ist Bit 30 im STATUS-Register (meist Register 0008h) typischerweise:Bit 30 = Master Enable / Bus Master Status (oder sehr ähnlich benannt)Es signalisiert, ob der Bus Master DMA vom PCIe-Controller aus erlaubt und aktiv ist.

Bit 30 = 1 → Bus Mastering ist enabled → der Controller darf DMA-Transfers initiieren (Rx/Tx-Descriptors, Ring-Buffer-Zugriffe usw.)

Bit 30 = 0 → Bus Mastering ist deaktiviert → der Chip kann keine DMA-Operationen starten → der Treiber liest zwar Register, aber es passiert nichts mit Paketen → meist "tot" / kein Link / kein Traffic möglich

Was bedeutet das konkret für i219 unter Windows XP?Der i219 (insbesondere ab I219-V/VM usw. ab ~2015/100-Serie-Chipsets) ist offiziell nie für Windows XP supported worden. Intel hat den e1000e-Treiber für XP schon sehr früh eingestellt (letzte offizielle Versionen waren meist für i210/i211/i218, teilweise i219 nur inoffiziell/hackig).Typische Probleme unter XP:

Der e1000e.sys-Treiber (oder modifizierte/ältere NDIS5-Version) setzt das Bus Master Enable-Bit im PCIe Command Register (Offset 0x04 im PCIe-Config-Space, Bit 2) nicht oder falsch.

XP-PnP/PCI-Enumerator respektiert manche moderne PCIe-Capabilities nicht richtig (z. B. ASPM, Power-Management-States, erweiterte Error-Handling).

Auf manchen Mainboards/BIOS-Versionen wird Bus Mastering für den i219-PHY im PCH nicht automatisch freigegeben, wenn der Treiber nicht genau passt.

Ergebnis: Der Treiber mapped die BAR, liest CTRL/STATUS, aber Bit 30 bleibt 0 → kein DMA → kein Netzwerkverkehr möglich (auch wenn "Gerät funktioniert irgendwie" angezeigt wird).

Posted

Intel just lies in their documentation.

Here is naked truth:

Bit Difference: Bit 30 = 0x40000000
On the i219, bit 30 of the STATUS register is:

STATUS.GIO_MASTER_ENABLE_STATUS — indicates whether GIO (PCIe) Master requests are enabled/active.

1 (0x40080640) → GIO Master is active — PCIe bus mastering is enabled and in use
0 (0x00080640) → GIO Master is disabled/idle — PCIe master requests have been quiesced

Dietmar

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...