Jump to content

Updated drivers for Windows XP SP3 and Windows 2003 SP2 (x32/x64) for modern hardware


Recommended Posts

Posted

@Dietmar

You didn't answer my question: Does the driver work when you connect to Fast Ethernet (100) device or only when it is connected to Gigabit Ethernet (1000)???


Posted

@reboot12

The driver itself can do 1000MB.

But via connection to your router, it is set to 100MB, at me to 10MB. This is normal.

Please check again, if in the Bios of your board, that this is set

Most likely high-value checks on this board are:

AMT / ME / ASF / SOL off

ASPM / L1 Substates off

Deep Sleep off

Network Stack / PXE off

Dietmar

AIMB-786 BIOS CHECKLIST FOR I219-LM (Dev_15BB) TROUBLESHOOTING

IMPORTANT:
- Keep LAN1 Controller ENABLED (this is the I219-LM you are testing).
- After changing settings, do a FULL POWER OFF, then start again.

1) Advanced -> Network Stack Configuration
   - Network Stack = Disabled

2) Advanced -> Chipset -> PCH-IO Configuration
   - LAN1 Controller = Enabled
   - LAN1 Option ROM = Disabled
   - LAN2 Option ROM = Disabled
   - Deep Sleep = Disabled
   - PCIe Wake = Disabled
   - Power On by Modem = Disabled

3) Advanced -> Intel ME / AMT / Manageability / PCH-FW
   - Intel AMT = Disabled
   - CIRA / Remote Assistance = Disabled
   - ASF PET Progress = Disabled
   - ASF WatchDog = Disabled
   - ASF Sensors Table = Disabled
   - SOL / Serial-over-LAN = Disabled
   - MEBx Selection Screen = Disabled

4) Advanced -> PCIe / Power Management
   - ASPM = Disabled
   - L1 Substates = Disabled
   - PCIe Clock Power Management / CLKREQ = Disabled

5) Advanced -> CPU / System Power
   - C-States = Disabled (test only)
   - Package C State Limit = Disabled or lowest possible
   - VT-d / IOMMU = Disabled

6) Advanced -> LAN Power Saving (if present)
   - EEE / Energy Efficient Ethernet = Disabled
   - Green Ethernet = Disabled
   - LAN Power Saving = Disabled
   - Wake on LAN special power modes = Disabled

7) Boot
   - Fast Boot = Disabled
   - PXE Boot / UEFI PXE = Disabled
   - UEFI Network Boot = Disabled

8) General test rule
   - Leave only the NIC under test enabled, if BIOS allows it
   - Use a known-good cable
   - Test with a simple switch / direct link after BIOS changes

 

Posted

@reboot12

Make a direct check via KD, if the DMA bit is set

Dietmar

sxd ud
bc *
bu i219!I219PciEnsureCmd ".echo PCICMD_CALL; gc"
bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXRX_IN regs=%p ret=%p\n\", $t1, $t2; bp /1 @$t2 \".echo TXRX_OUT; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; gc\"; gc"
bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"SEND_IN CNT=%u regs=%p\n\", poi(@esp+0x0c), $t1; bp /1 @$t2 \".echo SEND_OUT; dd @$t1+0x0008 L1; dd @$t1+0x0400 L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; gc\"; gc"
bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"RXPOLL regs=%p\n\", $t1; dd $t1+0x0008 L1; dd $t1+0x0400 L1; dd $t1+0x2810 L1; dd $t1+0x2818 L1; dd $t1+0x3810 L1; dd $t1+0x3818 L1; dd $t1+0x3828 L1; gc"
bu ndis!EthFilterDprIndicateReceive ".echo NDIS_RX; gc"
bu ndis!EthFilterDprIndicateReceiveComplete ".echo NDIS_RXC; gc"
g

 

Posted

@reboot12

Here is total new driver v22 and please use this KD

https://www.upload.ee/files/19115299/i219v22.zip.html

 

!sym quiet
sxd ud
bc *
bu i219!I219TryBringUp "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"BRINGUP regs=%p\n\", $t1; dd i219!g_TxRx+0x48 L2; gc"
bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"CTRLKICK reset=%u regs=%p\n\", (poi(@esp+8)&0xff), $t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; dd @$t1+0x5b50 L1; gc"
bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXRX_IN regs=%p ret=%p\n\", $t1, $t2; dd i219!g_TxRx+0x08 L12; dd i219!g_TxRx+0x48 L2; bp /1 @$t2 \".echo TXRX_OUT; dd i219!g_TxRx+0x08 L12; dd i219!g_TxRx+0x48 L2; dd poi(i219!g_TxRx+0x08) L4; dd poi(i219!g_TxRx+0x18) L4; db poi(i219!g_TxRx+0x28) L40; dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x2800 L3; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x3000 L1; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3590 L1; gc\"; gc"
bu i219!I219MiniportISR ".echo ISR; gc"
bu i219!I219MiniportHandleInterrupt ".echo HANDLEINT; gc"
bu i219!I219MiniportSendPackets "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"SEND CNT=%u regs=%p\n\", poi(@esp+0x0c), $t1; dd i219!g_TxRx+0x08 L12; dd i219!g_TxRx+0x48 L2; dd poi(i219!g_TxRx+0x08) L4; dd poi(i219!g_TxRx+0x18) L4; db poi(i219!g_TxRx+0x28) L40; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3590 L1; gc"
bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXONE_IN regs=%p\n\", $t1; bp /1 @$t2 \".echo TXONE_OUT; dd i219!g_TxRx+0x08 L12; dd i219!g_TxRx+0x48 L2; dd poi(i219!g_TxRx+0x08) L4; dd poi(i219!g_TxRx+0x18) L4; db poi(i219!g_TxRx+0x28) L40; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3590 L1; gc\"; gc"
bu i219!I219TxReclaim "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo TXRECLAIM; dd i219!g_TxRx+0x08 L12; dd i219!g_TxRx+0x48 L2; dd poi(i219!g_TxRx+0x08) L4; dd poi(i219!g_TxRx+0x18) L4; db poi(i219!g_TxRx+0x28) L40; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3590 L1; gc"
bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"RXPOLL regs=%p\n\", $t1; dd i219!g_TxRx+0x08 L12; dd i219!g_TxRx+0x48 L2; dd poi(i219!g_TxRx+0x08) L4; dd poi(i219!g_TxRx+0x18) L4; db poi(i219!g_TxRx+0x28) L40; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x3000 L1; gc"
bu ndis!EthFilterDprIndicateReceive ".echo NDIS_RX; gc"
bu ndis!EthFilterDprIndicateReceiveComplete ".echo NDIS_RXC; gc"
g


 

Posted

@reboot12

Oh my..crazy repair but now works again and KD code for testing

https://www.upload.ee/files/19115474/i219v24.zip.html

 

!sym quiet
sxd ud
bc *
bu i219!I219IndicateMediaState ".printf \"MEDIA st=%u\n\", poi(@esp+8); gc"
bu i219!I219LinkFromStatus "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"LINKCHK regs=%p\n\", $t1; bp /1 @$t2 \".echo LINKRET; r eax; dd @$t1+0x0008 L1; gc\"; gc"
bu i219!I219TryBringUp "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"BRINGUP regs=%p now=%u\n\", $t1, poi(@esp+8); dd i219!g_TxRx+0x08 L12; gc"
bu i219!I219DoCtrlKickLate "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .printf \"CTRLKICK reset=%u regs=%p\n\", (poi(@esp+8)&0xff), $t1; dd @$t1+0x0000 L1; dd @$t1+0x0008 L1; dd @$t1+0x0018 L1; gc"
bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXRX_IN regs=%p ret=%p\n\", $t1, $t2; bp /1 @$t2 \".echo TXRX_OUT; dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x0400 L1; dd @$t1+0x2800 L4; dd @$t1+0x3000 L1; dd @$t1+0x3800 L3; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3590 L1; dd i219!g_TxRx+0x08 L12; dd poi(i219!g_TxRx+0x08) L4; dd poi(i219!g_TxRx+0x1C) L4; gc\"; gc"
bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\n\", poi(@esp+0x0c); gc"
bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXONE_IN regs=%p\n\", $t1; bp /1 @$t2 \".echo TXONE_OUT; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3590 L1; dd poi(i219!g_TxRx+0x08) L4; gc\"; 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+0x3590 L1; dd poi(i219!g_TxRx+0x08) L4; gc"
bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo RXPOLL; dd @$t1+0x2800 L4; dd @$t1+0x3000 L1; dd @$t1+0x3590 L1; dd poi(i219!g_TxRx+0x1C) L4; gc"
bu ndis!EthFilterDprIndicateReceive ".echo NDIS_RX; gc"
bu ndis!EthFilterDprIndicateReceiveComplete ".echo NDIS_RXC; gc"
g

 

Posted (edited)

Something is bad with power in this and some previous drivers - WinXP Turn Off OK but PC not - CPU fan speed up, black screen, PC in not powered off.

I must force press and hold for some seconds power off button on case.

Edited by reboot12
Posted

@reboot12

This is really crazy, because everything I did is correct.

There must be a hidden switch for this ULP (Ultra Low Power) that killes everything on your i219-LM.

Again I do an intensive search with Linux e1000e path, because a lot of different bits are involved in this ULP.

And Linux and Intel itself tell the same sleeping symptoms, exact like yours.

Soon I send you a ne driver

Dietmar

Posted (edited)

@Dietmar

I already download boot.wim (~640 MB) from Win10 x64 22H2 Updated Feb 2023 - maybe this have own driver for i219. I don't want to install Win10 on the disk, but I just want to run WinPE (installer) and check if the i219 card works.

Yes, this version WinPE has driver and i219 works OK with my router (same cable):
Win10-PE-i219.png

Edited by reboot12
Posted

@reboot12

Here is new driver version 2.5.3

https://www.upload.ee/files/19115762/i219253.zip.html

 

and block for KD

good luck

Dietmar

!sym quiet
sxd ud
bc *
bu i219!I219IndicateMediaState ".printf \"MEDIA st=%u\n\", poi(@esp+8); gc"
bu i219!I219LinkFromStatus "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"LINKCHK regs=%p\n\", $t1; bp /1 @$t2 \".echo LINKRET; r eax; dd @$t1+0x0008 L1; gc\"; gc"
bu i219!I219TxRxStart "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXRX_IN regs=%p ret=%p\n\", $t1, $t2; bp /1 @$t2 \".echo TXRX_OUT; dd @$t1+0x0008 L1; dd @$t1+0x0100 L1; dd @$t1+0x280c L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x3000 L1; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3590 L1; gc\"; gc"
bu i219!I219MiniportSendPackets ".printf \"SEND CNT=%u\n\", poi(@esp+0x0c); gc"
bu i219!I219TxSendOne "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); r $t2=poi(@esp); .printf \"TXONE_IN regs=%p\n\", $t1; bp /1 @$t2 \".echo TXONE_OUT; dd @$t1+0x3810 L1; dd @$t1+0x3818 L1; dd @$t1+0x3828 L1; dd @$t1+0x3590 L1; gc\"; 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+0x3590 L1; gc"
bu i219!I219RxPoll "r $t0=poi(@esp+4); r $t1=poi($t0+0xDC); .echo RXPOLL; dd @$t1+0x280c L1; dd @$t1+0x2810 L1; dd @$t1+0x2818 L1; dd @$t1+0x2828 L1; dd @$t1+0x3000 L1; dd @$t1+0x3590 L1; gc"
bu ndis!EthFilterDprIndicateReceive ".echo NDIS_RX; gc"
bu ndis!EthFilterDprIndicateReceiveComplete ".echo NDIS_RXC; gc"
g


 

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...