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 PCI Command 0406 is stable integrated. i219W25_DIAG: PCI_CMD[init] slot=2031622 before=0006 after=0406 (want=0406 MEM+ BusMaster+ DisINTx+) RX works. Now I build a new driver, which produces a lot of traffic TX from itself Dietmar
  2. @reboot12 This is very nice information. It means, that you can enable and disable DMA on the AIMB-786 as you wish. And even it comes from a crazy starting point, this is possibe. AIMB-786 + i219-LM unter XP has now only one problem from now: TX-Consume The i219 chip gets and receives perfekt, but does not "eat" any TX-Descriptor. Already today big advantage! RX is solved. TX-Submit is solved. Only TX-Consume not Dietmar
  3. @reboot12 Now I have all installed on the exact same board AIMB-786, same Bios V5 as you. I use as cooler the nice Dynatron DB128015BU-E. First I thought board is dead, but it awakes after CLEAR CMOS few times. And I have exact the same symptoms: Not any of my i219 drivers sénds or gets a single package, no Ping no DHCP. I go back to the basics: I compare the Bios of the Asus z390 WS Pro with the same i219-LM Dev_15BB with the AIMB-786 board. In the Intel GbE region there are differences, 44 Byte different. But because I dont want to hack the Bios just now, (may be not easy, when length of definition for Dev_15BB are different(!!!) ) I compare the setup routine for the i219. And I notice, that there are already differences very early, even before the first network activity begins. I want to trace and compare all relevant early registers on both boards via Windbg. In the MMIO status is the bit 0x40000000, that is set early but never changed on any of the for the i219 working boards. On the AIMB this bit is never set. But this bit is only the result of a lot as BIOS/NVM setup, ME/firmware state, PHY/ULP/SMBus state etc.. and never asked for this bit on the working boards?! So I try to bring the AIMB-786 into the same register state as the ASUS WS Z390 Pro, step by step. The MMIO status may show the result Dietmar
  4. @reboot12 I make a new driver version i219P0. This driver does not use any IRQ/INT, because it may be, that they are blocked from the Bios of the AIMB-786. https://www.upload.ee/files/19134054/i219P0.zip.html And here is the KD block for it good luck Dietmar sxd ud bc * sxe av sxe gp sxe ud !sym quiet .reload /f i219.sys r $t0=0 r $t1=50 bu /1 i219!DriverEntry ".echo ====DRV_ENTRY====; gc" bu /1 i219!I219MiniportInitialize "r $t4=poi(esp+4); r $t5=poi($t4+0xDC); .echo ====INIT====; .printf \"a=%p regs=%p\n\", $t4,$t5; gc" bu i219!I219MiniportISR ".echo ====UNEXPECTED_ISR_HIT (POLL-ONLY SHOULD NOT USE ISR)====; r; gc" bu /1 i219!I219TxRxStart "r $t4=poi(esp+4); r $t5=poi($t4+0xDC); .echo ====TXRXSTART_SNAP====; .printf \"regs=%p\n\",$t5; dd $t5+0x0008 L1; dd $t5+0x00C0 L1; dd $t5+0x00D0 L1; dd $t5+0x00D8 L1; dd $t5+0x2810 L1; dd $t5+0x2818 L1; dd $t5+0x3810 L1; dd $t5+0x3818 L1; .printf \"TxS=%u TxC=%u Rx=%u\n\", poi(i219!g_TxSubmits), poi(i219!g_TxCompletes), poi(i219!g_RxFrames); gc" bu i219!I219MiniportCheckForHang "r $t0=$t0+1; .if($t0==$t1){r $t0=0; r $t4=poi(esp+4); r $t5=poi($t4+0xDC); .echo ====POLL_SNAP====; dd $t5+0x0008 L1; dd $t5+0x00C0 L1; dd $t5+0x00D0 L1; dd $t5+0x00D8 L1; dd $t5+0x2810 L1; dd $t5+0x2818 L1; dd $t5+0x3810 L1; dd $t5+0x3818 L1; .printf \"TxS=%u TxC=%u Rx=%u\n\", poi(i219!g_TxSubmits), poi(i219!g_TxCompletes), poi(i219!g_RxFrames)}; gc" bu i219!I219MiniportSendPackets "r $t4=poi(esp+4); r $t5=poi($t4+0xDC); .echo ====SEND====; dd $t5+0x3810 L1; dd $t5+0x3818 L1; .printf \"TxS=%u TxC=%u\n\", poi(i219!g_TxSubmits), poi(i219!g_TxCompletes); gc" bu i219!I219TxReclaim "r $t4=poi(esp+4); r $t5=poi($t4+0xDC); .echo ====TXRECLAIM====; dd $t5+0x3810 L1; dd $t5+0x3818 L1; .printf \"TxS=%u TxC=%u\n\", poi(i219!g_TxSubmits), poi(i219!g_TxCompletes); gc" bu i219!I219RxPoll "r $t4=poi(esp+4); r $t5=poi($t4+0xDC); .echo ====RXPOLL====; dd $t5+0x2810 L1; dd $t5+0x2818 L1; .printf \"Rx=%u\n\", poi(i219!g_RxFrames); gc"
  5. @reboot12 Here is version W22 and KD Dietmar https://www.upload.ee/files/19132754/i219W22.zip.html sxd ud bc * sxe av sxe gp sxe ud !sym quiet .reload /f i219.sys bu nt!KeBugCheckEx ".echo ====BUGCHECK_HIT====; .printf \"code=%08x p1=%08x p2=%08x p3=%08x p4=%08x\\n\", poi(@esp+4), poi(@esp+8), poi(@esp+0c), poi(@esp+10), poi(@esp+14); r; r cr2; kv; gc" .echo ====W22_PCI_DEV15BB==== !pci 0 0 1f 6 .echo ====W22_GLOBALS_BEFORE==== dd i219!g_LinkPollInit L1 dd i219!g_LinkPollStart L1 dd i219!g_RxFrames L1 dd i219!g_TxSubmits L1 dd i219!g_TxCompletes L1 bu /1 i219!DriverEntry ".echo ====W22_DRIVERENTRY====; kv; gc" bu /1 i219!I219MiniportInitialize "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_INIT_IN====; .printf \"a=%p regs=%p\\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x5B54 L1; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_WARMRESET====; .printf \"a=%p regs=%p\\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x00C0 L1; dd @$t1+0x5B54 L1; gc" bu /1 i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_CTRLKICK====; .printf \"a=%p regs=%p\\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x5B54 L1; gc" bu /1 i219!I219PhyEnsureAutonegAll ".echo ====W22_PHY_ENSURE_AUTONEG====; gc" bu /1 i219!I219PrintPhyStdRegs ".echo ====W22_PHY_STDREGS====; gc" bu i219!I219WaitAutonegLink "r $t2=poi(@esp); .echo ====W22_AUTONEG_WAIT_IN====; .printf \"a=%p tout=%u arg=%u\\n\", poi(@esp+4), poi(@esp+8), poi(@esp+0c); bp /1 @$t2 \".echo ====W22_AUTONEG_WAIT_OUT====; r eax; gc\"; gc" bu i219!I219SpeedMbpsFromStatus "r $t2=poi(@esp); .echo ====W22_SPEED_IN====; bp /1 @$t2 \".echo ====W22_SPEED_OUT====; r eax; gc\"; gc" bu i219!I219LinkFromStatus "r $t2=poi(@esp); .echo ====W22_LINKFROM_IN====; bp /1 @$t2 \".echo ====W22_LINKFROM_OUT====; r eax; gc\"; gc" bu /1 i219!I219TxRxAlloc "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_TXRXALLOC====; .printf \"a=%p regs=%p\\n\", @$t0, @$t1; 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; gc" bu /1 i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_TXRXSTART====; .printf \"a=%p regs=%p\\n\", @$t0, @$t1; 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; gc" bu /1 i219!I219MiniportISR ".echo ====W22_ISR_FIRST====; gc" bu /1 i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_DPC_FIRST====; .printf \"a=%p regs=%p\\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_RxFrames L1; dd i219!g_TxSubmits L1; dd i219!g_TxCompletes L1; gc" bu /1 i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_SEND_FIRST====; .printf \"a=%p regs=%p cnt=%u\\n\", @$t0, @$t1, poi(@esp+0x0c); dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_TxSubmits L1; gc" bu /1 i219!I219TxSendOne ".echo ====W22_TXONE_FIRST====; gc" bu /1 i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_TXRECLAIM_FIRST====; .printf \"a=%p regs=%p\\n\", @$t0, @$t1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_TxCompletes L1; gc" bu /1 i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_RXPOLL_FIRST====; .printf \"a=%p regs=%p\\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd i219!g_RxFrames L1; gc" bu i219!I219PollTimerFunc "r $t0=poi(@esp+8); r $t1=poi(@$t0+0xDC); .echo ====W22_POLL====; dd @$t1+0x0008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_RxFrames L1; dd i219!g_TxSubmits L1; dd i219!g_TxCompletes L1; gc" bu /1 i219!I219MiniportCheckForHang "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W22_HANGCHECK_ONCE====; dd @$t1+0x0008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_TxSubmits L1; dd i219!g_TxCompletes L1; dd i219!g_RxFrames L1; gc" bu i219!I219QueueRecover ".echo ====W22_RECOVER_QUEUED_BP====; r irql; kv; gc" bu i219!I219RecoverWorker ".echo ====W22_RECOVER_WORKER_ENTER====; r irql; kv; gc" bu i219!I219HardRecover ".echo ====W22_HARD_RECOVER_ENTER====; r irql; kv; gc" bu i219!I219TxAbortAll ".echo ====W22_TX_ABORT_ALL_ENTER====; r irql; kv; gc" .echo ====W22_READY_GO==== g
  6. @reboot12 Here is driver W21 and KD Dietmar PS: I still do not find in germany any working cooler for the AIMB-786 . https://www.upload.ee/files/19132539/i219W21.zip.html !sym quiet .reload /f i219.sys sxd ud bc * sxe av sxe gp sxe ud bu nt!KeBugCheckEx ".echo ====BUGCHECK_HIT====; .printf \"code=%08x p1=%08x p2=%08x p3=%08x p4=%08x\n\", poi(@esp+4), poi(@esp+8), poi(@esp+0c), poi(@esp+10), poi(@esp+14); r; r cr2; kv; gc" .echo ====W21_PCI_DEV15BB==== !pci 0 0 1f 6 .echo ====W21_GLOBALS_BEFORE==== dd i219!g_LinkPollInit L1 dd i219!g_LinkPollStart L1 dd i219!g_RxFrames L1 dd i219!g_TxSubmits L1 dd i219!g_TxCompletes L1 bu /1 i219!DriverEntry ".echo ====W21_DRIVERENTRY====; kv; gc" bu /1 i219!I219MiniportInitialize "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W21_INIT_IN====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x5B54 L1; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W21_WARMRESET====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x00C0 L1; dd @$t1+0x5B54 L1; gc" bu /1 i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W21_CTRLKICK====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x5B54 L1; gc" bu /1 i219!I219PhyEnsureAutonegAll ".echo ====W21_PHY_ENSURE_AUTONEG====; gc" bu /1 i219!I219PrintPhyStdRegs ".echo ====W21_PHY_STDREGS====; gc" bu i219!I219WaitAutonegLink "r $t2=poi(@esp); .echo ====W21_AUTONEG_WAIT_IN====; .printf \"a=%p tout=%u arg=%u\n\", poi(@esp+4), poi(@esp+8), poi(@esp+0c); bp /1 @$t2 \".echo ====W21_AUTONEG_WAIT_OUT====; r eax; gc\"; gc" bu i219!I219SpeedMbpsFromStatus "r $t2=poi(@esp); .echo ====W21_SPEED_IN====; bp /1 @$t2 \".echo ====W21_SPEED_OUT====; r eax; gc\"; gc" bu i219!I219LinkFromStatus "r $t2=poi(@esp); .echo ====W21_LINKFROM_IN====; bp /1 @$t2 \".echo ====W21_LINKFROM_OUT====; r eax; gc\"; gc" bu /1 i219!I219TxRxAlloc "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W21_TXRXALLOC====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; 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; gc" bu /1 i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W21_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; 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; gc" bu /1 i219!I219MiniportISR ".echo ====W21_ISR_FIRST====; gc" bu /1 i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W21_DPC_FIRST====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_RxFrames L1; dd i219!g_TxSubmits L1; dd i219!g_TxCompletes L1; gc" bu /1 i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W21_SEND_FIRST====; .printf \"a=%p regs=%p cnt=%u\n\", @$t0, @$t1, poi(@esp+0x0c); dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_TxSubmits L1; gc" bu /1 i219!I219TxSendOne ".echo ====W21_TXONE_FIRST====; gc" bu /1 i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W21_TXRECLAIM_FIRST====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_TxCompletes L1; gc" bu /1 i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W21_RXPOLL_FIRST====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd i219!g_RxFrames L1; gc" bu i219!I219PollTimerFunc "r $t0=poi(@esp+8); r $t1=poi(@$t0+0xDC); .echo ====W21_POLL====; dd @$t1+0x0008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_RxFrames L1; dd i219!g_TxSubmits L1; dd i219!g_TxCompletes L1; gc" bu i219!I219QueueRecover ".echo ====W21_RECOVER_QUEUED_BP====; r irql; kv; gc" bu i219!I219HardRecover ".echo ====W21_HARD_RECOVER_ENTER====; r irql; kv; gc" bu i219!I219TxAbortAll ".echo ====W21_TX_ABORT_ALL_ENTER====; r irql; kv; gc" .echo ====W21_READY_GO==== g
  7. @reboot12 My problem is, that I do not have any cooler, that fits on this AIMB-786 board. Which cooler do you use Dietmar
  8. @reboot12 Run a Windbg session with this KD block for to understand the loop with W20 Dietmar !sym quiet .reload /f i219.sys sxd ud bc * sxe av sxe gp sxe ud bu nt!KeBugCheckEx ".echo ====BUGCHECK_HIT====; .printf \"code=%08x p1=%08x p2=%08x p3=%08x p4=%08x\n\", poi(@esp+4), poi(@esp+8), poi(@esp+0c), poi(@esp+10), poi(@esp+14); r; r cr2; kv; gc" .echo ====W20_PCI_DEV15BB==== !pci 0 0 1f 6 bu /1 i219!DriverEntry ".echo ====W20_DRIVERENTRY====; kv; gc" bu /1 i219!I219MiniportInitialize "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_INIT_IN====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_WARMRESET====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x00C0 L1; dd @$t1+0x5B54 L1; gc" bu /1 i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_CTRLKICK====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x5B54 L1; gc" bu /1 i219!I219PhyEnsureAutonegAll ".echo ====W20_PHY_ENSURE_AUTONEG====; gc" bu /1 i219!I219PrintPhyStdRegs ".echo ====W20_PHY_STDREGS====; gc" bu i219!I219WaitAutonegLink "r $t2=poi(@esp); .echo ====W20_AUTONEG_WAIT_IN====; .printf \"a=%p tout=%u arg=%u\n\", poi(@esp+4), poi(@esp+8), poi(@esp+0c); bp /1 @$t2 \".echo ====W20_AUTONEG_WAIT_OUT====; r eax; gc\"; gc" bu i219!I219SpeedMbpsFromStatus "r $t2=poi(@esp); .echo ====W20_SPEED_IN====; bp /1 @$t2 \".echo ====W20_SPEED_OUT====; r eax; gc\"; gc" bu i219!I219LinkFromStatus "r $t2=poi(@esp); .echo ====W20_LINKFROM_IN====; bp /1 @$t2 \".echo ====W20_LINKFROM_OUT====; r eax; gc\"; gc" bu /1 i219!I219TxRxAlloc "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_TXRXALLOC====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x2800 L3; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu /1 i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; 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; gc" bu /1 i219!I219MiniportISR ".echo ====W20_ISR====; gc" bu /1 i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_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!I219PollTimerFunc "r $t0=poi(@esp+8); r $t1=poi(@$t0+0xDC); .echo ====W20_POLL====; dd @$t1+0x0008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" g
  9. @reboot12 I just get an AIMB-786 board. Now I set it up Dietmar
  10. @reboot12 Here is new driver W20 and KD block Dietmar https://www.upload.ee/files/19131857/i219W20.zip.html !sym quiet .reload /f i219.sys sxd ud bc * .echo ====W20_PCI_i219_DEV_15BB==== !pci 0 0 1f 6 .echo ====W20_GLOBALS==== dd i219!g_LinkPollInit L1 dd i219!g_LinkPollStart L1 dd i219!g_RxFrames L1 dd i219!g_TxSubmits L1 dd i219!g_TxCompletes L1 bu /1 i219!I219MiniportInitialize "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_INIT_IN====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; .printf \"STATUS&40000000=%08x\n\", (poi(@$t1+0x0008) & 0x40000000); gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_WARMRESET====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x5B54 L1; .printf \"STATUS&40000000=%08x\n\", (poi(@$t1+0x0008) & 0x40000000); gc" bu /1 i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_CTRLKICK====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; .printf \"STATUS&40000000=%08x\n\", (poi(@$t1+0x0008) & 0x40000000); gc" bu /1 i219!I219TxRxAlloc "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_TXRXALLOC====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x2800 L3; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu /1 i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; 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; .printf \"STATUS&40000000=%08x\n\", (poi(@$t1+0x0008) & 0x40000000); gc" bu /1 i219!I219MiniportISR ".echo ====W20_ISR_FIRST====; gc" bu /1 i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_DPC_FIRST====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x00D8 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_RxFrames L1; dd i219!g_TxSubmits L1; dd i219!g_TxCompletes L1; gc" bu /1 i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_SEND_FIRST====; .printf \"a=%p regs=%p cnt=%u\n\", @$t0, @$t1, poi(@esp+0x0c); dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_TxSubmits L1; gc" bu /1 i219!I219TxSendOne ".echo ====W20_TXONE_FIRST====; gc" bu /1 i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_TXRECLAIM_FIRST====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd i219!g_TxCompletes L1; gc" bu /1 i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W20_RXPOLL_FIRST====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd i219!g_RxFrames L1; gc" g
  11. @reboot12 I just check your Bios V5. There are a lot of settings for ULP EEE etc. Please take a look, if you have set this for XP SP3 lan i219 Dietmar - ASPM Support = Disabled - Native ASPM = Disabled - L1 Substates / L1SS = Disabled - DMI Link ASPM Control = Disabled - PCIe Clock Power Management = Disabled (if present) - No Snoop = Disabled - Relaxed Ordering = Disabled - Intel VT-d (DMA Remapping) = Disabled OPTIONAL (if those menus exist): - Maximum Payload Size = 128 bytes (or Auto if 128 not available) - Maximum Read Request = 256 (or 512) - Energy Efficient Ethernet (EEE) / Green Ethernet = Disabled
  12. @reboot12 here it is. https://www.upload.ee/files/19131703/e1d6232.7z.html My i219 driver for XP SP3 works on mostly all motherboards. Just on the AIMB-786 board there is a crazy setting for ULP, EEE etc. that forbids DMA to read write. And because of this, maybe its Bios V5 helps to understand, for which settings it waits for the Lan i219-LM Dev_15BB Dietmar
  13. @reboot12 Just now I am building a new driver W20. Do you have the Bios V5 for this board Dietmar
  14. @reboot12 And here is the 3. new i219 driver with KD named W19 Dietmar https://www.upload.ee/files/19131083/i219W19.zip.html !sym quiet .reload /f i219.sys sxd ud bc * bu /1 i219!I219MiniportInitialize "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_INIT_IN====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x0000 L1; dd @$t13+0x0008 L1; dd @$t13+0x0018 L1; dd @$t13+0x00C0 L1; dd @$t13+0x00D0 L1; dd @$t13+0x0100 L1; dd @$t13+0x0400 L1; dd i219!g_LinkPollInit L1; dd i219!g_LinkPollStart L1; dd i219!g_RxFrames L1; dd i219!g_TxSubmits L1; dd i219!g_TxCompletes L1; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_WARMRESET_IN====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x0000 L1; dd @$t13+0x0008 L1; dd @$t13+0x0018 L1; dd @$t13+0x5B50 L1; dd @$t13+0x5B54 L1; dd @$t13+0x5B58 L1; dd @$t13+0x0100 L1; dd @$t13+0x0400 L1; dd @$t13+0x2810 L1; dd @$t13+0x2818 L1; dd @$t13+0x2828 L1; dd @$t13+0x3810 L1; dd @$t13+0x3818 L1; dd @$t13+0x3828 L1; gc" bu /1 i219!I219DoCtrlKickLate "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_CTRLKICK_LATE_IN====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x0008 L1; dd @$t13+0x5B50 L1; dd @$t13+0x5B54 L1; dd @$t13+0x5B58 L1; dd @$t13+0x00C0 L1; dd @$t13+0x00D0 L1; gc" bu /1 i219!I219LowPowerExitFixup "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_LP_EXIT_IN====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x0008 L1; dd @$t13+0x5B50 L1; dd @$t13+0x5B54 L1; dd @$t13+0x5B58 L1; dd @$t13+0x00C0 L1; dd @$t13+0x00D0 L1; gc" bu /1 i219!I219ApplyDelayedCondPowerFix "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_DELAYED_POWER_FIX_IN====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x0008 L1; dd @$t13+0x5B54 L1; dd @$t13+0x00C0 L1; dd @$t13+0x00D0 L1; gc" bu /1 i219!I219PhyEnsureAutonegAll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); r $t2=poi(@esp); .echo ====W19_AN_ADV_IN====; .printf \"a=%p regs=%p ret=%p\n\", @$t0, @$t1, @$t2; dd @$t1+0x0008 L1; bp /1 @$t2 \".echo ====W19_AN_ADV_OUT====; dd @$t1+0x0008 L1; gc\"; gc" bu /1 i219!I219WaitAutonegLink "r $t3=poi(@esp+4); r $t4=poi(@$t3+0xDC); r $t5=poi(@esp); .echo ====W19_WAIT_AN_IN====; .printf \"a=%p regs=%p ret=%p\n\", @$t3, @$t4, @$t5; dd @$t4+0x0008 L1; bp /1 @$t5 \".echo ====W19_WAIT_AN_OUT====; dd @$t4+0x0008 L1; dd i219!g_LinkPollStart L1; gc\"; gc" bu /1 i219!I219EnsureLinkBringup "r $t6=poi(@esp+4); r $t7=poi(@$t6+0xDC); r $t8=poi(@esp); .echo ====W19_LINK_BRINGUP_IN====; .printf \"a=%p regs=%p ret=%p\n\", @$t6, @$t7, @$t8; dd @$t7+0x0008 L1; bp /1 @$t8 \".echo ====W19_LINK_BRINGUP_OUT====; dd @$t7+0x0008 L1; dd i219!g_LinkPollStart L1; gc\"; gc" bu /1 i219!I219TxRxStart "r $t9=poi(@esp+4); r $t10=poi(@$t9+0xDC); r $t11=poi(@esp); .echo ====W19_TXRXSTART_IN====; .printf \"a=%p regs=%p ret=%p\n\", @$t9, @$t10, @$t11; dd @$t10+0x0008 L1; dd @$t10+0x0100 L1; dd @$t10+0x0400 L1; dd @$t10+0x2800 L3; dd @$t10+0x2810 L1; dd @$t10+0x2818 L1; dd @$t10+0x2828 L1; dd @$t10+0x3800 L3; dd @$t10+0x3810 L1; dd @$t10+0x3818 L1; dd @$t10+0x3828 L1; bp /1 @$t11 \".echo ====W19_TXRXSTART_OUT====; dd @$t10+0x0008 L1; dd @$t10+0x0100 L1; dd @$t10+0x0400 L1; dd @$t10+0x2810 L1; dd @$t10+0x2818 L1; dd @$t10+0x2828 L1; dd @$t10+0x3810 L1; dd @$t10+0x3818 L1; dd @$t10+0x00C0 L1; dd @$t10+0x00D0 L1; dd i219!g_TxSubmits L1; dd i219!g_TxCompletes L1; dd i219!g_RxFrames L1; gc\"; gc" bu /1 i219!I219MiniportISR "r $t12=poi(@esp+4); r $t13=poi(@esp+8); r $t14=poi(@esp+0x0C); .echo ====W19_ISR_ONCE====; .printf \"IntrRec=%p QueueDpc=%p a=%p ret=%p\n\", @$t12, @$t13, @$t14, poi(@esp); dd @esp L6; gc" bu /1 i219!I219MiniportHandleInterrupt "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_DPC_ONCE====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x0008 L1; dd @$t13+0x00C0 L1; dd @$t13+0x00D0 L1; dd @$t13+0x2810 L1; dd @$t13+0x2818 L1; dd @$t13+0x2828 L1; dd @$t13+0x3810 L1; dd @$t13+0x3818 L1; dd @$t13+0x3828 L1; dd i219!g_TxSubmits L1; dd i219!g_TxCompletes L1; dd i219!g_RxFrames L1; gc" bu /1 i219!I219RxPoll "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_RXPOLL_ONCE====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x0100 L1; dd @$t13+0x2810 L1; dd @$t13+0x2818 L1; dd @$t13+0x2828 L1; dd i219!g_RxFrames L1; dd i219!g_RxErrors L1; gc" bu /1 i219!I219TxReclaim "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_TXRECLAIM_ONCE====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x3810 L1; dd @$t13+0x3818 L1; dd @$t13+0x3828 L1; dd i219!g_TxCompletes L1; dd i219!g_TxErrors L1; gc" bu /1 i219!I219MiniportSendPackets "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_SENDPKTS_ONCE====; .printf \"cnt=%u a=%p regs=%p ret=%p\n\", poi(@esp+0x0C), @$t12, @$t13, poi(@esp); dd @$t13+0x0008 L1; dd @$t13+0x3810 L1; dd @$t13+0x3818 L1; dd i219!g_TxSubmits L1; gc" bu /1 i219!I219TxSendOne "r $t12=poi(@esp+4); r $t13=poi(@$t12+0xDC); .echo ====W19_TXONE_ONCE====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x3810 L1; dd @$t13+0x3818 L1; dd @$t13+0x00C0 L1; dd @$t13+0x00D0 L1; dd i219!g_TxSubmits L1; gc" bu /1 i219!I219PollTimerFunc "r $t12=poi(@esp+8); r $t13=poi(@$t12+0xDC); .echo ====W19_POLL_TIMER_ONCE====; .printf \"a=%p regs=%p ret=%p\n\", @$t12, @$t13, poi(@esp); dd @$t13+0x0008 L1; dd @$t13+0x2810 L1; dd @$t13+0x2818 L1; dd @$t13+0x2828 L1; dd @$t13+0x3810 L1; dd @$t13+0x3818 L1; dd @$t13+0x3828 L1; dd i219!g_LinkPollStart L1; dd i219!g_RxFrames L1; dd i219!g_TxCompletes L1; gc" g
  15. @reboot12 And here is the second new driver W18. I build a complete new i219.inf for this driver, for to cancel any ULP etc. in the very first beginning. So you have to delete in Windows\inf folder any old OEM.inf for this driver, means complete new setup. Please test and then KD block Dietmar https://www.upload.ee/files/19130936/i219W18.zip.html !sym quiet .reload /f i219.sys sxd ud bc * bu /1 i219!I219MiniportInitialize ".echo ====W18_INIT====; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_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+0x5B58 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x0410 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+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu /1 i219!I219InitHwBitsLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_INITBITS====; dd @$t1+0x0018 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219WaitMeCsrReady "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_WAIT_MECSR====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219NeedDelayedCondPowerFix "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_NEED_DELAYED_FIX====; .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+0x5008 L1; gc" bu i219!I219ApplyDelayedCondPowerFix "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_APPLY_DELAYED_FIX====; .printf \"a=%p regs=%p tag=%ma\n\", @$t0, @$t1, poi(@esp+8); 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+0x5008 L1; gc" bu i219!I219MeExitDpg "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_ME_EXIT_DPG====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219MeExitUlp "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_ME_EXIT_ULP====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219DisableUlpPhy "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_DISABLE_ULP_PHY====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_CTRLKICK====; 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+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x0410 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+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219PrimeTxPathLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W18_PRIMETX==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0400 L1; dd @$t1+0x0410 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219TxDisableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_TXDISABLEQ====; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219TxEnableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_TXENABLEQ====; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219TxForceKick "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W18_FORCEKICK==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0008 L1; dd @$t1+0x0400 L2; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W18_SENDPACKETS==== cnt=%lu a=%p\n\", poi(@esp+0x0c), @$t0; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSend "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W18_SEND==== pkt=%p a=%p\n\", poi(@esp+8), @$t0; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; gc" bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_TXONE====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_TXRECLAIM====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu /1 i219!I219MiniportISR ".echo ====W18_ISR_ONCE====; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_DPC====; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x3004 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W18_RXPOLL====; dd @$t1+0x0100 L1; dd @$t1+0x5008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x0008 L1; dd @$t1+0x5B54 L1; gc" g
  16. @reboot12 Yes, I correct the KD block, because each bu needs an own line. Please test W17 just now, because it has really a chance Dietmar
  17. @reboot12 I found in the Binary of Win7 a FW_VALID-introduced H2ME-Handshake. Here is new driver for this and KD Dietmar https://www.upload.ee/files/19130724/i219W17.zip.html !sym quiet sxd ud bc * bu /1 i219!I219MiniportInitialize ".echo ====W17_INIT====; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_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+0x5B58 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x0410 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+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu /1 i219!I219InitHwBitsLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_INITBITS====; dd @$t1+0x0018 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219NeedDelayedCondPowerFix "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_NEED_DELAYED_FIX====; .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+0x5008 L1; gc" bu i219!I219ApplyDelayedCondPowerFix "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_APPLY_DELAYED_FIX====; .printf \"a=%p regs=%p tag=%ma\n\", @$t0, @$t1, poi(@esp+8); 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+0x5008 L1; gc" bu i219!I219MeExitDpg "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_ME_EXIT_DPG====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0008 L1; gc" bu i219!I219MeExitUlp "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_ME_EXIT_ULP====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0008 L1; gc" bu i219!I219DisableUlpPhy "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_DISABLE_ULP_PHY====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_CTRLKICK====; 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+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x0410 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+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219PrimeTxPathLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W17_PRIMETX==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0400 L1; dd @$t1+0x0410 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219TxDisableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_TXDISABLEQ====; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219TxEnableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_TXENABLEQ====; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219TxForceKick "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W17_FORCEKICK==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0008 L1; dd @$t1+0x0400 L2; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W17_SENDPACKETS==== cnt=%lu a=%p\n\", poi(@esp+0x0c), @$t0; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSend "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W17_SEND==== pkt=%p a=%p\n\", poi(@esp+8), @$t0; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; gc" bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_TXONE====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_TXRECLAIM====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu /1 i219!I219MiniportISR ".echo ====W17_ISR_ONCE====; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_DPC====; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x3004 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W17_RXPOLL====; dd @$t1+0x0100 L1; dd @$t1+0x5008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x0008 L1; dd @$t1+0x5B54 L1; gc" g
  18. @reboot12 Nice, that Win7 works. I will test also in the afternoon. Please test my version W16, because there we can see a lot with Windbg Dietmar PS: I am back at about 19:00.
  19. @reboot12 here is new driver W16 and KD Dietmar https://www.upload.ee/files/19129669/i219W16.zip.html !sym quiet .reload /f i219.sys sxd ud bc * bu /1 i219!I219MiniportInitialize ".echo ====W16_INIT====; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_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+0x5B58 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu /1 i219!I219InitHwBitsLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_INITBITS====; dd @$t1+0x0018 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219NeedDelayedCondPowerFix "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_NEED_DELAYED_FIX====; .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+0x5008 L1; gc" bu i219!I219ApplyDelayedCondPowerFix "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_APPLY_DELAYED_FIX====; .printf \"a=%p regs=%p tag=%ma\n\", @$t0, @$t1, poi(@esp+8); 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+0x5008 L1; gc" bu i219!I219MeExitDpg "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_ME_EXIT_DPG====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0008 L1; gc" bu i219!I219MeExitUlp "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_ME_EXIT_ULP====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0008 L1; gc" bu i219!I219DisableUlpPhy "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_DISABLE_ULP_PHY====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_CTRLKICK====; 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+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x0410 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+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219PrimeTxPathLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W16_PRIMETX==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0400 L1; dd @$t1+0x0410 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219TxDisableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_TXDISABLEQ====; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219TxEnableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_TXENABLEQ====; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219TxForceKick "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W16_FORCEKICK==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0008 L1; dd @$t1+0x0400 L2; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W16_SENDPACKETS==== cnt=%lu a=%p\n\", poi(@esp+0x0c), @$t0; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSend "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W16_SEND==== pkt=%p a=%p\n\", poi(@esp+8), @$t0; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; gc" bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_TXONE====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_TXRECLAIM====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu /1 i219!I219MiniportISR ".echo ====W16_ISR_ONCE====; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_DPC====; dd @$t1+0x00C0 L1; dd @$t1+0x00D0 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x3004 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W16_RXPOLL====; dd @$t1+0x0100 L1; dd @$t1+0x5008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x0008 L1; dd @$t1+0x5B54 L1; gc" g
  20. @reboot12 Here is W15 and KD block Dietmar https://www.upload.ee/files/19129603/i219W15.zip.html !sym quiet .reload /f i219.sys sxd ud bc * bu /1 i219!I219MiniportInitialize ".echo ====W15_INIT====; gc" bu i219!I219PciEnsureBusMaster "r $t0=poi(@esp+4); .echo ====W15_PCI_BME====; .printf \"a=%p tag=%ma\n\", @$t0, poi(@esp+8); gc" bu i219!I219DbgPrintPowerState "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_PWR_DUMP====; .printf \"a=%p regs=%p tag=%ma\n\", @$t0, @$t1, poi(@esp+8); 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+0x5008 L1; gc" bu i219!I219ShouldApplyConditionalPowerFix "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_SHOULD_PWR_FIX====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219LowPowerExitFixup "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_LOWPOWER_FIX====; .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+0x5008 L1; gc" bu i219!I219MeExitDpg "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_ME_EXIT_DPG====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0008 L1; gc" bu i219!I219MeExitUlp "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_ME_EXIT_ULP====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0008 L1; gc" bu i219!I219DisableUlpPhy "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_DISABLE_ULP_PHY====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_CTRLKICK====; 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+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x0410 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+0x3928 L1; dd @$t1+0x382C L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; gc" bu i219!I219TxDisableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_TXDISABLEQ====; dd @$t1+0x3828 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219TxEnableQueue "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_TXENABLEQ====; dd @$t1+0x3828 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; gc" bu i219!I219TxForceKick "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W15_FORCEKICK==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0008 L1; dd @$t1+0x0400 L2; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3928 L1; dd @$t1+0x3840 L1; dd @$t1+0x3940 L1; dd @$t1+0x3004 L1; dd @$t1+0x5008 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W15_SENDPACKETS==== cnt=%lu a=%p\n\", poi(@esp+0x0c), @$t0; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219MiniportSend "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W15_SEND==== pkt=%p a=%p\n\", poi(@esp+8), @$t0; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3004 L1; gc" bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_TXONE====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_TXRECLAIM====; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3004 L1; dd i219!g_TxSubmits L5; gc" bu /1 i219!I219MiniportISR ".echo ====W15_ISR_ONCE====; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_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; dd @$t1+0x2828 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x3004 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W15_RXPOLL====; dd @$t1+0x0100 L1; dd @$t1+0x5008 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x0008 L1; dd @$t1+0x5B54 L1; gc" g
  21. @reboot12 Ok, I already find out, that nearly everything works. Here is W14 and KD block, please test Dietmar https://www.upload.ee/files/19129501/i219W14.zip.html !sym quiet .reload /f i219.sys sxd ud bc * bu /1 i219!I219MiniportInitialize ".echo ====W14_INIT====; gc" bu i219!I219PciEnsureBusMaster "r $t0=poi(@esp+4); .echo ====W14_PCI_BME====; .printf \"a=%p tag=%ma\n\", @$t0, poi(@esp+8); gc" bu i219!I219DbgPrintPowerState "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W14_PWR_DUMP====; .printf \"a=%p regs=%p tag=%ma\n\", @$t0, @$t1, poi(@esp+8); 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+0x5008 L1; gc" bu i219!I219NormalizePowerStateForDma "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W14_NORM_PWR====; .printf \"a=%p regs=%p tag=%ma\n\", @$t0, @$t1, poi(@esp+8); 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+0x5008 L1; gc" bu i219!I219MeExitDpg "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W14_ME_EXIT_DPG====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0008 L1; gc" bu i219!I219MeExitUlp "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W14_ME_EXIT_ULP====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x0008 L1; gc" bu i219!I219DisableUlpPhy "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W14_DISABLE_ULP_PHY====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; gc" bu /1 i219!I219WarmResetInitLikeLinux "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W14_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+0x5B58 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 ====W14_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 ====W14_CTRLKICK====; 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+0x03004 L1; dd @$t1+0x05008 L1; gc" bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W14_TXRXSTART====; .printf \"a=%p regs=%p\n\", @$t0, @$t1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 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 \"====W14_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; dd @$t1+0x05008 L1; gc" bu i219!I219TxForceKick "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .printf \"====W14_FORCEKICK==== hard=%lu\n\", poi(@esp+8); dd @$t1+0x0008 L1; dd @$t1+0x00400 L2; dd @$t1+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; 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 \"====W14_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 ====W14_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 ====W14_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 ====W14_ISR_ONCE====; gc" bu i219!I219MiniportHandleInterrupt "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W14_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+0x5B50 L1; dd @$t1+0x5B54 L1; dd @$t1+0x5B58 L1; dd @$t1+0x03004 L1; gc" bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi(@$t0+0xDC); .echo ====W14_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; dd @$t1+0x5B54 L1; gc" g
×
×
  • Create New...