Jump to content

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


Recommended Posts

Posted (edited)

uartctrl.log

[21/06/2026, 09:13 AM] AddDevice: PDO=FFFFFADFD0B5E060
[21/06/2026, 09:13 AM] AddDevice: checking HWID 'ACPI\8086228A'
[21/06/2026, 09:13 AM] AddDevice: checking HWID '*8086228A'
[21/06/2026, 09:13 AM] AddDevice: no supported HWID matched

i2cctrl.log

[21/06/2026, 09:11 AM] DriverEntry begin
[21/06/2026, 09:11 AM] DriverEntry complete (mask=0x00000009)
[21/06/2026, 09:11 AM] AddDevice: begin
[21/06/2026, 09:11 AM] AddDevice: scanning HWIDs for controller match
[21/06/2026, 09:11 AM] AddDevice: HWID candidate: ACPI\808622C1
[21/06/2026, 09:11 AM] AddDevice: HWID candidate: *808622C1
[21/06/2026, 09:11 AM] AddDevice: unsupported controller, skipping
[21/06/2026, 09:21 AM] DriverEntry begin
[21/06/2026, 09:21 AM] DriverEntry complete (mask=0x00000009)
[21/06/2026, 09:21 AM] AddDevice: begin
[21/06/2026, 09:21 AM] AddDevice: scanning HWIDs for controller match
[21/06/2026, 09:21 AM] AddDevice: HWID candidate: ACPI\808622C1
[21/06/2026, 09:21 AM] AddDevice: HWID candidate: *808622C1
[21/06/2026, 09:21 AM] AddDevice: unsupported controller, skipping
Edited by reboot12

Posted (edited)

  

24 minutes ago, reboot12 said:

uartctrl.log

[21/06/2026, 09:13 AM] AddDevice: PDO=FFFFFADFD0B5E060
[21/06/2026, 09:13 AM] AddDevice: checking HWID 'ACPI\8086228A'
[21/06/2026, 09:13 AM] AddDevice: checking HWID '*8086228A'
[21/06/2026, 09:13 AM] AddDevice: no supported HWID matched

i2cctrl.log

[21/06/2026, 09:11 AM] DriverEntry begin
[21/06/2026, 09:11 AM] DriverEntry complete (mask=0x00000009)
[21/06/2026, 09:11 AM] AddDevice: begin
[21/06/2026, 09:11 AM] AddDevice: scanning HWIDs for controller match
[21/06/2026, 09:11 AM] AddDevice: HWID candidate: ACPI\808622C1
[21/06/2026, 09:11 AM] AddDevice: HWID candidate: *808622C1
[21/06/2026, 09:11 AM] AddDevice: unsupported controller, skipping
[21/06/2026, 09:21 AM] DriverEntry begin
[21/06/2026, 09:21 AM] DriverEntry complete (mask=0x00000009)
[21/06/2026, 09:21 AM] AddDevice: begin
[21/06/2026, 09:21 AM] AddDevice: scanning HWIDs for controller match
[21/06/2026, 09:21 AM] AddDevice: HWID candidate: ACPI\808622C1
[21/06/2026, 09:21 AM] AddDevice: HWID candidate: *808622C1
[21/06/2026, 09:21 AM] AddDevice: unsupported controller, skipping
//
// Table of supported controllers (explicit ACPI/PCI devices)
// Match against full HWID substrings only
//
const I2CCTRL_DEVICE_ID g_I2cControllers[] = {

    /* ACPI-based controllers (NO LPSS) */
    { L"ACPI\\INT3446",
      0x00,0x04,0x08,0x0C,   /* BAR0 DW-I2C */
      0,0,0,0,               /* LPSS BAR2 */
      QUIRK_ACPI20, BSOD_NONE },

    { L"ACPI\\INT3447",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_FORCE_PIO },

    { L"ACPI\\AMD0010",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },

    { L"ACPI\\AMDI0010",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },


    /* PCI-based Intel Serial IO controllers WITH LPSS BAR2 */
    { L"PCI\\VEN_8086&DEV_9DC5",
      0x00,0x04,0x08,0x0C,       /* BAR0 DW-I2C */
      0x200,0x204,0x208,0x20C,   /* LPSS BAR2 */
      QUIRK_NEEDS_RESET_WORKAROUND, BSOD_EXTRA_RESET },

    { L"PCI\\VEN_8086&DEV_9DE8",
      0x10,0x14,0x18,0x1C,
      0x200,0x204,0x208,0x20C,
      QUIRK_BROKEN_CLOCK_GATE, BSOD_MASK_INTERRUPTS },

    { L"PCI\\VEN_8086&DEV_9DE9",
      0x20,0x24,0x28,0x2C,
      0x200,0x204,0x208,0x20C,
      QUIRK_NO_DMA_SUPPORT, BSOD_FORCE_PIO },

    { L"PCI\\VEN_8086&DEV_9DEA",
      0x00,0x04,0x08,0x0C,
      0x200,0x204,0x208,0x20C,
      QUIRK_SLOW_CLOCK, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_9DEB",
      0x00,0x04,0x08,0x0C,
      0x200,0x204,0x208,0x20C,
      QUIRK_NO_D1D2, BSOD_NONE },


    /* Legacy PCI controllers requiring ACPI 1.0b fallback (NO LPSS) */
    { L"PCI\\VEN_8086&DEV_A160",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI10, BSOD_DELAY_INIT },

    { L"PCI\\VEN_8086&DEV_A161",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI10, BSOD_DELAY_INIT },

    { L"PCI\\VEN_8086&DEV_A162",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI10, BSOD_DELAY_INIT },

    { L"PCI\\VEN_8086&DEV_A163",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI10, BSOD_DELAY_INIT },


    /* Other Intel PCI controllers (NO LPSS unless proven otherwise) */
    { L"PCI\\VEN_8086&DEV_A2E0",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_A2E1",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_A2E2",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_A2E3",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },


    { L"PCI\\VEN_8086&DEV_31AC",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_31AE",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_31B0",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_31B2",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_31B4",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_31B6",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_31B8",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_31BA",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },


    { L"PCI\\VEN_8086&DEV_A368",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_A369",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_A36A",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_A36B",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },


    { L"PCI\\VEN_8086&DEV_02E8",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_02E9",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_02EA",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_02EB",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_02C5",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_02C6",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },


    { L"PCI\\VEN_8086&DEV_06E8",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_06E9",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_06EA",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE },

    { L"PCI\\VEN_8086&DEV_06EB",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_NONE, BSOD_NONE }
};

const ULONG g_I2cControllersCount =
    sizeof(g_I2cControllers) / sizeof(g_I2cControllers[0]);

This is the list of supported controllers in i2cctrl.c.

Edited by UsefulAGKHelper
Posted

Implementing:

 

    /* Intel Serial IO I2C ES (Atom/Cherry Trail/Braswell) */
    { L"ACPI\\808622C1",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },

    { L"ACPI\\808622C2",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },

    { L"ACPI\\808622C3",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },

    { L"ACPI\\808622C4",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },

    { L"ACPI\\808622C5",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },

    { L"ACPI\\808622C6",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },

    { L"ACPI\\808622C7",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },

    { L"ACPI\\808622C8",
      0x00,0x04,0x08,0x0C,
      0,0,0,0,
      QUIRK_ACPI20, BSOD_NONE },

 

Posted (edited)
40 minutes ago, reboot12 said:

@UsefulAGKHelper

Your latest i2cctrl driver install OK but after about some seconds BSOD 50 appears:
20260621-114642.jpg

This is what Copilot said about your BSOD:

That blue screen you’re seeing — PAGE_FAULT_IN_NONPAGED_AREA (STOP 0x00000050) — means a kernel‑mode driver or system component tried to access invalid memory. In your context, since you’re testing your I²C controller driver, this BSOD almost certainly originates from a bad pointer or MMIO access inside your backend (for example, dereferencing devctx->MmioBase before mapping or writing to an invalid offset).

Here’s how to narrow it down:

🧩 Likely causes

Invalid MMIO base — MmioBase not yet mapped when IntelReadReg or IntelWriteReg runs.

Null devctx — a failed allocation or uninitialized FDO context.

Incorrect BAR offset — writing to a register that doesn’t exist on the ES controller (e.g., LPSS‑only offsets).

Accessing pageable memory at IRQL ≥ DISPATCH_LEVEL — common if ISR/DPC touches nonpaged data incorrectly.

Removing the code will get you directly back to error 31. The backend is still hardware specific...

image.thumb.png.02cb33904e2a6f581b4dcd11056fbee9.png

Edited by UsefulAGKHelper
Posted (edited)

@UsefulAGKHelper

I'm sorry, but I have to wrote your attention:

  • do not quote the entire post, select only important lines using e.g. ... ...
  • do not quote entire logs or other things, e.g. what AI wrote - select important lines from them
  • test your drivers before posting public
  • if you need to post the entire log, use sites designed for this purpose, e.g. pastebin.com
Edited by reboot12
Posted
Just now, UsefulAGKHelper said:

With what hardware? I only have ASUS x509FA.

Sorry, but if you publish a driver, e.g. on github, you should first test it on at least several computers.

I'm not interested in your Asus x509FA laptop. I would like to use I2C drivers on other computers.

Posted
28 minutes ago, reboot12 said:

Sorry, but if you publish a driver, e.g. on github, you should first test it on at least several computers.

I'm not interested in your Asus x509FA laptop. I would like to use I2C drivers on other computers.

Atleast give me the info of the models that you have.

Posted (edited)
8 minutes ago, reboot12 said:

@UsefulAGKHelper

Yes, now there is no BSOD 50 anymore, but your drivers probably don't do the job because I still can't install the sound driver:
I2-C-not-help.png

Hold on, what service does the Intel SST Audio Device driver even use, hardware ID? That's very important information.

I need your i2cctrl.log btw.

Edited by UsefulAGKHelper

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