reboot12 Posted March 1 Posted March 1 @Dietmar But first command to check is bad - where is end of each line ???
Dietmar Posted March 1 Posted March 1 @reboot12 I make a new driver and new KD block, just wait 5 min Dietmar
Dietmar Posted March 1 Posted March 1 @reboot12 https://www.upload.ee/files/19121353/i219v100.zip.html Run this KD until desktop with "g" Dietmar !sym quiet .reload /f i219.sys sxd ud bc * bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\n\", poi(@esp+0x0c); gc" bu i219!I219TxPrime ".if (poi(@esp+4)==0) { gc } .else { r $t0=poi(@esp+4); .if (@$t0 < 0x80000000) { gc } .else { r $t1=poi(@$t0+0xDC); .if ((@$t1==0) || (@$t1 < 0x80000000)) { gc } .else { .echo TXPRIME; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x2808 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3820 L4; dd @$t1+0x3840 L1; gc } } }" bu i219!I219TxKick ".if (poi(@esp+4)==0) { gc } .else { r $t0=poi(@esp+4); .if (@$t0 < 0x80000000) { gc } .else { r $t1=poi(@$t0+0xDC); .if ((@$t1==0) || (@$t1 < 0x80000000)) { gc } .else { .echo TXKICK; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x2808 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3820 L4; dd @$t1+0x3840 L1; gc } } }" bu i219!I219TxSendOne ".if (poi(@esp+4)==0) { gc } .else { r $t0=poi(@esp+4); .if (@$t0 < 0x80000000) { gc } .else { r $t1=poi(@$t0+0xDC); .if ((@$t1==0) || (@$t1 < 0x80000000)) { gc } .else { .echo TXONE; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x2808 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3820 L4; dd @$t1+0x3840 L1; gc } } }" bu i219!I219TxReclaim ".if (poi(@esp+4)==0) { gc } .else { r $t0=poi(@esp+4); .if (@$t0 < 0x80000000) { gc } .else { r $t1=poi(@$t0+0xDC); .if ((@$t1==0) || (@$t1 < 0x80000000)) { gc } .else { .echo TXRECLAIM; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x2808 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3820 L4; dd @$t1+0x3840 L1; gc } } }" bu i219!I219HandleInterrupt ".if (poi(@esp+4)==0) { gc } .else { r $t0=poi(@esp+4); .if (@$t0 < 0x80000000) { gc } .else { r $t1=poi(@$t0+0xDC); .if ((@$t1==0) || (@$t1 < 0x80000000)) { gc } .else { .echo INTX; dd @$t1+0x0008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc } } }" g
Dietmar Posted March 1 Posted March 1 @reboot12 here is repaired KD block for the new driver version 100 Dietmar !sym quiet .reload /f i219.sys sxd ud bc * bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\n\", poi(esp+0x0c); gc" bu i219!I219TxPrime ".if (poi(esp+4)==0) { gc } .else { r $t0=poi(esp+4); .if ($t0==0) { gc } .else { .if ($t0<0x80000000) { gc } .else { r $t1=poi($t0+0xDC); .if ($t1==0) { gc } .else { .if ($t1<0x80000000) { gc } .else { .echo TXPRIME; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc } } } } }" bu i219!I219TxKick ".if (poi(esp+4)==0) { gc } .else { r $t0=poi(esp+4); .if ($t0==0) { gc } .else { .if ($t0<0x80000000) { gc } .else { r $t1=poi($t0+0xDC); .if ($t1==0) { gc } .else { .if ($t1<0x80000000) { gc } .else { .echo TXKICK; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc } } } } }" bu i219!I219TxSendOne ".if (poi(esp+4)==0) { gc } .else { r $t0=poi(esp+4); .if ($t0==0) { gc } .else { .if ($t0<0x80000000) { gc } .else { r $t1=poi($t0+0xDC); .if ($t1==0) { gc } .else { .if ($t1<0x80000000) { gc } .else { .echo TXONE; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc } } } } }" bu i219!I219TxReclaim ".if (poi(esp+4)==0) { gc } .else { r $t0=poi(esp+4); .if ($t0==0) { gc } .else { .if ($t0<0x80000000) { gc } .else { r $t1=poi($t0+0xDC); .if ($t1==0) { gc } .else { .if ($t1<0x80000000) { gc } .else { .echo TXRECLAIM; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc } } } } }" bu i219!I219TxWatchdog ".if (poi(esp+4)==0) { gc } .else { r $t0=poi(esp+4); .if ($t0==0) { gc } .else { .if ($t0<0x80000000) { gc } .else { r $t1=poi($t0+0xDC); .if ($t1==0) { gc } .else { .if ($t1<0x80000000) { gc } .else { .echo TXWD; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc } } } } }" g
reboot12 Posted March 1 Posted March 1 (edited) @Dietmar Don't you think that we have been checking things for several days that are still working and the main problem lies in another place? i219v100 repaired - https://pastebin.com/GcqsqjCG Edited March 1 by reboot12
Dietmar Posted March 1 Posted March 1 @reboot12 Why the driver not starts is clear: RX works, TX not. I had the exact same symptoms on my compi, but after one week of hard work I solved it Dietmar PS: So please use this driver and this KD for one time more. After this, I also need Pause, may be 2 hours Dietmar !sym quiet .reload /f i219.sys sxd ud bc * x i219!*TxW* x i219!*Watch* bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\n\", poi(esp+0x0c); gc" bu i219!I219TxPrime ".if (poi(esp+4)==0) { gc } .else { r $t0=poi(esp+4); .if ($t0==0) { gc } .else { .if ($t0<0x80000000) { gc } .else { r $t1=poi($t0+0xDC); .if ($t1==0) { gc } .else { .if ($t1<0x80000000) { gc } .else { .echo TXPRIME; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc } } } } }" bu i219!I219TxKick ".if (poi(esp+4)==0) { gc } .else { r $t0=poi(esp+4); .if ($t0==0) { gc } .else { .if ($t0<0x80000000) { gc } .else { r $t1=poi($t0+0xDC); .if ($t1==0) { gc } .else { .if ($t1<0x80000000) { gc } .else { .echo TXKICK; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc } } } } }" bu i219!I219TxSendOne ".if (poi(esp+4)==0) { gc } .else { r $t0=poi(esp+4); .if ($t0==0) { gc } .else { .if ($t0<0x80000000) { gc } .else { r $t1=poi($t0+0xDC); .if ($t1==0) { gc } .else { .if ($t1<0x80000000) { gc } .else { .echo TXONE; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc } } } } }" bu i219!I219TxReclaim ".if (poi(esp+4)==0) { gc } .else { r $t0=poi(esp+4); .if ($t0==0) { gc } .else { .if ($t0<0x80000000) { gc } .else { r $t1=poi($t0+0xDC); .if ($t1==0) { gc } .else { .if ($t1<0x80000000) { gc } .else { .echo TXRECLAIM; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc } } } } }" g
reboot12 Posted March 1 Posted March 1 @Dietmar i219v100 next - https://pastebin.com/mkKKvicF It's a pity that you've been sitting for so long and the driver only works for you. Now if we can get it working for me, it will work for you and me. I wonder if the driver will work for other users with the i219 card ??? 10 minutes ago, Dietmar said: After this, I also need Pause, may be 2 hours Yeaa, I also think that's enough for today
Dietmar Posted March 1 Posted March 1 @reboot12 It is all about this crazy ME. It stops a not autorisized driver. But the most crazy thing is, that after this hard week for looking how to overcome ME, this my build driver works on all my compis with different i219 Dietmar
Dietmar Posted March 1 Posted March 1 @reboot12 Try this KD, compi needs to be restarted Dietmar !sym quiet .reload /f i219.sys sxd ud bc * bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\n\", poi(esp+0x0c); gc" bu i219!I219TxPrime "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo TXPRIME; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L3; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc" bu i219!I219TxSendOne "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo TXONE; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L3; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc" bu i219!I219TxKick "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo TXKICK; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2808 L3; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3820 L4; dd $t1+0x3840 L1; gc" g
reboot12 Posted March 1 Posted March 1 45 minutes ago, Dietmar said: this my build driver works on all my compis with different i219 Strange that it doesn't work for me Are there such problems with other network cards, e.g. i217, or only with i219? I have another i211 network card on my same Industrial board and I have a working driver for XP. Maybe I need to preview its operation in WinDbg and that will help for i219 ??? P.S. Tomorrow I will check your next commands in KD.
Dietmar Posted March 1 Posted March 1 @reboot12 It is all ONLY about this bit vMMIO mapped status=00080640 ==> vMMIO mapped status=40080640 (PCIm/DMoff/Low-Power, means GIO master disable) ==> MAC i „GIO master enabled“ I make a new driver for to force this before TX starts Dietmar
Dietmar Posted March 1 Posted March 1 (edited) @reboot12 I make a new driver, that waits with TX until this bit in MMIO status 0x40000000 is set. And the KD block for this, hit "g" until you reach desktop Dietmar https://www.upload.ee/files/19121949/i219fixGiomaster.zip.html !sym quiet .reload /f i219.sys sxd ud bc * bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .echo CTRLKICK_IN; .printf \"ADP=%p REGS=%p SLOT=%x\n\", $t0, $t1, poi($t0+0xF4); dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L3; bp /1 @$t2 \".echo CTRLKICK_OUT; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L3; gc\"; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .echo TXRXSTART_IN; .printf \"ADP=%p REGS=%p SLOT=%x\n\", $t0, $t1, poi($t0+0xF4); dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x02828 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x00D0 L1; bp /1 @$t2 \".echo TXRXSTART_OUT; dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x02828 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x00D0 L1; gc\"; gc" bp /1 i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\n\", poi(@esp+0x0c); gc" bp /1 i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo TXONE; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; gc" bp /1 i219!I219MiniportISR "r $t0=poi(@esp+0x0c); r $t1=poi($t0+0xDC); .echo ISR; dd @$t1+0x0008 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; gc" bp /1 i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo HANDLEINT; dd @$t1+0x0008 L1; dd @$t1+0x00C0 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; gc" bp /1 i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo TXRECLAIM; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; gc" bp /1 i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo RXPOLL; dd @$t1+0x0008 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x02828 L1; gc" g and this for to check, which registers are the same from the beginning of my Asus WS pro with same I219-LM chip !sym quiet .reload /f i219.sys sxd ud bc * bu i219!I219MiniportInitialize ".echo INIT; gc" bu i219!I219PciForceBusMaster ".echo BME; r $t0=poi(@esp+4); r $t1=poi(@esp+8); .printf \"h=%p slot=%x\n\", $t0, $t1; gc" bu i219!I219WaitForGioMaster "r $t0=poi(@esp+4); r $t1=poi(@esp+8); r $t2=poi(@esp+0xc); .echo WAITGIO; .printf \"a=%p tries=%u stall=%u\n\", $t0, $t1, $t2; r $t3=poi(@$t0+0xE0); dd @$t3+0x0008 L1; gc" bu i219!I219EnsureGioMasterReady "r $t0=poi(@esp+4); .echo ENSUREGIO; .printf \"a=%p\n\", $t0; r $t1=poi(@$t0+0xE0); dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x5b50 L1; dd @$t1+0x5b54 L1; dd @$t1+0x5b58 L1; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xE0); .echo TXRX; .printf \"a=%p regs=%p\n\", $t0, $t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x5b50 L1; dd @$t1+0x5b54 L1; dd @$t1+0x5b58 L1; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xE0); .echo TXRECLAIM; .printf \"a=%p regs=%p\n\", $t0, $t1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xE0); .echo RXPOLL; .printf \"a=%p regs=%p\n\", $t0, $t1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; gc" g Edited March 1 by Dietmar
Dietmar Posted March 1 Posted March 1 (edited) @reboot12 And here is next, until now best driver. I will test this one also on the ASRock Industrial IMB-1312 Micro ATX Motherboard Q370 DDR4 LGA1151 because that board is similar to your Advantech AIMB-786 REV:A1 19A1078602-01, BIOS AMI UEFI V5.00 in the way of lan i219_LM Dev_15BB Dietmar https://www.upload.ee/files/19122562/i219besttt.zip.html Edited March 1 by Dietmar
reboot12 Posted March 2 Posted March 2 (edited) @Dietmar i219fixGiomaster & i219besttt drivers hangs the WinXP. After reboot (force) yellow exclamation mark and error Code 31 in Device Manager: What's going on here, it's starting to really annoy me I'm going to the garden to cut the branches of fruit trees (Obstbäume beschneiden) Edited March 2 by reboot12
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