Re: tco at ichsmb

Greg Troxel <[email protected]> Sun, 25 Sep 2022 19:50:36 -0400
Newsgroups gmane.os.netbsd.ports.x86-64
Message-ID <[email protected]>
Taylor R Campbell <[email protected]> writes:

> Currently tco(4) attaches at ichlpcib(4), the Intel I/O platform
> controller hub's low-pin-count interface bridge, d31:f0.
>
> On newer Intel systems, though, the registers are found via the SMBus
> device, d31:f4, with some other bits to twiddle and knobs to turn at
> the PMC device d31:f2 and the hidden P2SB d31:f1.  See, e.g.:
>
> https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/100-series-chipset-datasheet-vol-2.pdf
>
> Linux's driver iTCO_wd and FreeBSD's driver ichwd support this
> configuration, and I'm trying to add it to NetBSD.
>
> With the attached ichsmbtco.patch, I've gotten everything to attach on
> my T480, and if I start wdogctl, I can read out reasonable-looking TCO
> registers.  But it doesn't work: it never fires, and if I read out the
> TCO RLD register, it never counts down.

I am not following all the details, but I have a maybe-helpful maybe-not
datapoint.

I have a wicked old box with an ICH6, bought 2006 or so.  dmesg excerpt:

  cpu0 at mainbus0 apid 0
  cpu0: Intel(R) Pentium(R) 4 CPU 3.40GHz, id 0xf43
  cpu0: package 0, core 0, smt 0
  ichlpcib0 at pci0 dev 31 function 0: vendor 8086 product 2640 (rev. 0x03)
  timecounter: Timecounter "ichlpcib0" frequency 3579545 Hz quality 1000
  ichlpcib0: 24-bit timer
  tco0 at ichlpcib0: TCO (watchdog) timer configured.
  tco0: Min/Max interval 1/367 seconds
  piixide0 at pci0 dev 31 function 1: Intel 82801FB IDE Controller (ICH6) (rev. 0x03)
  piixide0: bus-master DMA support present
  piixide0: primary channel configured to compatibility mode
  piixide0: primary channel interrupting at ioapic0 pin 14

Under NetBSD 5 i386, the watchdog worked (but it appeared as ichlcib0 or
something instead).  Under NetBSD 9 i386, it appears to work but does
not fire.  I have not tried amd64, or 6/7/8/proto10.

Figuring this out is on the part of my todo list I don't really expect
to get to, but maybe we'll have a long snowy winter.
signature.asc (application/pgp-signature, 194 B)
-----BEGIN PGP SIGNATURE-----

iF0EARECAB0WIQS7wyAjWilQwVHG9Vsf2nroCY7WDgUCYzDpTAAKCRAf2nroCY7W
DmFTAJ9xdsX56OySJncP3PWg3BqPGBtUTQCfVIfPdYjUz6oJYFu+9DS3ivwQeyA=
=oX8U
-----END PGP SIGNATURE-----