Home | History | Annotate | Download | only in pci
History log of /src/sys/dev/pci/ichsmb.c
RevisionDateAuthorComments
 1.87  15-Sep-2025  thorpej Encapsulate what's needed to attach an I2C bus into a iicbus_attach()
inline.
 1.86  18-Jan-2025  mrg match meteor lake's smbus.
 1.85  07-Aug-2023  msaitoh branches: 1.85.6;
ichsmb(4),ismt(4): Add Snow Ridge support.
 1.84  23-Jul-2023  msaitoh Add support Intel 700 series chipset and Alder Lake-N devices.
 1.83  30-May-2023  msaitoh Use device_printf() instead of aprint_error_dev().
 1.82  12-Apr-2023  riastradh ichsmb(4), tco(4): Add support for TCO on newer Intel chipsets.

TCO (`Total Cost of Ownership', Intel's bizarre name for a watchdog
timer) used to hang off the Intel I/O platform controller hub's (ICH)
low-pin-count interface bridge (LPC IB), or ichlpcib(4). On newer
devices, it hangs off the ICH SMBus instead.

Tested on INTEL 100SERIES_SMB (works) and INTEL 100SERIES_LP_SMB
(doesn't work, still not sure why).

XXX kernel revbump: This breaks the module ABI -- tco(4) modules
older than the change to make ta_has_rcba into ta_version will
incorrectly attach at buses they do not understand. (However, the
tco(4) driver is statically built into GENERIC, so maybe it's safe
for pullup since the module wouldn't have worked anyway.)
 1.81  22-Sep-2022  riastradh branches: 1.81.4;
ichsmb(4): Remove confusing `lpcib_' prefix on register names.
 1.80  22-Sep-2022  riastradh ichsmb(4): Only rescan i2cbus child if requested.

This will let us rescan tcoichbus later too on devices where the TCO
(Intel platform controller hub watchdog timer) hangs off ichsmb(4)
instead of ichlpcib(4).
 1.79  22-Sep-2022  riastradh ichsmb(4): Use config_detach_children to simplify.
 1.78  22-Sep-2022  riastradh ichsmb(4): Attach i2c bus only once.

The child could be detached, e.g. with drvctl, and then the bus
rescanned, at which point it would reinitialize a mutex without
destroying it.
 1.77  13-Sep-2022  msaitoh Add Intel 600 series PCH-LP devices support.
 1.76  25-Jan-2022  msaitoh Add Intel 600 Series PCH (desktop) support.
 1.75  27-Oct-2021  msaitoh Add Elkhart Lake support.
 1.74  12-Oct-2021  msaitoh Add Intel 400 Series PCH-V devices.
 1.73  11-Oct-2021  msaitoh Add Intel 500 Series PCH-H SMBus.
 1.72  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.71  12-Jul-2021  msaitoh branches: 1.71.2;
Add Jasper Lake support.
 1.70  24-Apr-2021  thorpej branches: 1.70.2;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.69  15-Jan-2021  thorpej branches: 1.69.2;
- Match 400-, 495-, and 500-series controllers.
- Apply OpenBSD rev 1.38, which ignores the SMBALERT# interrupt that
fires spuriously on some systems (ignored by Linux and FreeBSD, as
well).
 1.68  22-Apr-2020  msaitoh branches: 1.68.2;
Add Whiskey Lake U and Amber Lake Y support.
 1.67  16-Apr-2020  msaitoh Add Comet Lake support.
 1.66  18-Feb-2020  msaitoh branches: 1.66.4;
Whitespace fix. No functional change.
 1.65  24-Dec-2019  thorpej branches: 1.65.2;
Make ichsmb and piixpm MP-safe:
- Synchronize with the interrupt handler using a mutex.
- Use a condvar to wait for completion, rather than tsleep().
- Mark our interrupt handler as such.

Also, other general correctness fixes:
- Loop around testing the completion condition to protect aginst
spurious wakes.
- The "i2c exec" function returns an error code, so actually do so.
 1.64  23-Dec-2019  thorpej ichsmb_i2c_exec(): No need to check 'cold' to force I2C_F_POLL; the i2c
upper layer does it for us.
 1.63  22-Dec-2019  thorpej Cleanup i2c bus acquire / release, centralizing all of the logic into
iic_acquire_bus() / iic_release_bus(). "acquire" and "release" hooks
no longer need to be provided by back-end controller drivers (only if
they need special handling, e.g. powering on the i2c controller).
This results in the removal of a bunch of rendundant code from each
back-end controller driver.

Assert that we are not in hard interrupt context in iic_acquire_bus(),
iic_exec(), and iic_release_bus().
 1.62  09-Dec-2019  ad Fix LOCKDEBUG panic on detach.
 1.61  21-Nov-2019  ad If attach fails, don't panic on detach.
 1.60  10-Dec-2018  jdolecek branches: 1.60.4;
call pci_intr_release() when pci_intr_establish_xname() fails; I got confused
by the opposite conditionals compared to other drivers

found by Masanobu SAITOH
 1.59  09-Dec-2018  jdolecek try to detach on shutdown; for now the only practical reason is to test that
the driver detach paths work
 1.58  09-Dec-2018  jdolecek convert to pci_intr_alloc() to possibly allow MSI/MSI-X; has no effect
on my system, where the device only supports INTx
 1.57  09-Apr-2018  msaitoh branches: 1.57.2;
Add 300 series chipset support.
 1.56  02-Mar-2018  msaitoh branches: 1.56.2;
Add Apollo Lake and Gemini Lake devices.
 1.55  28-Feb-2018  pgoyette Teach the ichsmb(4) driver how to detach.
 1.54  27-Feb-2018  pgoyette Add dependency on iic module to get access to iicbus_print()
 1.53  26-Feb-2018  pgoyette Modularize the ichsmb(4) driver. No functional changes.
 1.52  22-Feb-2018  msaitoh Add C620 devices.
 1.51  17-Aug-2017  msaitoh Add C3000 devices.
 1.50  31-Mar-2017  msaitoh branches: 1.50.6;
Remove extra 0x. This bug was added when replacing bitmask_snprintf(9) with
snprintb(3) (in between NetBSD 5 and 6). Old bitmask_snprint(9) didn't add
0x" automatically for hexadecimal value, so old code used it with "0x%s".
 1.49  15-Mar-2017  msaitoh Add another 100 Series SMBus (100SERIES_LP_SMB)
 1.48  15-Jan-2017  msaitoh branches: 1.48.2;
Add Intel 200 series devices.
 1.47  13-Oct-2016  jdolecek provide intr xname
 1.46  07-Jul-2016  msaitoh branches: 1.46.2;
KNF. Remove extra spaces. No functional change.
 1.45  10-Dec-2015  pgoyette Initialize the mutex before calling xxx_rescan(). Otherwise if we
load/attach an i2cbus at a later time (ie, load the iic module),
we'll end-up re-initializing the mutex.

(Caught with a LOCKDEBUG kernel)
 1.44  01-Dec-2015  msaitoh Add Intel 100 Series chipset's devices.
 1.43  16-Nov-2015  msaitoh Add Braswell PCU SMBus.
 1.42  03-May-2015  pgoyette Teach a couple of i2cbus controllers how to rescan. This enables
{,un}loading and {at,de}taching of the iic(4) driver/module at a
later time. Tested piixpm on QEMU, and ichsmb on my live server.
 1.41  02-Apr-2015  tnn attach Mobile 5th Gen. Core SMBus
 1.40  20-Mar-2015  msaitoh Add Intel C61x and X99 devices.
 1.39  18-Mar-2015  msaitoh Add 9 Series support.
 1.38  15-Dec-2014  msaitoh - Rename PCI_PRODUCT_INTEL_DH89XX_SMB to PCI_PRODUCT_INTEL_DH89XXCC_SMB
- Add PCI_PRODUCT_INTEL_DH89XXCL_SMB
 1.37  02-Jul-2014  riastradh branches: 1.37.2; 1.37.4;
Register a null pmf handler even if we failed to attach.

Keeps ichsmb(4) from preventing suspend even if it's broken because
of ichlpcib(4) grodiness.
 1.36  09-Jun-2014  msaitoh Add Tolapai, Coleto Creek and Bay Trail.
 1.35  29-Mar-2014  christos branches: 1.35.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.34  28-Dec-2013  msaitoh Add Intel C2000 PCU SMBus
 1.33  07-Nov-2013  msaitoh Add some Mobile 4th generation Intel Core Processor devices
(Lynx Point-LP).
 1.32  18-Jul-2013  soren Clear errors before beginning a transfer.

Closes PR port-i386/46792.
 1.31  18-Jul-2013  msaitoh Add Intel 8 Series SMBus.
 1.30  12-Jan-2013  riastradh branches: 1.30.2; 1.30.8;
Match the C600's other smbus controller.
 1.29  29-Nov-2012  msaitoh Add C600(and X79) SMBus devices.
 1.28  26-Nov-2012  riastradh Match the Intel 7 Series SMBus Controller in ichsmb(4).

Tested on a Thinkpad W530.
 1.27  14-Feb-2012  pgoyette branches: 1.27.2; 1.27.6;
Replace the xxx_acquire()/xxx_release() rwlocks with mutexes. There are
only RW_WRITERs for these, and no RW_READERs, so no need to incur the
extra overhead of allowing for both. As discussed on tech-kern.

For piixpm and ichsmb, the acquire/release protocol needs to be used,
even if the request is I2C_F_POLL'd (or if the device supports only
polled mode). Otherwise multiple requests can be running at the same
time, and they stomp on each other and create anomolous results.

Part 2 addresses my PR kern/45889

3 ACKs from releng
 1.26  30-Jan-2012  drochner Use pci_aprint_devinfo(9) instead of pci_devinfo+aprint_{normal,naive}
where it looks straightforward, and pci_aprint_devinfo_fancy in a few
others where drivers want to supply their own device names instead
of the pcidevs generated one. More complicated cases, where names
are composed at runtime, are left alone for now. It certainly makes
sense to simplify the drivers here rather than inventing a catch-all API.
This should serve as as example for new drivers, and also ensure
consistent output in the AB_QUIET ("boot -q") case. Also, it avoids
excessive stack usage where drivers attach child devices because the
buffer for the device name is not kept on the local stack anymore.
 1.25  15-May-2011  msaitoh branches: 1.25.4; 1.25.8;
Add support for Intel 6 series.
 1.24  10-Feb-2011  hannken Make the SMbus Send/Receive functions work.

If cmdlen = 0 and len = 1 use the XXX_HC_CMD_BYTE protocol, send
data through XXX_SMB_HCMD or receive data from XXX_SMB_HD0.

Ok: Paul Goyette
 1.23  30-Jul-2010  njoly branches: 1.23.2; 1.23.4;
Adjust for Intel ICH10 devices update.
 1.22  06-Feb-2010  tnn branches: 1.22.2; 1.22.4;
Attach to SMBus on Intel P55 chipset.
 1.21  06-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.20  18-Mar-2009  cegger bzero -> memset
 1.19  03-Feb-2009  pgoyette branches: 1.19.2;
Update the i2c_exec() functions to handle quick_read/quick_write protocol.

Although interface routines i2c_smbus_*() exist, nothing in NetBSD actually
uses them yet.
 1.18  16-Dec-2008  christos replace bitmask_snprintf(9) with snprintb(3)
 1.17  01-Oct-2008  christos branches: 1.17.2;
ICH10 support from Brad du Plessis
 1.16  08-Sep-2008  njoly Add missing newline in debug message.
 1.15  08-Sep-2008  njoly Improve message for SMI interrupts.
 1.14  08-Sep-2008  njoly Fix compilation with ICHIIC_DEBUG.
 1.13  10-Apr-2008  cegger branches: 1.13.4; 1.13.6; 1.13.10;
use aprint_*_dev and device_xname
 1.12  28-Mar-2008  kiyohara Split device_t/softc.
 1.11  09-Dec-2007  jmcneill branches: 1.11.10;
Merge jmcneill-pm branch.
 1.10  19-Oct-2007  ad branches: 1.10.4; 1.10.6;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.9  01-Sep-2007  riz branches: 1.9.2; 1.9.6;
For SMBus, add the ability to enumerate devices on the bus.
This does NOT identify the devices, merely indicates the
presence of devices at certain addresses. Tested on ichsmb
and nfsmb - other SMBus devices will need to ensure the
proper bus type is set. (I2C_TYPE_SMBUS)

From Nicolas Joly, via Paul Goyette, in PR#36744.
 1.8  27-Aug-2007  xtraeme branches: 1.8.2;
Use rwlock(9) rather than lockmgr(9).
 1.7  27-Aug-2007  xtraeme Attach to the ICH9 SMBus device too.
 1.6  27-Aug-2007  xtraeme Add missing __KERNEL_RCSID().
 1.5  26-Aug-2007  xtraeme Move the ICH SMB defs to dev/ic/i82801lpcreg.h, it's where it belongs.
This is to avoid code duplication.
 1.4  09-Aug-2007  kiyohara branches: 1.4.2; 1.4.4;
Use bitmask_snprintf().
 1.3  05-Aug-2007  xtraeme branches: 1.3.2;
Repeat after me: %zu for size_t, %zd for ssize_t. Reminded by yamt@.
 1.2  05-Aug-2007  xtraeme Use %zd to printf size_t.
 1.1  28-Jul-2007  kiyohara branches: 1.1.4;
Add support for Intel ICH SMBus controller.
 1.1.4.6  08-Dec-2007  jmcneill Rename pnp(9) -> pmf(9), as requested by many.
 1.1.4.5  23-Nov-2007  joerg Register with PM framework.
 1.1.4.4  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.1.4.3  03-Sep-2007  jmcneill Sync with HEAD.
 1.1.4.2  16-Aug-2007  jmcneill Sync with HEAD.
 1.1.4.1  09-Aug-2007  jmcneill Sync with HEAD.
 1.3.2.2  05-Aug-2007  xtraeme Repeat after me: %zu for size_t, %zd for ssize_t. Reminded by yamt@.
 1.3.2.1  05-Aug-2007  xtraeme file ichsmb.c was added on branch matt-mips64 on 2007-08-05 23:05:03 +0000
 1.4.4.4  23-Oct-2007  ad Sync with head.
 1.4.4.3  09-Oct-2007  ad Sync with head.
 1.4.4.2  20-Aug-2007  ad Sync with HEAD.
 1.4.4.1  09-Aug-2007  ad file ichsmb.c was added on branch vmlocking on 2007-08-20 22:07:04 +0000
 1.4.2.3  03-Sep-2007  skrll Sync with HEAD.
 1.4.2.2  15-Aug-2007  skrll Sync with HEAD.
 1.4.2.1  09-Aug-2007  skrll file ichsmb.c was added on branch nick-csl-alignment on 2007-08-15 13:48:30 +0000
 1.8.2.2  09-Jan-2008  matt sync with HEAD
 1.8.2.1  06-Nov-2007  matt sync with HEAD
 1.9.6.1  25-Oct-2007  bouyer Sync with HEAD.
 1.9.2.4  21-Jan-2008  yamt sync with head
 1.9.2.3  27-Oct-2007  yamt sync with head.
 1.9.2.2  03-Sep-2007  yamt sync with head.
 1.9.2.1  01-Sep-2007  yamt file ichsmb.c was added on branch yamt-lazymbuf on 2007-09-03 14:36:51 +0000
 1.10.6.1  11-Dec-2007  yamt sync with head.
 1.10.4.1  26-Dec-2007  ad Sync with head.
 1.11.10.5  17-Jan-2009  mjf Sync with HEAD.
 1.11.10.4  05-Oct-2008  mjf Sync with HEAD.
 1.11.10.3  28-Sep-2008  mjf Sync with HEAD.
 1.11.10.2  02-Jun-2008  mjf Sync with HEAD.
 1.11.10.1  03-Apr-2008  mjf Sync with HEAD.
 1.13.10.1  19-Oct-2008  haad Sync with HEAD.
 1.13.6.2  10-Oct-2008  skrll Sync with HEAD.
 1.13.6.1  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.13.4.4  11-Aug-2010  yamt sync with head.
 1.13.4.3  11-Mar-2010  yamt sync with head
 1.13.4.2  16-May-2009  yamt sync with head
 1.13.4.1  04-May-2009  yamt sync with head.
 1.17.2.3  28-Apr-2009  skrll Sync with HEAD.
 1.17.2.2  03-Mar-2009  skrll Sync with HEAD.
 1.17.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.19.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.22.4.2  31-May-2011  rmind sync with head
 1.22.4.1  05-Mar-2011  rmind sync with head
 1.22.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.23.4.1  17-Feb-2011  bouyer Sync with HEAD
 1.23.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.25.8.1  18-Feb-2012  mrg merge to -current.
 1.25.4.4  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.25.4.3  23-Jan-2013  yamt sync with head
 1.25.4.2  16-Jan-2013  yamt sync with (a bit old) head
 1.25.4.1  17-Apr-2012  yamt sync with head
 1.27.6.3  03-Dec-2017  jdolecek update from HEAD
 1.27.6.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.27.6.1  25-Feb-2013  tls resync with head
 1.27.2.1  29-Sep-2014  msaitoh Pull up following revision(s) (requested by riastradh in ticket #1123):
sys/dev/pci/ichsmb.c: revision 1.37
Register a null pmf handler even if we failed to attach.
Keeps ichsmb(4) from preventing suspend even if it's broken because
of ichlpcib(4) grodiness.
 1.30.8.1  23-Jul-2013  riastradh sync with HEAD
 1.30.2.2  18-May-2014  rmind sync with head
 1.30.2.1  28-Aug-2013  rmind sync with head
 1.35.2.1  10-Aug-2014  tls Rebase.
 1.37.4.7  28-Aug-2017  skrll Sync with HEAD
 1.37.4.6  05-Feb-2017  skrll Sync with HEAD
 1.37.4.5  05-Dec-2016  skrll Sync with HEAD
 1.37.4.4  09-Jul-2016  skrll Sync with HEAD
 1.37.4.3  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.37.4.2  06-Jun-2015  skrll Sync with HEAD
 1.37.4.1  06-Apr-2015  skrll Sync with HEAD
 1.37.2.3  09-Dec-2016  snj Pull up following revision(s) (requested by msaitoh in ticket #1294):
sys/dev/pci/ichsmb.c: revisions 1.43-1.44
ichsmb(4): Add Braswell PCU SMBus and Intel 100 Series SMBus.
 1.37.2.2  30-Apr-2015  snj branches: 1.37.2.2.4;
Pull up following revision(s) (requested by msaitoh in ticket #725):
sys/arch/x86/pci/ichlpcib.c: revisions 1.47, 1.48
sys/dev/pci/ichsmb.c: revisions 1.39, 1.40, 1.41
sys/dev/pci/pucdata.c: revision 1.94
Add 9 Series support.
--
Add Intel C61x and X99 devices.
--
attach Mobile 5th Gen. Core SMBus
 1.37.2.1  17-Feb-2015  martin Pull up following revision(s) (requested by msaitoh in ticket #528):
sys/dev/pci/ichsmb.c: revision 1.38
sys/dev/pci/pcidevs: revision 1.1206
sys/dev/pci/pcidevs: revision 1.1207
sys/arch/x86/pci/ichlpcib.c: revision 1.44
Change Intel 0x0434 entry:
- Rename DH89XX_QA to DH89XXCC_IQIA
- Modify the description to DH89xxCC PCIe Endpoint and QuickAssist
(include typo fix)
- Rename DH89xxCC's names from DH89XX_ to DH89XXCC_.
- Add some DH89xxCC's devices.
- Add DH89XXCL's devices.
- Rename PCI_PRODUCT_INTEL_DH89XX_SMB to PCI_PRODUCT_INTEL_DH89XXCC_SMB
- Add PCI_PRODUCT_INTEL_DH89XXCL_SMB
Add DH89xxC[CL] LPC devices.
 1.37.2.2.4.1  18-Jan-2017  skrll Sync with netbsd-5
 1.46.2.3  26-Apr-2017  pgoyette Sync with HEAD
 1.46.2.2  20-Mar-2017  pgoyette Sync with HEAD
 1.46.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.48.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.50.6.8  23-Aug-2023  martin Pull up following revision(s) (requested by msaitoh in ticket #1891):

sys/dev/pci/ichsmb.c: revision 1.85
sys/dev/pci/ismt.c: revision 1.11

ichsmb(4),ismt(4): Add Snow Ridge support.
 1.50.6.7  29-Jul-2023  martin Pull up the following revisions, via patch, requested by msaitoh in
ticket #1856:

sys/dev/pci/ichsmb.c 1.83-1.84

- Add support Intel 700 series chipset and Alder Lake-N devices.
- Use device_printf() instead of aprint_error_dev() in
ichsmb_i2c_exec().
 1.50.6.6  15-Oct-2022  martin Pull up the following (via patch), requested by msaitoh in ticket #1776:

sys/dev/pci/ichsmb.c 1.76-1.77

Add Intel 600 Series PCH support.
 1.50.6.5  03-Dec-2021  martin Pull up the following revisions, requested by msaitoh in ticket #1711:

sys/dev/pci/ichsmb.c 1.69, 1.71, 1.73-1.75 via patch

- Add Intel 400, 495, and 500 series support.
- Add Intel Jasper Lake and Elkhart Lake support.
- Ignores the SMBALERT# interrupt. Same as other OSes.
 1.50.6.4  05-Aug-2020  martin Pull up the following revisions, requested by msaitoh in ticket #1586:

sys/dev/pci/ichsmb.c 1.66-1.68 via patch

- Add Comet Lake, Whiskey Lake U and Amber Lake Y support.
- Whitespace fix.
 1.50.6.3  26-Jul-2018  snj Pull up following revision(s) (requested by msaitoh in ticket #926):
sys/dev/pci/ichsmb.c: 1.52, 1.56
Add C620 devices.
--
Add Apollo Lake and Gemini Lake devices.
 1.50.6.2  16-Apr-2018  martin Pull up following revision(s) (requested by msaitoh in ticket #763):

sys/dev/pci/ichsmb.c: revision 1.57
sys/dev/pci/pucdata.c: revision 1.101

Add 300 series chipset support.
 1.50.6.1  26-Feb-2018  snj Pull up following revision(s) (requested by msaitoh in ticket #565):
sys/dev/pci/ichsmb.c: 1.51
sys/dev/pci/ismt.c: 1.6
Add C3000 devices.
 1.56.2.2  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.56.2.1  16-Apr-2018  pgoyette Sync with HEAD, resolve some conflicts
 1.57.2.3  21-Apr-2020  martin Sync with HEAD
 1.57.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.57.2.1  10-Jun-2019  christos Sync with HEAD
 1.60.4.6  23-Aug-2023  martin Pull up following revision(s) (requested by msaitoh in ticket #1723):

sys/dev/pci/ichsmb.c: revision 1.85
sys/dev/pci/ismt.c: revision 1.11

ichsmb(4),ismt(4): Add Snow Ridge support.
 1.60.4.5  29-Jul-2023  martin Pull up the following revisions, via patch, requested by msaitoh in
ticket #1672:

sys/dev/pci/ichsmb.c 1.83-1.84

- Add support Intel 700 series chipset and Alder Lake-N devices.
- Use device_printf() instead of aprint_error_dev() in
ichsmb_i2c_exec().
 1.60.4.4  15-Oct-2022  martin Pull up the following revisions, requested by msaitoh in ticket #1544:

sys/dev/pci/ichsmb.c 1.76-1.77

Add Intel 600 Series PCH support.
 1.60.4.3  03-Dec-2021  martin Pull up the following revisions, requested by msaitoh in ticket #1381:

sys/dev/pci/ichsmb.c 1.69, 1.71, 1.73-1.75 via patch

- Add Intel 400, 495, and 500 series support.
- Add Intel Jasper Lake and Elkhart Lake support.
- Ignore the SMBALERT# interrupt. Same as other OSes.
 1.60.4.2  10-Jul-2020  martin Pull up the following revisions, via patch, requested by msaitoh in
ticket #996:

sys/dev/pci/ichsmb.c 1.62, 1.66-1.68

- Fix LOCKDEBUG panic on detach when attach failed.
- Add Comet Lake, Whiskey Lake U and Amber Lake Y support.
- Whitespace fix.
 1.60.4.1  01-Mar-2020  martin Pull up following revision(s) (requested by riastradh in ticket #748):

sys/dev/pci/ichsmb.c: revision 1.61

If attach fails, don't panic on detach.
 1.65.2.1  29-Feb-2020  ad Sync with head.
 1.66.4.2  25-Apr-2020  bouyer Sync with bouyer-xenpvh-base2 (HEAD)
 1.66.4.1  20-Apr-2020  bouyer Sync with HEAD
 1.68.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.69.2.1  24-Mar-2021  thorpej Don't filter interface attributes in rescan functions for devices that
carry only a single interface attribute. The autoconfiguration machinery
already considers interface attributes when searching for possible parents.
 1.70.2.1  01-Aug-2021  thorpej Sync with HEAD.
 1.71.2.1  04-Aug-2021  thorpej Adapt to CFARGS().
 1.81.4.3  23-Aug-2023  martin Pull up following revision(s) (requested by msaitoh in ticket #338):

sys/dev/pci/ichsmb.c: revision 1.85
sys/dev/pci/ismt.c: revision 1.11

ichsmb(4),ismt(4): Add Snow Ridge support.
 1.81.4.2  01-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #282):

sys/dev/pci/ichsmb.c: revision 1.82
sys/arch/amd64/conf/GENERIC: revision 1.602
sys/arch/x86/pci/tco.c: revision 1.10
sys/arch/x86/pci/tco.h: revision 1.5
sys/arch/x86/pci/ichlpcib.c: revision 1.59
sys/dev/ic/i82801lpcreg.h: revision 1.17
sys/arch/x86/pci/files.pci: revision 1.27
sys/dev/pci/files.pci: revision 1.446

ichsmb(4), tco(4): Add support for TCO on newer Intel chipsets.

TCO (`Total Cost of Ownership', Intel's bizarre name for a watchdog
timer) used to hang off the Intel I/O platform controller hub's (ICH)
low-pin-count interface bridge (LPC IB), or ichlpcib(4). On newer
devices, it hangs off the ICH SMBus instead.
Tested on INTEL 100SERIES_SMB (works) and INTEL 100SERIES_LP_SMB
(doesn't work, still not sure why).

XXX kernel revbump: This breaks the module ABI -- tco(4) modules
older than the change to make ta_has_rcba into ta_version will
incorrectly attach at buses they do not understand. (However, the
tco(4) driver is statically built into GENERIC, so maybe it's safe
for pullup since the module wouldn't have worked anyway.)
 1.81.4.1  29-Jul-2023  martin Pull up the following revisions, via patch, requested by msaitoh in
ticket #253:

sys/dev/pci/ichsmb.c 1.83-1.84

- Add support Intel 700 series chipset and Alder Lake-N devices.
- Use device_printf() instead of aprint_error_dev() in
ichsmb_i2c_exec().
 1.85.6.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed