Skip to content
View in the app

A better way to browse. Learn more.

MSFN

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

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


  

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

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 },

 

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

@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

@reboot12 Enable kernel memory dump from XP's registry (offline). Boot with i2cctrl set from manual to disabled, enable and disable from device manager again after service is enabled through serviwin/etc. Now on BSOD you should have a prompt for MEMORY.DMP.

3 minutes ago, reboot12 said:

@UsefulAGKHelper

  • test your drivers before posting public

With what hardware? I only have ASUS x509FA. I can't afford another device with I2C.

Edited by UsefulAGKHelper

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.

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.

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

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.