Jump to content

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


Recommended Posts

Posted (edited)

@reboot12

Oh Waaaooohhh:cheerleader::cheerleader::cheerleader:,

I just come home for to see your crazy nice news!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

I only get with ME this crazy driver for to read but not to send anything.

I wonder, how the people with Linux managed this or do they only use the i219 driver, handed over by Intel?

Just now I will try, I think that I have all needed files.

And I notice another thing: This industrial board AIMB-786 is a very nice board.

It has much more possibilities than nearly ANY new board.

For example: Its Bios version 5 is also very nice,

because it connects very good to any router (in german it is called "verhandeln"), much better

than any other boards that I have.

I compile about 100 different drivers. Now I have the problem, which one is best of all.

The P0 version has no IRQ. This driver is very stable, but has ping always 15 ms,

while other drivers with IRQ have smaller ping in network.

I need to look, how to compile for 64 Bit,

nice work

Dietmar

Edited by Dietmar

Posted

@reboot12

I wonder, if this bit in MMIO status 0x40000000 is now set all the time, when ME is disabled.

This you can see at very first part, when you run windbg with any of my drivers.

There is a real chance for us to understand, how ME forbids this driver for i219 to write via TX

Dietmar

Posted
26 minutes ago, Dietmar said:

This industrial board AIMB-786 is a very nice board.

Yea, When I was looking for a motherboard, the priority was at least one PCI slot to be able to connect a network card, e.g. the old PCI RTL8139. The board has 2 PCI slots and PCIe x4 slots have an open end and you can install e.g. an x16 graphics card there. This is an industrial mobo made of high-quality elements, so it should work a little longer :)

33 minutes ago, Dietmar said:

I compile about 100 different drivers. Now I have the problem, which one is best of all.

The P0 version has no IRQ. This driver is very stable, but has ping always 15 ms,

I will test the first few versions - for now I use the i219moreDev version.

I'm glad the driver works because testing in WinDbg over and over was starting to get frustrating.

Posted (edited)

@reboot12

I just set up environment for XP bit 64, also with WDK 7600 .

Here are the for XP64 compiled files with *.inf for the i219.sys driver.

I make one version with the original source V1 i219 driver (moreDev driver)

and another one, with better(?) compatibility for XP64.

Both each fre and chk version

good luck

Dietmar

https://www.upload.ee/files/19139298/XPP64.zip.html
 

Edited by Dietmar
Posted

@Dietmar

Thx, I will test tomorrow. There seems to be an error in the i219_xp64.inf file:

[i219.AddEventLog]
HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32
etevent.dll;%SystemRoot%\System32\drivers\i219.sys"
HKR,,TypesSupported,0x00010001,7

It should be:

[i219.AddEventLog]
HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\netevent.dll;%SystemRoot%\System32\drivers\i219.sys"
HKR,,TypesSupported,0x00010001,7

 

Posted (edited)

@reboot12

I make a try to overcome ME in the driver i219.sys direct.

For this, I check all the register values with ME and without. Then, after compi starts, I write to all the registers back as if there was no ME.

This works, I tested.

BUT: After starting network traffic, suddently again ME writes all its values back to the registers and so ME stops the lan driver,

I can see this with Windbg in Real Time.

Crazy.

This makes a very unstable situation. So, the makers of the win7 and win10 i219 driver must have a way,

to tell Me: shut up.

This way I dont have, may be ME looks, if this is a certified driver.

Anyway this test was very interesting for me what is going on.

So, I also use your methode, to stop ME in Bios.

Interesting, if this can be done on any compi

Dietmar

 

ME / Host Handoff Summary from the XP SP3 i219 Windbg
======================================================

1) Core register block I test for to the put ME out and give control back to me
-----------------------------------------------------------------------------------------------

MMIO register offsets that I touch in the driver when trying
to move NIC ownership away from the ME path and back to the host driver, called "me":

    0x5820
    0x5B50
    0x5B54
    0x5B64

These four offsets appeare in the relevant handoff-related functions:

    I219MeTransitionToHost
    I219DisableUlpPhy
    I219LowPowerExitFixup
    I219PostLinkHostHandoff
    I219RuntimeMeReassert

So, the "ME out / host takes over" register block was

    0x5820 / 0x5B50 / 0x5B54 / 0x5B64


2) Registers I additionally watch as truth indicators
----------------------------------------------------------------------------

    0x0008   = STATUS register
    0x5820   = MANC / management-related state

And also I watch those TX/RX-related registers to see the downstream effects:

    0x0400
    0x0404
    0x3810
    0x3818
    0x3828
    0x2810
    0x2818

So
- For actively trying to force ME out, the core registers were:
      0x5820 / 0x5B50 / 0x5B54 / 0x5B64

- For detecting whether ME had taken control again, the most important indicators were:
      0x0008 and 0x5820


3) Values that shows i219 driver, me, has control"
-----------------------------------------------------------------

    STATUS @ 0x0008 = 00080600
    MANC   @ 0x5820 = 00e20000

This pair means:

The host driver, me, has the NIC in the intended host-controlled state


4) Values that show, ME has taken control again
---------------------------------------------------------------------

    STATUS @ 0x0008 = 00080643
    MANC   @ 0x5820 = 00e30000


5) proof
-------------------------------------------------

All logs showed the same sequence:

    Step 1:
        Driver forces host state

        STATUS = 00080600
        MANC   = 00e20000

    Step 2:
        Later, the values flip back to

        STATUS = 00080643
        MANC   = 00e30000

    Step 3:
        After that, unstable link behavior appears, such as

        LinkState -> UP 100Mb FD
        then later
        LinkState -> DOWN 10Mb HD

        or repeated "LAN cable disconnected / reconnected" behavior


    So, with only via driver i219 hacking, ME is not gone in XP SP3,
    like Terminator "I’ll be back.."
    

Dietmar

 

Edited by Dietmar
Posted (edited)
On 3/7/2026 at 6:07 PM, Dietmar said:

I make one version with the original source V1 i219 driver (moreDev driver)

Yeeeeaaaa - 64-bit driver i219.sys works in WinXP 64-bit. I test OriV1objfre_wnet_amd64 version :cheerleader::cheerleader::cheerleader:

Thank you very much :thumbup
i219-Win-XP-64-bit.png

 

Edited by reboot12
Posted (edited)

@Dietmar

Summary what works wrong in 32-bit or 64-bit drivers and need by fixed:

  • ME must be Disabled (in Win7 or Win10 ME no need to disable)
  • it detects the speed incorrectly - it always shows 1.0 Gbps even when there is a Fast Ethernet device on the other side (100)
  • I'm not sure if it's the driver's fault, but PC sometimes (tested only AIMB-786) not power off if do WinXP Turn Off - CPU fan still work and black screen on monitor
Edited by reboot12
Posted

@reboot12

I force this i219 driver for to enable 100MB. The shown speed is only the speed, that the NIC can do on 4 pair lan cable.

Because on most compis this driver wants to fall back to 10MB.

It is not the fault of this driver, but of the bad Bios on most boards how to "speak" with their router.

And yes, about this "power on" when shut down:

It is a side effect, because I tried to disable really all in ME, ULP etc. in the driver itself.

On most boards this works and there is no Bios switch needed

Dietmar

Posted

@reboot12

Can you make a short nice Tutorial,

step by step, what needs to be done to Disable ME in Bios, here for the AIMB-786.

It is not a dangerous Bios hack, just to enable hidden settings in Bios.

And make a pdf of this Tutorial, put all needed programs into it for download

Dietmar

Posted (edited)
23 minutes ago, Dietmar said:

Can you make a short nice Tutorial,

step by step, what needs to be done to Disable ME in Bios, here for the AIMB-786.

OK, but I already wrote what needs to be done in this post: https://msfn.org/board/topic/183464-compiling-acpi-v20-driver-for-windows-xp-sp3-and-windows-2003-sp2-x32x64/page/177/#findComment-1286023

I can correct this post if something is not understandable.

EDIT - I added how make settings.txt (SceEfi64.efi /o /s settings.txt)

26 minutes ago, Dietmar said:

I force this i219 driver for to enable 100MB. The shown speed is only the speed, that the NIC can do on 4 pair lan cable.

OK, but in normal way WinXP 32/64-bit always display currently working (negotiated) speed. At the moment it shows false information because I am connected to a Fast Ethernet router (switch) and it should show 100 Mbps. If it's a problem, leave it as it's just a cosmetic thing - although Win7 shows the current speed of 100 Mbps well:
Win7-100-Mbps.png

Edited by reboot12
Posted

@reboot12

I am not as good as you in working with *.efi files.

I make Fat32 USB stick and put there  in    D:\EFI\Boot     the modGRUBShell.efi    renamed to bootx64.efi .

And in D:\  I put AmiSetupWriter.efi

This I mean, that you need to write Tutorial with ALL needed files *.efi that you use

Dietmar

Posted

@reboot12

amisetupwriter 0x1330 0x0

NVRam variable "Setup" read, data size 0x1330, atrtribute 0x3,

Offset value 0x1330 is greater than variable size 0x1330, aborting

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...