Dietmar Posted February 21 Posted February 21 @reboot12 Yes, there is for sure another problem. I check all my versions for i219. They all work also on the device with Dev_15BB Dietmar PS: I use my last build of acpi.sys. This is the acpi.sys that also Ramsey uses.
reboot12 Posted February 22 Posted February 22 (edited) @Dietmar I tested acpi.sys 5.2.3790.7777 - same problem. I have enabled LAN Boot ROM for i219 in the BIOS and I can boot from my PXE server installed on my OpenWrt router without any problems, which means that: network cable is 100% functional DHCP server works OK BIOS settings OK I also installed Win10 64-bit Legacy MBR and the i219 card works without any problems (the system has its own drivers) - same cable, same router: Edited February 22 by reboot12
Dietmar Posted February 22 Posted February 22 (edited) @reboot12 Do you have Windbg 6.3.9600.17200 X86 ? Then run a Windbg session. Use my i219.pdb . You can load it when you show Windbg the path to it and run !sym noisy .reload /f sxe ld:i219 sxe ud:i219 g .reload /f i219.sys lm m i219 You can ask me or ChatGPT for the output results. At once you will find the reason Dietmar Edited February 22 by Dietmar
reboot12 Posted February 22 Posted February 22 1 hour ago, Dietmar said: Do you have Windbg 6.3.9600.17200 X86 ? Yes, I have this version. P.S. I tested your drivers and noticed so with version i219DRIVERXPSP3moreDevicesInf WinXP shutdown but PC not power off - CPU fan still work. After replace .sys driver to version v4 LM then PC power off OK
reboot12 Posted February 22 Posted February 22 (edited) @Dietmar Please go to webchat - now I try WinDbg and need help: https://webchat.quakenet.org/?channels=windbg I ran WinDbg through the serial port and I got this (IRQ seen -> stopping poll) : https://pastebin.com/Ckfuicjq I debug v4 LM driver version. Edited February 22 by reboot12
Dietmar Posted February 22 Posted February 22 @reboot12 I just look at you output from Windbg and will give you soon a new driver i219-LM v5 Dietmar
Dietmar Posted February 22 Posted February 22 @reboot12 here it is, also with Source files Dietmar https://www.upload.ee/files/19099906/i219-LM-v5.zip.html
reboot12 Posted February 22 Posted February 22 (edited) @Dietmar Some diff in WinDbg but still not work https://pastebin.com/y2n4gSVM Edited February 22 by reboot12
Dietmar Posted February 22 Posted February 22 @reboot12 You make BIG progress NdisMRegisterInterrupt ... -> 0x00000000 means work now. # ============================================================ # i219 XP IRQ/TX/RX DEBUG SCRIPT for WinDbg (copy/paste all) # ============================================================ # Goal: # - prove what IRQ gets CONNECTED (HalGetInterruptVector / IoConnectInterrupt) # - prove ISR fires repeatedly (not only once) # - detect if interrupts get masked (writes to IMC/IMS) # - prove whether TX and RX paths run # # IMPORTANT: # - This script assumes your BAR0 from log is: c0200000 # - Adjust symbol names if your build uses different function names. # - If any bp fails, run: x i219!*Interrupt* / x i219!*Send* / x i219!*Rx* # and replace the breakpoint target names accordingly. # # Output log file: # C:\i219_friend_irqtrace.txt # ============================================================ .symfix .sympath+ C:\symbols .reload /f .logopen /t C:\i219_friend_irqtrace.txt # If you have local PDBs, add your path (EDIT THIS PATH if needed): # .sympath+ C:\i219_xp_wdk7600_skeleton_v33_register_morehandlers_stubsfix\wdm\objchk_wxp_x86\i386 # .reload /f i219.sys # Stop when i219 loads sxe ld:i219 g # Show module + symbols lm m i219 x i219!* # ------------------------------------------------------------ # Set BAR0 base (from your log) # ------------------------------------------------------------ r @$t0 = 0xC0200000 .printf "BAR0=%p\n", @$t0 dd @$t0 L2 # ------------------------------------------------------------ # 1) See how HAL translates IRQ (bus lvl/vec -> system vector/irql) # ------------------------------------------------------------ # Prints: InterruptType, BusNumber, BusIrql(Level), BusVector bp hal!HalGetInterruptVector ".printf \"HalGetInterruptVector IT=%u Bus=%u L=%u V=%u\\n\", poi(@esp+4), poi(@esp+8), poi(@esp+0xC), poi(@esp+0x10); gu" g # ------------------------------------------------------------ # 2) See what kernel actually connects # ------------------------------------------------------------ # Prints: Vector, Irql, Mode, Share bp nt!IoConnectInterrupt ".printf \"IoConnectInterrupt Vector=%u Irql=%u Mode=%u Share=%u\\n\", poi(@esp+0x14), poi(@esp+0x18), poi(@esp+0x20), poi(@esp+0x24); gu" g # ------------------------------------------------------------ # 3) Find your ISR/DPC/SEND/RX symbol names # ------------------------------------------------------------ .printf "\n--- SYMBOL HINTS (use these to adjust bp names if needed) ---\n" x i219!*HandleInterrupt* x i219!*Isr* x i219!*Dpc* x i219!*Interrupt* x i219!*Send* x i219!*Receive* x i219!*Indicate* x i219!*Rx* .printf "--- END SYMBOL HINTS ---\n\n" # ------------------------------------------------------------ # 4) Count ISR hits + show ICR/IMS/IMC (e1000-style offsets) # ICR=0xC0, IMS=0xD0, IMC=0xD8 # ------------------------------------------------------------ r @$t1 = 0 bp i219!I219MiniportHandleInterrupt "r @$t1=@$t1+1; .if (@$t1<=200) { .printf \"ISR#%u ICR=%08x IMS=%08x IMC=%08x\\n\", @$t1, poi(@$t0+0xC0), poi(@$t0+0xD0), poi(@$t0+0xD8); } ; gc" g # If the breakpoint above fails (symbol not found), # replace i219!I219MiniportHandleInterrupt with whatever your 'x i219!*Interrupt*' shows. # ------------------------------------------------------------ # 5) Trap ANY masking/enabling of interrupts by watching IMC/IMS writes # This is extremely useful if ISR fires once then stops. # ------------------------------------------------------------ ba w4 @$t0+0xD8 ".printf \"WRITE IMC(mask) IMC=%08x EIP=%p\\n\", poi(@$t0+0xD8), @eip; kb; gc" ba w4 @$t0+0xD0 ".printf \"WRITE IMS(enable) IMS=%08x EIP=%p\\n\", poi(@$t0+0xD0), @eip; kb; gc" g # ------------------------------------------------------------ # 6) TX path counter (does NDIS call your send handler?) # ------------------------------------------------------------ r @$t2 = 0 bp i219!I219MiniportSendPackets "r @$t2=@$t2+1; .if (@$t2<=200) { .printf \"TX#%u\\n\", @$t2; } ; gc" g # If symbol differs, replace with your real send handler # from: x i219!*Send* # ------------------------------------------------------------ # 7) RX path counter (do you process/indicate receives?) # ------------------------------------------------------------ r @$t3 = 0 bp i219!I219RxProcess "r @$t3=@$t3+1; .if (@$t3<=200) { .printf \"RXPROC#%u\\n\", @$t3; } ; gc" g # If symbol differs, replace with your real RX worker function # from: x i219!*Rx* or x i219!*Receive* or x i219!*Indicate* # ------------------------------------------------------------ # 8) One-time quick snapshot of key regs after link-up # (run manually when you see LinkState -> UP in your driver log) # ------------------------------------------------------------ .printf "\n--- SNAPSHOT (run after LinkState -> UP) ---\n" dd @$t0+0x0000 L2 dd @$t0+0x0008 L2 dd @$t0+0x00C0 L1 dd @$t0+0x00D0 L1 dd @$t0+0x00D8 L1 .printf "--- END SNAPSHOT ---\n" # ------------------------------------------------------------ # 9) Close logging when done # ------------------------------------------------------------ # .logclose # ============================================================ # How to read results (quick): # - ISR# increases continuously => interrupts fire. # - If ISR# increases but TX# and RXPROC# stay 0 => NDIS not calling send or RX not processed. # - If ISR# hits once then stops and you see WRITE IMC => interrupts got masked; stack shows who. # ============================================================ # NOTE: # Some previously uploaded i219.c/i219.h files on my side may have expired; if you want code patches again, # re-upload the exact current files you are building.
Dietmar Posted February 23 Posted February 23 (edited) Yesssssaaa!!!!!!! after 48 hours crazy work with Windbg I get a lan driver for the 2.5 GB Realtek RTL8125 under XP SP3. I have not tested everything until now, but look at this..nicccceeee Dietmar Edited February 23 by Dietmar 3
reboot12 Posted February 23 Posted February 23 On 2/13/2026 at 8:10 PM, Dietmar said: After about 100 hours of crazy work with Windbg I succeed to build a working i219 Dev_15B8 lan driver for Windows XP SP3. 4 hours ago, Dietmar said: after 48 hours crazy work with Windbg I get a lan driver for the 2.5 GB Realtek RTL8125 under XP SP3. When you tested different versions of your drivers Intel & Realtek, did you have problems with 0 Received / 0 Sent packets ???
Dietmar Posted February 23 Posted February 23 @reboot12 Yes, most of the time nothing works. Albert Einstein says one time: "I only start with something, when I see a light at the end of the tunnel." This is not me. I even start to work, when after days I do not see a hint for a small light at the end of the tunnel. This behavior, that you dont see any packages, is, that your DHCP router is not "seen" from your lan card and vice versa. A working ping means to send and to receive, even with no count of packages in XP. When you send me some information via Windbg, together we will solve this problem. I had exact this problem with the i219, when I enlarge the size of the rings. And I have no idea why. So I go down with size of the rings, that this behavior does not happen to me. The i219 is much more crazy in behavior than the RTL8125. But for me it was the ideal training ground Dietmar
reboot12 Posted February 23 Posted February 23 6 minutes ago, Dietmar said: This behavior, that you dont see any packages, is, that your DHCP router is not "seen" from your lan card and vice versa. But I wrote that the same router, the same network cable and the same i219 card in Win10 sees the router correctly and receives the DHCP configuration, network and Internet work OK, packet sended and received OK 8 minutes ago, Dietmar said: When you send me some information via Windbg, together we will solve this problem. What else should I send from WinDbg? I'm running WinDbg 6.3.9600.17200 X86 on a WinXP 64-bit symbolless host system. How to install symbols?
Dietmar Posted February 23 Posted February 23 @reboot12 Do you have the original Symbols for XP SP3, NOT the debug version? WindowsXP-KB936929-SP3-x86-symbols-full-ENU.exe First unpack them to a folder C:\symbols Do not choose another name or other path. Dietmar
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