Jump to content

Dietmar

Member
  • Posts

    1,852
  • Joined

  • Last visited

  • Days Won

    10
  • Donations

    0.00 USD 
  • Country

    Germany

Everything posted by Dietmar

  1. @reboot12 Here is W13, where I try to force DMA and new KD block Dietmar https://www.upload.ee/files/19129411/i219W13.zip.html !sym quiet .reload /f i219.sys sxd ud bc * bu /1 i219!I219MiniportInitialize ".echo ====W13_INIT====; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W13_WARMRESET====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x00100 L1; dd @$t1+0x00400 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03840 L1; dd @$t1+0x03940 L1; dd @$t1+0x03004 L1; dd @$t1+0x05008 L1; gc" bu /1 i219!I219InitHwBitsLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W13_INITBITS====; dd @$t1+0x0018 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03840 L1; dd @$t1+0x03940 L1; dd @$t1+0x03004 L1; dd @$t1+0x05008 L1; gc" bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W13_CTRLKICK====; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x03004 L1; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W13_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x0018 L1; dd @$t1+0x00100 L1; dd @$t1+0x00400 L1; dd @$t1+0x00410 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x02828 L1; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x0382C L1; dd @$t1+0x03840 L1; dd @$t1+0x03940 L1; dd @$t1+0x03004 L1; dd @$t1+0x05008 L1; gc" bu i219!I219PrimeTxPathLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W13_PRIMETX==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x00400 L1; dd @$t1+0x00410 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x0382C L1; dd @$t1+0x03840 L1; dd @$t1+0x03940 L1; dd @$t1+0x03004 L1; gc" bu i219!I219TxForceKick "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W13_FORCEKICK==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0008 L1; dd @$t1+0x00400 L2; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03840 L1; dd @$t1+0x03940 L1; dd @$t1+0x03004 L1; dd @$t1+0x05008 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W13_SENDPACKETS==== cnt=%lu a=%p\n\", poi(@esp+0x0c), @$t0; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W13_TXONE====; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W13_TXRECLAIM====; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03004 L1; dd i219!g_TxSubmits L5; gc" bu /1 i219!I219MiniportISR ".echo ====W13_ISR_ONCE====; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W13_DPC====; dd @$t1+0x000C0 L1; dd @$t1+0x000D0 L1; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x02828 L1; dd @$t1+0x03004 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W13_RXPOLL====; dd @$t1+0x00100 L1; dd @$t1+0x05008 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x02828 L1; dd @$t1+0x0008 L1; gc" g
  2. @reboot12 Here is W12. I just take a look again at Linux e1000e, how they managed to open DMA transfer. And also KD block Dietmar https://www.upload.ee/files/19129240/i219W12.zip.html !sym quiet .reload /f i219.sys sxd ud bc * bu /1 i219!I219MiniportInitialize ".echo ====W12_INIT====; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_WARMRESET====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B54 L1; dd @$t1+0x00100 L1; dd @$t1+0x00400 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03840 L2; dd @$t1+0x05008 L1; dd @$t1+0x03004 L1; gc" bu /1 i219!I219InitHwBitsLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_INITBITS====; dd @$t1+0x0018 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03840 L2; dd @$t1+0x05008 L1; dd @$t1+0x03004 L1; gc" bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_CTRLKICK====; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x02828 L1; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x0382C L1; dd @$t1+0x03840 L2; dd @$t1+0x00410 L1; dd @$t1+0x03004 L1; dd @$t1+0x00400 L1; dd @$t1+0x00100 L1; gc" bu i219!I219PrimeTxPathLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W12_PRIMETX==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x00400 L1; dd @$t1+0x00410 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x0382C L1; dd @$t1+0x03840 L2; gc" bu i219!I219TxDisableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_TXDISABLEQ====; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; gc" bu i219!I219TxEnableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_TXENABLEQ====; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; gc" bu i219!I219TxForceKick "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W12_FORCEKICK==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0008 L1; dd @$t1+0x00400 L2; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; dd @$t1+0x03840 L2; dd @$t1+0x03004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W12_SENDPACKETS==== cnt=%lu a=%p\n\", poi(@esp+0x0c), @$t0; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_TXONE====; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_TXRECLAIM====; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x03928 L1; gc" bu /1 i219!I219MiniportISR ".echo ====W12_ISR_ONCE====; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_DPC====; dd @$t1+0x000C0 L1; dd @$t1+0x000D0 L1; dd @$t1+0x03810 L1; dd @$t1+0x03818 L1; dd @$t1+0x03828 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x02828 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W12_RXPOLL====; dd @$t1+0x00100 L1; dd @$t1+0x05008 L1; dd @$t1+0x02810 L1; dd @$t1+0x02818 L1; dd @$t1+0x02828 L1; gc" g
  3. @reboot12 And here comes version W11 for the driver i219 for XP SP3 and please this KD until desktop with "g" Dietmar https://www.upload.ee/files/19128480/i219W11.zip.html !sym quiet .reload /f i219.sys sxd ud bc * bu /1 i219!I219MiniportInitialize ".echo ====W11_INIT====; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"W11_TXRX_IN a=%p regs=%p ret=%p\n\", $t0, $t1, $t2; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; bp /1 @$t2 \".echo ====W11_TXRX_OUT====; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; gc\"; gc" bu i219!I219TxForceKick "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"W11_FORCEKICK_IN a=%p regs=%p ret=%p\n\", $t0, $t1, $t2; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x0410 L1; dd @$t1+0x3828 L1; dd i219!g_TxSubmits L5; bp /1 @$t2 \".echo ====W11_FORCEKICK_OUT====; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x0410 L1; dd @$t1+0x3828 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc\"; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); .printf \"W11_SEND cnt=%u a=%p\n\", poi(@esp+0x0c), $t0; dd i219!g_TxSubmits L5; gc" bu i219!I219TxSendOne "r $t0=poi(@esp+4); .printf \"W11_TXONE a=%p\n\", $t0; dd i219!g_TxSubmits L5; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====W11_TXRECLAIM====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; gc" bu /1 i219!I219MiniportISR ".echo ====W11_ISR_ONCE====; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====W11_DPC====; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====W11_RXPOLL====; dd @$t1+0x0100 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; gc" g
  4. @reboot12 I build new driver W10 for XP SP3 and i219-LM, please test and also the KD block Dietmar https://www.upload.ee/files/19128368/i219W10.zip.html bc * bu /1 i219!I219MiniportISR ".echo ====ISR_ONCE_W10_SAFE====; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====DPC_W10_SAFE====; dd @$t1+0x0008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"SENDPACKETS cnt=%lu\n\", poi(@esp+0x0c); dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd i219!g_TxSubmits L5; bp /1 poi(@esp) \".echo ====SENDPACKETS_OUT_W10_SAFE====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd i219!g_TxSubmits L5; gc\"; gc" bu i219!I219MiniportSend "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"SEND pkt=%p\n\", poi(@esp+8); dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; bp /1 poi(@esp) \".echo ====SEND_OUT_W10_SAFE====; r eax; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd i219!g_TxSubmits L5; gc\"; gc" bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"TXSENDONE pkt=%p\n\", poi(@esp+8); dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; bp /1 poi(@esp) \".echo ====TXSENDONE_OUT_W10_SAFE====; r eax; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd i219!g_TxSubmits L5; gc\"; gc" bu i219!I219TxForceKick "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"TXFORCEKICK hard=%lu\n\", poi(@esp+8); dd @$t1+0x0400 L2; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; bp /1 poi(@esp) \".echo ====TXFORCEKICK_OUT_W10_SAFE====; dd @$t1+0x0400 L2; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd i219!g_TxSubmits L5; gc\"; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====TXRECLAIM_W10_SAFE====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd i219!g_TxSubmits L5; gc" bu /1 i219!I219PollTimerFunc "r $t0=poi(@esp+8); r $t1=poi($t0+0xDC); .echo ====POLL_W10_SAFE====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd i219!g_TxSubmits L5; gc" g
  5. @reboot12 I build for you a minimal driver package for WIN7, bit 32 without any EEE etc. in its *.inf Please check, if this lan driver works on your AIMB-786 board under win7. Then we have a stable basis, from which we can operate Dietmar https://www.upload.ee/files/19128225/i219Win7.zip.html Edit: On my Asus z390 WS pro I cant install this driver in win7 Sp1 bit 32. This board has also the i219 lan driver with Dev_15BB .
  6. @reboot12oh interesting.Make a test.Delete everything in registry and in windows\inf oem and the driver from win10 itself.Then edit its Win10 *.inf,deleting all the extra reg Settings and after this,look with this *.inf the win10 driver still installs Dietmar
  7. @reboot12 I see, that the *.inf from the win10 driver sets special values for EEE, ULP etc. in Registry via *.reg commands in this *.inf. Now I integrate them also in our i219.inf and the to this belonging places in the driver i219.sys itself. This is a crazy hard job. I am back here at about 19:00. What we have: RX works, TX is ready in the ring, but is not read. So, a special bit forbids just this performanve from TX. And those special settings in registry can make this Dietmar
  8. @reboot12 here is new W9 driver and KD Dietmar https://www.upload.ee/files/19127039/i219W9.zip.html bc * sxn ud bu /1 i219!I219TxRxStart "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .printf \"TXRXSTART IN a=%p regs=%p ret=%p\n\", $t0, $t1, $t2; bp /1 $t2 \".echo ====TXRXSTART_OUT_W9====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0410 L1; dd $t1+0x0400 L1; dd $t1+0x0100 L1; dd $t1+0x0008 L1; dd $t1+0x5b54 L1; dd $t1+0x5b50 L1; gc\"; gc" bu i219!I219MiniportSendPackets "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .echo ====SEND_IN_W9====; .printf \"CNT=%u a=%p regs=%p ret=%p\n\", poi(esp+0x0c), $t0, $t1, $t2; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; bp /1 $t2 \".echo ====SEND_OUT_W9====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc\"; gc" bu i219!I219TxSendOne "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXONE_W9====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc" bu i219!I219TxReclaim "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXRECLAIM_W9====; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc" bu i219!I219RxPoll "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====RXPOLL_W9====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x0008 L1; gc" g
  9. @reboot12 After checking Intel documents, I add a new function for TX for the i219-LM, that before was missed. So, it is a big step Dietmar https://www.upload.ee/files/19126864/i219W8.zip.html bc * sxn ud bu /1 i219!I219TxRxStart "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .printf \"TXRXSTART IN a=%p regs=%p ret=%p\n\", $t0, $t1, $t2; bp /1 $t2 \".echo ====TXRXSTART_OUT_W8====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0410 L1; dd $t1+0x0400 L1; dd $t1+0x0100 L1; dd $t1+0x0008 L1; gc\"; gc" bu i219!I219MiniportSendPackets "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .echo ====SEND_IN_W8====; .printf \"CNT=%u a=%p regs=%p ret=%p\n\", poi(esp+0x0c), $t0, $t1, $t2; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; bp /1 $t2 \".echo ====SEND_OUT_W8====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc\"; gc" bu i219!I219TxSendOne "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXONE_W8====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc" bu i219!I219TxReclaim "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXRECLAIM_W8====; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x382c L1; dd $t1+0x3840 L1; dd $t1+0x3004 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc" bu i219!I219RxPoll "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====RXPOLL_W8====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x0008 L1; gc" g
  10. @reboot12 Please tell me the full exact entry in Device Manager for your i219-LM with Dev_15BB. Because I noticed, that the win10 driver has different *.inf entries depending on this exact name Dietmar
  11. @reboot12 I take again a deep look in the binary of win10 for the i219-LM and compare it with our i219.sys. There is still a bit not set, depending on ME, ULP etc. that forbids our i219.sys to send TX. This may last 1 hour Dietmar
  12. @reboot12 Hier is W7 driver and new KD Dietmar https://www.upload.ee/files/19126675/i219W7.zip.html bc * sxn ud bu /1 i219!I219TxRxStart "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .printf \"TXRXSTART IN a=%p regs=%p ret=%p\n\", $t0, $t1, $t2; bp /1 $t2 \".echo ====TXRXSTART_OUT_W7====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0410 L1; dd $t1+0x0400 L1; dd $t1+0x0100 L1; dd $t1+0x0008 L1; gc\"; gc" bu i219!I219MiniportSendPackets "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .echo ====SEND_IN_W7====; .printf \"CNT=%u a=%p regs=%p ret=%p\n\", poi(esp+0x0c), $t0, $t1, $t2; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; bp /1 $t2 \".echo ====SEND_OUT_W7====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc\"; gc" bu i219!I219TxSendOne "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXONE_W7====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc" bu i219!I219TxReclaim "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXRECLAIM_W7====; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc" bu i219!I219RxPoll "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====RXPOLL_W7====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x0008 L1; gc" g
  13. @reboot12 Here is W6 driver and new KD block Dietmar https://www.upload.ee/files/19126548/i219W6.zip.html bc * sxn ud bu /1 i219!I219TxRxStart "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .printf \"TXRXSTART IN a=%p regs=%p ret=%p\n\", $t0, $t1, $t2; bp /1 $t2 \".echo ====TXRXSTART_OUT_W6====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0410 L1; dd $t1+0x0400 L1; dd $t1+0x0100 L1; dd $t1+0x0008 L1; gc\"; gc" bu i219!I219MiniportSendPackets "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .echo ====SEND_IN_W6====; .printf \"CNT=%u a=%p regs=%p ret=%p\n\", poi(esp+0x0c), $t0, $t1, $t2; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; bp /1 $t2 \".echo ====SEND_OUT_W6====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc\"; gc" bu i219!I219TxSendOne "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXONE_W6====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc" bu i219!I219TxReclaim "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXRECLAIM_W6====; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0400 L1; dd $t1+0x0008 L1; gc" bu i219!I219RxPoll "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====RXPOLL_W6====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x0008 L1; gc" g
  14. @reboot12 We are coming closer to the problem, why RX gets but TX not sends: So we take a deeper look at TX-Queue-Aktivierung / TXDCTL-Konfiguration / TX-Start-Sequenz Dietmar
  15. @reboot12 W4 already has working RX on your board. That is a real breakthrough. W4 is much better than any other i219-LM driver before — RX is working. The remaining failure is almost certainly a TX-descriptor / TX-buffer / TX-latch problem Dietmar Here is new driver W5 https://www.upload.ee/files/19126475/i219W5.zip.html and KD block for it bc * sxn ud bu /1 i219!I219TxRxStart "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .printf \"TXRXSTART IN a=%p regs=%p ret=%p\n\", $t0, $t1, $t2; bp /1 $t2 \".echo ====TXRXSTART_OUT_W5====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0100 L1; dd $t1+0x0400 L1; gc\"; gc" bu i219!I219MiniportSendPackets "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); r $t2=poi(esp); .echo ====SEND_IN_W5====; .printf \"CNT=%u a=%p regs=%p ret=%p\n\", poi(esp+0x0c), $t0, $t1, $t2; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0008 L1; bp /1 $t2 \".echo ====SEND_OUT_W5====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0008 L1; gc\"; gc" bu i219!I219TxSendOne "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXONE_W5====; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0008 L1; gc" bu i219!I219TxReclaim "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====TXRECLAIM_W5====; dd $t1+0x3800 L3; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; dd $t1+0x0008 L1; gc" bu i219!I219RxPoll "r $t0=poi(esp+4); r $t1=poi($t0+0xDC); .echo ====RXPOLL_W5====; dd $t1+0x2800 L3; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x2828 L1; dd $t1+0x0008 L1; gc" g
  16. @reboot12 Oh nice, now the i219-LM reaches exact the state, that Linux wants to have for the i219-LM. Here ist next KD block Dietmar bc * bu /1 i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXRXSTART IN a=%p regs=%p ret=%p\n\", @$t0, @$t1, @$t2; bp /1 @$t2 \".echo ====TXRXSTART_OUT2====; dd @$t1+0x2800 L3; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; gc\"; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .echo ====SEND_IN2====; .printf \"CNT=%u a=%p regs=%p ret=%p\n\", poi(@esp+0x0c), @$t0, @$t1, @$t2; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; bp /1 @$t2 \".echo ====SEND_OUT2====; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; gc\"; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====TXRECLAIM2====; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====RXPOLL2====; dd @$t1+0x2800 L3; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; gc" g
  17. @reboot12 W4 is until now the best version. It comes very near to complete working. I look at the binary from win10 for it from the AIMB-786 driver for i219-LM. Please run this KD command until desktop Dietmar bc * bu /1 i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXRXSTART IN a=%p regs=%p ret=%p\n\", @$t0, @$t1, @$t2; bp /1 @$t2 \".echo ====TXRXSTART_OUT====; dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x00D0 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B58 L1; gc\"; gc" bu /1 i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .echo ====SEND_IN====; .printf \"CNT=%u a=%p regs=%p ret=%p\n\", poi(@esp+0x0c), @$t0, @$t1, @$t2; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; bp /1 @$t2 \".echo ====SEND_OUT====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x0008 L1; gc\"; 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; 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; dd @$t1+0x0008 L1; gc" g
  18. @reboot12 Here is version W4, which may work on your board AIMB-786. Please test also the KD until full desktop with "g" Dietmar https://www.upload.ee/files/19125771/i219W4.zip.html !sym quiet .reload /f i219.sys sxn ud bc * bu /1 i219!I219LowPowerExitFixup "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====LOWPOWER====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0F00 L1; dd @$t1+0x003C L1; dd @$t1+0x00E4 L1; dd @$t1+0x5BB4 L1; dd @$t1+0x5BBC L1; gc" bu /1 i219!I219ApplySwLcdConfigLikeWin10 "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====SWLCD====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0018 L1; dd @$t1+0x003C L1; dd @$t1+0x00E4 L1; dd @$t1+0x5BB4 L1; dd @$t1+0x5BBC L1; gc" bu /1 i219!I219DisableEeeLpiLikeWin10 "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====EEE====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B54 L1; dd @$t1+0x0020 L1; gc" bu /1 i219!I219CheckPhyReadyAfterReset "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====PHYREADY====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0020 L1; gc" bu /1 i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====CTRLKICK====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0F00 L1; gc" bu /1 i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00D0 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu /1 i219!I219MiniportEnableInterrupt "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====ENABLEINT1====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; gc" bu /1 i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====DPC1====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00C0 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu /1 i219!I219MiniportCheckForHang "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====HANGCHK1====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" g
  19. @reboot12 and here next one, please test and run the KD block until desktop via "g" Dietmar https://www.upload.ee/files/19125365/i219collsavewin10.zip.html !sym quiet .reload /f i219.sys sxn ud bc * bu /1 i219!I219MiniportInitialize ".echo ====INIT====; gc" bu i219!I219LowPowerExitFixup "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====LOWPOWER====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B58 L1; gc" bu /1 i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====CTRLKICK====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B58 L1; gc" bu /1 i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00D0 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B58 L1; gc" bu /1 i219!I219MiniportEnableInterrupt "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====ENABLEINT1====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; gc" bu /1 i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====DPC1====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00C0 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu /1 i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====SEND1====; .printf \"CNT=%u\n\", poi(@esp+0x0C); dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x0008 L1; gc" bu /1 i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====RXPOLL1====; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x0008 L1; gc" g
  20. @reboot12 Here is a new driver for you, please test. And also run this KD block Dietmar https://www.upload.ee/files/19125197/i219spyWin10.zip.html bc * bu i219!I219MiniportInitialize ".echo ====INIT====; gc" bu i219!I219LowPowerExitFixup "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====LOWPOWER====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====CTRLKICK====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00D0 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219MiniportEnableInterrupt "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====ENABLEINT====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo ====DPC====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00C0 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"SEND CNT=%u\n\", poi(@esp+0x0C); dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x0008 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; dd @$t1+0x0008 L1; gc" g
  21. @reboot12 Hihi, so I see, that the try to force all those bit, gives this fail, RXTX is blocked in the beginning, so Code 31. Funny, my board with i219-LM Dev_15BB, accepts this dirty hack from above. Now I take again a deep look in the Binary from Win10 for this i219-LM. And I try to copy everything from the win10 logic, part by part, in the very first working version of my driver i219.sys. There are a lot of steps, that the driver has to get from the hardware of your AIMB-786 board. It has to ask ME, the firmware, ULP, D3, D0 state and even more. But in the end, because win10 works, we will succeed Dietmar
  22. @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
  23. @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
  24. @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
  25. @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
×
×
  • Create New...