* Re: Haswell systems & i801 i2c driver [not found] ` <5342E7C0.4050209-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2014-04-07 20:25 ` Bjorn Helgaas 2014-04-07 20:30 ` Matthew Garrett 0 siblings, 1 reply; 4+ messages in thread From: Bjorn Helgaas @ 2014-04-07 20:25 UTC (permalink / raw) To: Prarit Bhargava Cc: Seth Heasley, Janet Morgan, Janet Morgan, Jean Delvare, linux-i2c, Myron Stowe, linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rafael J. Wysocki, Matthew Garrett [+cc Rafael, Matthew, linux-acpi] Hi Prarit, On Mon, Apr 7, 2014 at 12:00 PM, Prarit Bhargava <prarit-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote: > When loading the i801 i2c bus driver on an i5-46xx CPU, and this chipset > http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/8-series-chipset-pch-datasheet.pdf > > I see the following warning: > > i801_smbus 0000:00:1f.3: PCI INT C -> GSI 18 (level, low) -> IRQ 18 > ACPI: resource 0000:00:1f.3 [io 0xefa0-0xefbf] conflicts with ACPI region SMBI > [io 0xefa0-0xefaf] > ACPI: This conflict may cause random problems and system instability > ACPI: If an ACPI driver is available for this device, you should use it instead > of the native driver > > It seems like the BIOS/ACPI defines a region, SMBI, which is defined for the > SMBus to use, but there is no ACPI driver available for the SMBus (at least > AFAICT). Is this on a production BIOS? It seems like a BIOS bug to expose a PCI device with resources that are used by ACPI. The spec you pointed to does mention an "SMBus Disable" bit (sec 10.1.54) that claims to disable PCI config space for this device. Maybe the BIOS forgot to set that? If we (the Linux PCI core) discovered this device (00:1f.3), we believe we own it and can assign a driver to it and potentially change the resources assigned to it. Changing the [io 0xefa0-0xefbf] BAR would likely break the SMBI opregion because the AML using it wouldn't know about the change. Assigning a driver, e.g., i801_smbus, seems likely to cause conflicts with the AML that uses the SMBI opregion. These could be difficult to reproduce and debug. If this is on a shipping BIOS, we might need to figure out some way to handle it. I don't remember anything in the ACPI spec that talks about issues like this, but maybe we should add something in PCI that notices if there's an ACPI device with the same resources and marks the PCI device to keep us from moving it or assigning a driver (maybe the warning you're seeing already handles the driver part?) Bjorn ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Haswell systems & i801 i2c driver 2014-04-07 20:25 ` Haswell systems & i801 i2c driver Bjorn Helgaas @ 2014-04-07 20:30 ` Matthew Garrett 2014-04-07 20:56 ` Jean Delvare 0 siblings, 1 reply; 4+ messages in thread From: Matthew Garrett @ 2014-04-07 20:30 UTC (permalink / raw) To: bhelgaas@google.com Cc: jamorgan@redhat.com, linux-i2c@vger.kernel.org, rjw@rjwysocki.net, seth.heasley@intel.com, jdelvare@suse.de, prarit@redhat.com, janet.morgan@intel.com, mstowe@redhat.com, linux-acpi@vger.kernel.org > If this is on a shipping BIOS, we might need to figure out some way to > handle it. I don't remember anything in the ACPI spec that talks > about issues like this, but maybe we should add something in PCI that > notices if there's an ACPI device with the same resources and marks > the PCI device to keep us from moving it or assigning a driver (maybe > the warning you're seeing already handles the driver part?) This is, sadly, pretty typical. SMBus devices are often exposed via PCI even though they're accessed directly via AML. The current behaviour seems about as good as it gets - we warn the user that this could cause problems, and they can pass a kernel parameter that allows them to do it anyway. -- Matthew Garrett <matthew.garrett@nebula.com> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Haswell systems & i801 i2c driver 2014-04-07 20:30 ` Matthew Garrett @ 2014-04-07 20:56 ` Jean Delvare [not found] ` <20140407225620.23d52a0c-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Jean Delvare @ 2014-04-07 20:56 UTC (permalink / raw) To: Matthew Garrett Cc: bhelgaas-hpIqsD4AKlfQT0dZR+AlfA, jamorgan-H+wXaHxf7aLQT0dZR+AlfA, linux-i2c-u79uwXL29TY76Z2rM5mHXA, rjw-LthD3rsA81gm4RdzfppkhA, seth.heasley-ral2JQCrhuEAvxtiuMwx3w, prarit-H+wXaHxf7aLQT0dZR+AlfA, janet.morgan-ral2JQCrhuEAvxtiuMwx3w, mstowe-H+wXaHxf7aLQT0dZR+AlfA, linux-acpi-u79uwXL29TY76Z2rM5mHXA On Mon, 7 Apr 2014 20:30:39 +0000, Matthew Garrett wrote: > > If this is on a shipping BIOS, we might need to figure out some way to > > handle it. I don't remember anything in the ACPI spec that talks > > about issues like this, but maybe we should add something in PCI that > > notices if there's an ACPI device with the same resources and marks > > the PCI device to keep us from moving it or assigning a driver (maybe > > the warning you're seeing already handles the driver part?) > > This is, sadly, pretty typical. SMBus devices are often exposed via PCI > even though they're accessed directly via AML. The current behaviour > seems about as good as it gets - we warn the user that this could cause > problems, and they can pass a kernel parameter that allows them to do it > anyway. The proper way to handle it at the BIOS level is to expose the SMBus to the OS by implementing the ACPI SMBus CMI as supported by the i2c-scmi driver. Unfortunately most BIOS do not bother implementing that interface, effectively locking the OS out of the SMBus controller and everything behind it. This has been a major pain for years :( -- Jean Delvare SUSE L3 Support ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20140407225620.23d52a0c-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>]
* Re: Haswell systems & i801 i2c driver [not found] ` <20140407225620.23d52a0c-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org> @ 2014-04-09 16:21 ` Prarit Bhargava 0 siblings, 0 replies; 4+ messages in thread From: Prarit Bhargava @ 2014-04-09 16:21 UTC (permalink / raw) To: Jean Delvare Cc: Matthew Garrett, bhelgaas-hpIqsD4AKlfQT0dZR+AlfA, jamorgan-H+wXaHxf7aLQT0dZR+AlfA, linux-i2c-u79uwXL29TY76Z2rM5mHXA, rjw-LthD3rsA81gm4RdzfppkhA, seth.heasley-ral2JQCrhuEAvxtiuMwx3w, janet.morgan-ral2JQCrhuEAvxtiuMwx3w, mstowe-H+wXaHxf7aLQT0dZR+AlfA, linux-acpi-u79uwXL29TY76Z2rM5mHXA On 04/07/2014 04:56 PM, Jean Delvare wrote: > On Mon, 7 Apr 2014 20:30:39 +0000, Matthew Garrett wrote: >>> If this is on a shipping BIOS, we might need to figure out some way to >>> handle it. I don't remember anything in the ACPI spec that talks >>> about issues like this, but maybe we should add something in PCI that >>> notices if there's an ACPI device with the same resources and marks >>> the PCI device to keep us from moving it or assigning a driver (maybe >>> the warning you're seeing already handles the driver part?) >> >> This is, sadly, pretty typical. SMBus devices are often exposed via PCI >> even though they're accessed directly via AML. The current behaviour >> seems about as good as it gets - we warn the user that this could cause >> problems, and they can pass a kernel parameter that allows them to do it >> anyway. > > The proper way to handle it at the BIOS level is to expose the SMBus to > the OS by implementing the ACPI SMBus CMI as supported by the i2c-scmi > driver. Unfortunately most BIOS do not bother implementing that > interface, effectively locking the OS out of the SMBus controller and > everything behind it. This has been a major pain for years :( Hey Jean, Thanks for the info. I'm about to RFC an algorithm patch for the i801 ACPI SBUS. I dunno if it is really a good thing to do outside of Intel or if we should wait for a CMI. OTOH it seems to work and your comment that "This has been a major pain for years" worries me that we'll never see a solution. P. > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-04-09 16:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <5342E7C0.4050209@redhat.com>
[not found] ` <5342E7C0.4050209-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-04-07 20:25 ` Haswell systems & i801 i2c driver Bjorn Helgaas
2014-04-07 20:30 ` Matthew Garrett
2014-04-07 20:56 ` Jean Delvare
[not found] ` <20140407225620.23d52a0c-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2014-04-09 16:21 ` Prarit Bhargava
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).