openwrt / openwrt/packages

x86/64: iTCO_wdt watchdog non-functional on Intel 100+ series PCH due to missing CONFIG_I2C_I801

Open Beginner friendly
#29,630 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug release/24.10
Dominant language
Makefile
Stars
4.6k
Forks
4k
Avg merge
3d 12h
Merged PRs (30d)
134

Description

Package Name

kmod-itco-wdt

Maintainer

OpenWrt Kernel Team

OpenWrt Version

24.10.6

OpenWrt Target/Subtarget

x86/64

Steps to Reproduce
  1. Install OpenWrt 24.10.x on an Intel 100/200 series PCH platform
    (tested on HP EliteDesk 800 G3, Q270 chipset, Pentium G4560)

  2. Install the watchdog package:
    opkg update && opkg install kmod-itco-wdt

  3. Reboot and check for /dev/watchdog:
    ls -la /dev/watchdog

  4. Observe: /dev/watchdog does NOT exist

  5. Check kernel log:
    dmesg | grep -iE "iTCO|watchdog|i801"

Output shows iTCO_wdt loads but reports no TCO device found:
iTCO_wdt: No TCO device found

  1. On Intel 100+ series PCH (Sunrise Point and newer), the iTCO_wdt
    platform device is created by the i2c_i801 SMBus driver, NOT lpc_ich.

  2. The i2c-i801.ko module is available in the OpenWrt SDK but is NOT
    listed as a dependency of kmod-itco-wdt, so it is never installed.

  3. Manually loading i2c-i801.ko immediately fixes the issue:
    insmod i2c-smbus.ko insmod i2c-i801.ko modprobe iTCO_wdt ls -la /dev/watchdog # Now exists!

dmesg shows:
i801_smbus 0000:00:1f.4: SMBus using PCI interrupt iTCO_wdt iTCO_wdt: Found a Intel PCH TCO device (Version=4, TCOBASE=0x0400)

Actual Behaviour

On Intel 100+ series PCH platforms:

  • kmod-itco-wdt installs and loads successfully
  • But /dev/watchdog is never created
  • dmesg shows "iTCO_wdt: No TCO device found" or similar

Root cause: On Intel Sunrise Point (100 series) and newer consumer PCH
chipsets, the iTCO_wdt platform device is created as an MFD cell by the
i2c_i801 SMBus driver. The legacy lpc_ich path no longer applies.

Since kmod-i2c-i801 is not a dependency of kmod-itco-wdt, the SMBus
driver is never installed, the TCO platform device is never registered,
and /dev/watchdog never appears.

Affected chipsets include but are not limited to:

  • Intel 100 series: Q170, Q270, B250, Z270, H270 (Sunrise Point)
  • Intel 200 series: Q370, B360, Z390 (Cannon Lake PCH)
  • Intel 300 series and newer consumer PCH

Proposed fix: Add the following dependency to kmod-itco-wdt:
DEPENDS:=+kmod-i2c-i801

Confirmation Checklist

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Inspect the package definition for kmod-itco-wdt and its dependency metadata; the issue identifies kmod-i2c-i801 as the missing dependency. Reproduce the package installation on an affected Intel 100-series-or-newer platform, then verify that installing kmod-itco-wdt also provides the SMBus module and creates /dev/watchdog without manual insmod steps.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
operating-systems
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.