Dave-H Posted February 24 Posted February 24 33 minutes ago, reboot12 said: @Dietmar We should move to WebChat because we're cluttering up the forum - they're going to block us or something. https://www.upload.ee/files/19106406/i219_dhcp_trace3_0f9c_2026-02-24_14-56-16-439.log.html go to WebChat: https://webchat.quakenet.org/?channels=i219 Don't worry, you're fine. This sort of thing is exactly what this forum is all about! 2
Dietmar Posted February 24 Posted February 24 @reboot12 I make a new i219 driver, based on your logs Dietmar https://www.upload.ee/files/19106535/i219DHCP.zip.html
reboot12 Posted February 24 Posted February 24 @Dietmar After installing the i219 driver, I always set a static IP. The DHCP client service is disabled because if WinXP does not receive an IP from DHCP, it takes a long time to start, and if it has a static one, it starts almost immediately. So I don't know if your DHCP commands will be useful for anything. i219DHCP driver not work
Dietmar Posted February 24 Posted February 24 @reboot12 Please give me the output from Windbg for this new DHCP i219 driver, after this lines in KD of Windbg Dietmar .reload /f i219.sys bc * bp nt!DebugService2 "gc" bu i219!I219PollTimerFunc ".echo TIMER; gc" bu i219!I219TxRxPollEx ".echo POLL; gc" bu i219!I219RxPoll ".echo RXPOLL; gc" bu i219!I219MiniportISR ".echo ISR; gc" bu i219!I219MiniportHandleInterrupt ".echo HINT; gc" bu i219!I219IndicateMediaState ".echo MEDIA; gc" bu i219!I219TxRxStart ".echo TXRXSTART; gc" bu i219!I219MiniportQueryInformation ".printf \"QRY OID=%08x LEN=%u\n\", poi(@esp+8), poi(@esp+0x10); gc" bu i219!I219MiniportSetInformation ".printf \"SET OID=%08x LEN=%u BUF=%p\n\", poi(@esp+8), poi(@esp+0x10), poi(@esp+0x0c); .if (poi(@esp+8)==0x0001010e) { .printf \"PFnew=%08x\n\", poi(poi(@esp+0x0c)); } gc" bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u ARR=%p\n\", poi(@esp+0x0c), poi(@esp+8); gc" g
Dietmar Posted February 24 Posted February 24 @reboot12 No need for DHCP: Set static IP in the same subnet (e.g. 192.168.2.IPfromcompi / 255.255.255.0, gateway 192.168.IPfrom Router) Open CMD and run: arp -d * ping -n 1 IPfromRouter then ping -t IPfromRouter for 10–20 seconds then arp -a If arp -a never shows a MAC for IpfromRouter, that’s almost always broadcast RX (or RX in general) Dietmar
reboot12 Posted February 24 Posted February 24 @Dietmar OK, this is last log today: https://pastebin.com/sg00Nmtr I've had enough for today - I'll be back tomorrow.
Dietmar Posted February 24 Posted February 24 @reboot12 I make a new i219 for you. https://www.upload.ee/files/19106714/i219bind.zip.html And here comes the code, that you please put into KD with this new i219 (named .reload /f i219.sys bc * bu i219!I219MiniportInitialize ".echo INIT; gc" bu i219!I219MiniportQueryInformation ".printf \"QRY OID=%08x LEN=%u\\n\", poi(@esp+8), poi(@esp+0x10); gc" bu i219!I219MiniportSetInformation ".printf \"SET OID=%08x LEN=%u\\n\", poi(@esp+8), poi(@esp+0x10); gc" bu i219!I219DoCtrlKickLate ".echo CTRLKICK; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"TXRXSTART a=%p regs=%p\\n\", $t0, $t1; dd $t1+0x0008 L1; dd $t1+0x00d0 L1; dd $t1+0x0100 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; gc" bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\\n\", poi(@esp+0x0c); gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"RXPOLL regs=%p\\n\", $t1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; gc" bu i219!I219MiniportISR ".echo ISR; gc" bu i219!I219MiniportHandleInterrupt ".echo HINT; gc" g bind) driver. When you come to a breakpoint in KD with name D2 (debugservice2), just enter few times (until the end, when nothing more happens, is shown or breaks at a defined place) g so that Windbg comes forward with more output Dietmar
Dietmar Posted February 24 Posted February 24 (edited) @reboot12 And here is the nextnext one with name i219 coll Dietmar https://www.upload.ee/files/19106771/i219coll.zip.html And here are the Windbg KD for THIS version coll .logopen /t c:\i219_rescue_windbg.log .reload /f i219.sys bc * x i219!*Miniport*Set* x i219!*Miniport*Query* x i219!*Send* x i219!*Rx* x i219!*Poll* x i219!*Isr* x i219!*HandleInterrupt* x i219!*Indicate* x ndis!NdisMEthIndicateReceive x ndis!NdisMEthIndicateReceiveComplete x ndis!NdisMIndicateStatus x ndis!NdisMIndicateStatusComplete bu i219!I219MiniportInitialize ".echo INIT; gc" bu i219!I219IndicateMediaState ".printf \"MEDIA %u\n\", poi(@esp+8); gc" bu i219!I219MiniportQueryInformation ".printf \"QRY OID=%08x LEN=%u\n\", poi(@esp+8), poi(@esp+0x10); gc" bu i219!I219MiniportSetInformation ".printf \"SET OID=%08x LEN=%u BUF=%p\n\", poi(@esp+8), poi(@esp+0x10), poi(@esp+0x0c); .if (poi(@esp+8)==0x0001010e) { .printf \"PF=%08x\n\", poi(poi(@esp+0x0c)); } gc" bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u ARR=%p\n\", poi(@esp+0x0c), poi(@esp+8); gc" bm i219!*TxSend* ".echo TXSEND; gc" bm i219!*TxReclaim* ".echo TXRECLAIM; gc" bu ndis!NdisMEthIndicateReceive ".printf \"RX H=%u LA=%u PKT=%u\n\", poi(@esp+0x10), poi(@esp+0x18), poi(@esp+0x1c); gc" bu ndis!NdisMEthIndicateReceiveComplete ".echo RXC; gc" bu i219!I219MiniportISR ".echo ISR; gc" bu i219!I219MiniportHandleInterrupt ".echo HINT; gc" bm i219!*PollTimer* ".echo TIMER; gc" bm i219!*RxPoll* ".echo RXPOLL; gc" bu ndis!NdisMIndicateStatus ".printf \"STAT GS=%08x SZ=%u\n\", poi(@esp+8), poi(@esp+0x10); gc" bu ndis!NdisMIndicateStatusComplete ".echo STATC; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+@@c++(&((i219!_I219_ADAPTER*)0)->Regs)); .printf \"TXRXSTART a=%p regs=%p\n\", $t0, $t1; dd $t1+0x0008 L1; dd $t1+0x0100 L1; dd $t1+0x00d0 L1; dd $t1+0x00c8 L1; dd $t1+0x00d8 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+@@c++(&((i219!_I219_ADAPTER*)0)->Regs)); .printf \"RXPOLL regs=%p\n\", $t1; dd $t1+0x00c8 L1; dd $t1+0x00d8 L1; dd $t1+0x0100 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; gc" g .logclose Edited February 24 by Dietmar
Dietmar Posted February 24 Posted February 24 @reboot12 I also make a check in the Bios of your industrial board with i219-LM Dev_15BB. Take a look, if all this settings are fulfilled, because if not, no driver can take control over this Bios settings Dietmar AIMB-786 (AMI UEFI v5.xx) – BIOS settings to DISABLE for XP + Intel I219-LM troubleshooting 1) Advanced → Network Stack Configuration - Network Stack = Disabled 2) Advanced → Chipset → PCH-IO Configuration - LAN1 Option-ROM = Disabled - LAN2 Option-ROM = Disabled - Deep Sleep = Disabled - PCIE Wake = Disabled - PowerOn by Modem = Disabled 3) Advanced → (PCH-FW / Intel ME / Manageability area) - AMT Configuration = Disabled (if there is an on/off switch) - CIRA Configuration → Activate Remote Assistance Process = Disabled - ASF Configuration → PET Progress = Disabled - ASF Configuration → WatchDog = Disabled - ASF Configuration → ASF Sensors Table = Disabled 4) Advanced → OEM Flags Settings - MEBx Selection Screen = Disabled IMPORTANT - After changing these settings: do a REAL power-cycle (shutdown → PSU off/unplug → wait 10–20 sec → power on).
Dietmar Posted February 24 Posted February 24 @reboot12 To this driver here I come, when I take a look at the Bios from your board Dietmar https://www.upload.ee/files/19107283/i219CollFix.zip.html
reboot12 Posted February 25 Posted February 25 (edited) 11 hours ago, Dietmar said: Take a look, if all this settings are fulfilled, because if not, no driver can take control over this Bios settings I have everything Disabled except: PCIE Wake for power PC over WOL LAN1 Controller - this is my i219 card so must be Enabled BTW - I have already written several times that the i219 card works OK in Win10 with these BIOS settings Wow - with i219bind driver speed is 100 Mbps but still 0 Sent / 0 Received Edited February 25 by reboot12
Dietmar Posted February 25 Posted February 25 @reboot12 I am out until 18:00 today, because of Jugend Forscht in city Hildesheim goog luck Dietmar
reboot12 Posted February 25 Posted February 25 (edited) @Dietmar i219bind log - I do g few times: https://pastebin.com/EgHhp4h8 i219coll 100 Mbps but 0/0 and log: https://www.upload.ee/files/19108296/i219_rescue_windbg_0af0_2026-02-25_08-18-08-125.log.html i219CollFix - 100 Mbps 0/0. If tried connect i219 to GBE device e.g. my laptop then cable unplugged and mouse cursor gets stuck about every 3 seconds Does your i219 driver allDEV work with old 100 Mbps devices or only with GBE devices ? Edited February 25 by reboot12
Dietmar Posted February 25 Posted February 25 @reboot12 Oh waaaoh, now your logs show, what is going wrong: Driver initializes OK, MMIO is mapped, MAC is read: 00-0c-f1-a7-ee-da Link is reported UP: LinkState -> UP 100Mb FD Bring-up runs: bring-up (CTRL kick + TX/RX) and then TxRxStart OK But afterward your polling shows no receive progress: RXPOLL: dd regs+0x2810 = 00000000 (RDH stays 0) RXPOLL: dd regs+0x2818 = 0000001f (RDT stays 0x1f) That exactly matches the symptom “no DHCP, no ping”: Windows sends, but your driver never indicates any received frames. The bug is in code from driver , not the router. In BINDi219.c your RX descriptor layout is wrong for the classic Intel “legacy” RX descriptor. You currently define RX like this: buffer_addr (ok) then status_error (ULONG) then length (USHORT) But Intel’s legacy RX descriptor is actually: buffer_addr (8 bytes) length (2) csum (2) status (1) ← DD/EOP live here errors (1) special (2) So your code reads: ULONG se = RxDesc[idx].status_error; UCHAR st = (UCHAR)(se & 0xFF); if ((st & DD)==0) break; …but the real status byte is not located where you read it. Result: your RX loop always thinks “no packet”, so you never pass packets up to NDIS → DHCP + ping fail. I soon send you updated driver Dietmar
Dietmar Posted February 25 Posted February 25 @reboot12 Here is the driver, corrected for the error above. Even before it was nearly ready, now it should work Dietmar https://www.upload.ee/files/19110246/i219LMbest.zip.html
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now