From: long <tlnguyen@snoqualmie.dp.intel.com>
To: linux-kernel@vger.kernel.org
Cc: greg@kroah.com, jgarzik@pobox.com, jun.nakajima@intel.com,
tom.l.nguyen@intel.com, zwane@linuxpower.ca
Subject: MSI fix for buggy PCI/PCI-X hardware
Date: Tue, 9 Sep 2003 08:39:37 -0700 [thread overview]
Message-ID: <200309091539.h89FdbfK023026@snoqualmie.dp.intel.com> (raw)
The latest patches that enable MSI in the Linux kernel were
sent out a few weeks ago on lkml. These patches will enable
MSI support if users rebuild the kernel with CONFIG_PCI_MSI
set to 'Y'. Option one (default option) enables MSI on
specific individual PCI/PCI-X MSI-capable devices listed in
the boot parameter "device_msi=". Users may choose option
two, which enables MSI on all PCI/PCI-X MSI-capable devices,
by setting CONFIG_PCI_MSI_ON_SPECIFIC_DEVICES to 'N'.
Depending on if either option one or option two is selected,
the kernel detects and enables MSI on requested PCI/PCI-X
MSI-capable devices.
During testing we have found many currently shipping
PCI/PCI-X MSI-capable devices have silicon bugs specific to
MSI support. Most of these will cause system failures when
MSI is enabled. To filter out MSI buggy hardware requires the
kernel to detect and disable the MSI support on specific hardware.
The proposed solution is to provide a new API, named "int
disable_msi(struct pci_dev *dev)", to allow IHV's who have
shipped PCI/PCI-X hardware that does not work in MSI mode to update
their software drivers to request the kernel to switch the
interrupt mode from MSI mode back to IRQ pin-assertion mode.
There are some reasons to justify this as below:
1) According to the PCI spec 3.0 or latest, the software
driver is prohibited from directly interfacing with its
device to switch MSI mode to IRQ pin-assertion mode.
Consequently, a kernel interface is required since the kernel
is the only entity permitted to change modes.
2) All PCI-Express endpoints require MSI support. These
endpoints should have MSI enabled automatically by default.
For PCI/PCI-X hardware that can't use MSI due to hardware bugs,
it is the IHVs' responsibility to update their software drivers to
request the kernel to disable MSI so the HW can function with MSI
enabled for all other devices.
3) Some PCI/PCI-X MSI-capable hardware devices out there work with
this patch without requiring any changes to their existing software
drivers.
I'd appreciate any feedback you have on this proposed solution.
Thanks,
Long
next reply other threads:[~2003-09-09 18:30 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-09 15:39 long [this message]
2003-09-09 18:41 ` MSI fix for buggy PCI/PCI-X hardware Jeff Garzik
2003-09-09 22:14 Nakajima, Jun
2003-09-09 22:52 ` Jeff Garzik
2003-09-10 21:31 ` Zwane Mwaikambo
2003-09-10 1:26 Nakajima, Jun
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200309091539.h89FdbfK023026@snoqualmie.dp.intel.com \
--to=tlnguyen@snoqualmie.dp.intel.com \
--cc=greg@kroah.com \
--cc=jgarzik@pobox.com \
--cc=jun.nakajima@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tom.l.nguyen@intel.com \
--cc=zwane@linuxpower.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).