Re: Re: Problem while inserting pciehp (PCI Express Hot-plug) driver
On Sun, Jul 31, 2005 at 12:20:30AM +0800, kylin wrote: I wonder if i can workaround the MSI using the polling way on the server geared by E7520 and the firmware with no OSC implemented Per the PCI firmware spec (I'm looking at draft 0.9, version 3.0), the OS must explicitly get control of native pcie hotplug from firmware using _OSC before trying to use it. Firmware may be deliberately not creating an _OSC because it is controlling the hotplug hardware, or may be aware of other reasons (e.g. errata) why OS native pcie hotplug should not be used on this platform. So no, I don't think we can load and use pciehp if there's no _OSC implemented in firmware. Rajesh - To unsubscribe from this list: send the line unsubscribe linux-newbie in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
Re: Re: Problem while inserting pciehp (PCI Express Hot-plug) driver
n the latest update of the Intel's E7520 MCH,the very NOTFIX entry caught my eye: // PCI Express Hot-Plug MSI interrupt issue Problem: During a link down state, the MCH will not send MSI interrupts to the front side bus. In general MSI messages need not be delivered when the link is down, but in the event that MSI interrupt routing is used on Hot-Plug events, the processor will wait indefinitely for this interrupt. Waiting for command complete interrupts is a normal part of the steps in the orderly removal process, and link down will occur at the point that power is removed from the slot. Subsequent accesses to the slot control register to update indicators and power control will not generate the expected MSI interrupts from the MCH until slot power is restored, and the link is back up. Implication: Hot-Plug software written to wait for command complete interrupts will hang in MSI interrupt mode. Workaround: Run in either of the other two interrupt modes (the legacy method using the MCHGPE# to signal hot-plug interrupts to the ICH or native interrupt mode using PCI interrupts (INTA#)). Alternatively in MSI mode, software may poll for command complete rather than wait for MSI, or implement the command complete timeout to continue to the next slot control update rather than repeat the current slot control update I wonder if i can workaround the MSI using the polling way on the server geared by E7520 and the firmware with no OSC implemented -- we who r about to die,salute u! - To unsubscribe from this list: send the line unsubscribe linux-newbie in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
Re: Re: Problem while inserting pciehp (PCI Express Hot-plug) driver
On 7/29/05, Rajesh Shah [EMAIL PROTECTED] wrote: On Thu, Jul 28, 2005 at 07:45:49PM +0900, Rajat Jain wrote: Okay. I'm sorry but I'm not very clear with this. I'm just putting down here my understanding. So basically we have two mutually EXCLUSIVE hotplug drivers I can use for PCI Express: A hotplug slot can be controlled only by a single hotplug technology - pcie shpc or acpiphp. However, different parts of the I/O hierarchy can be controlled by different technologies. For example, a host bridge I/O complex can be hotplugged using acpiphp, but end devices under this IO complex may be hotpplugged using pcie or shpc hotplug. 1) pciehp.ko : We use this PCIE HP driver when our BIOS supports Native Hot-plug for PCI Express (which means that hot-plug will be handled by OS single handedly). 2) acpiphp.ko : We use this generic ACPI HP driver when BIOS allows only ITSELF to handle hot-plug events. No, acpi hotplug is not handled by BIOS only. Both acpi and pcie hotplug need firmware support as well as hardware support. Hardware in many (but not all) systems support both types of hotplug and its up to the BIOS to decide which type to support. If the platform supports pcie hotplug, you see an _OSC _SUN methods in the ACPI namespace and the pciehp driver controls hotplug slots. If the system supports acpi hotplug, you see _ADR and _EJ0 methods in the ACPI namespace and the acpiphp driver controls the corresponding hotplug slots. Rajesh Thanks a lot. It has proved to be a very useful information for me. I can now do some RD on it. Thanks again, Rajat - To unsubscribe from this list: send the line unsubscribe linux-newbie in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
Re: Re: Problem while inserting pciehp (PCI Express Hot-plug) driver
Hi Rajat, you can learn more about the OSHP method by reading the PCI express spec. It is used to tell an ACPI bios that the OS will be handling the hotplug events natively. It may be that your BIOS does not allow native hotplug for pcie, in which case you need to be using the acpiphp driver instead of the pciehp driver. You could just try modprobing acpiphp and see if this will handle the hotplug events. A recent version of lspci (which understands pcie) will tell you as well if pcie hotplug capability is supported (lspci -vv). Okay. I'm sorry but I'm not very clear with this. I'm just putting down here my understanding. So basically we have two mutually EXCLUSIVE hotplug drivers I can use for PCI Express: 1) pciehp.ko : We use this PCIE HP driver when our BIOS supports Native Hot-plug for PCI Express (which means that hot-plug will be handled by OS single handedly). 2) acpiphp.ko : We use this generic ACPI HP driver when BIOS allows only ITSELF to handle hot-plug events. Is my understanding correct? I would appreciate if you could help me gain a grip on this. Thanks a lot for the useful info you gave. Provided me with a new direction to work on. Regards, Rajat - To unsubscribe from this list: send the line unsubscribe linux-newbie in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
Re: Re: Problem while inserting pciehp (PCI Express Hot-plug) driver
On 7/28/05, Rajat Jain [EMAIL PROTECTED] wrote: Hi Rajat, you can learn more about the OSHP method by reading the PCI express spec. It is used to tell an ACPI bios that the OS will be handling the hotplug events natively. It may be that your BIOS does not allow native hotplug for pcie, in which case you need to be using the acpiphp driver instead of the pciehp driver. You could just try modprobing acpiphp and see if this will handle the hotplug events. A recent version of lspci (which understands pcie) will tell you as well if pcie hotplug capability is supported (lspci -vv). Okay. I'm sorry but I'm not very clear with this. I'm just putting down here my understanding. So basically we have two mutually EXCLUSIVE hotplug drivers I can use for PCI Express: 1) pciehp.ko : We use this PCIE HP driver when our BIOS supports Native Hot-plug for PCI Express (which means that hot-plug will be handled by OS single handedly). 2) acpiphp.ko : We use this generic ACPI HP driver when BIOS allows only ITSELF to handle hot-plug events. usually this is configurable. So, you can configure you BIOS to use acpi to handle hot-plug, or you can allow the OS to handle it. Most OS (from what I hear) don't actually implement native hotplug support, so native hotplug support is probably not as big a priority for bios writers as the acpi support. so, it doesn't surprise me to find some that don't support native. you can run the native hotplug driver on a system who's bios supports acpi - if it provides the OSHP method, this tells the bios to allow the OS to handle it. Is my understanding correct? I would appreciate if you could help me gain a grip on this. i'm trying to gain a grip myself, as i've just started learning about pcie :). someone else hopefully will correct me if i'm telling you the wrong info. Thanks a lot for the useful info you gave. Provided me with a new direction to work on. Regards, Rajat Kristen - To unsubscribe from this list: send the line unsubscribe linux-newbie in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
Re: Re: Problem while inserting pciehp (PCI Express Hot-plug) driver
On Thu, Jul 28, 2005 at 07:45:49PM +0900, Rajat Jain wrote: Okay. I'm sorry but I'm not very clear with this. I'm just putting down here my understanding. So basically we have two mutually EXCLUSIVE hotplug drivers I can use for PCI Express: A hotplug slot can be controlled only by a single hotplug technology - pcie shpc or acpiphp. However, different parts of the I/O hierarchy can be controlled by different technologies. For example, a host bridge I/O complex can be hotplugged using acpiphp, but end devices under this IO complex may be hotpplugged using pcie or shpc hotplug. 1) pciehp.ko : We use this PCIE HP driver when our BIOS supports Native Hot-plug for PCI Express (which means that hot-plug will be handled by OS single handedly). 2) acpiphp.ko : We use this generic ACPI HP driver when BIOS allows only ITSELF to handle hot-plug events. No, acpi hotplug is not handled by BIOS only. Both acpi and pcie hotplug need firmware support as well as hardware support. Hardware in many (but not all) systems support both types of hotplug and its up to the BIOS to decide which type to support. If the platform supports pcie hotplug, you see an _OSC _SUN methods in the ACPI namespace and the pciehp driver controls hotplug slots. If the system supports acpi hotplug, you see _ADR and _EJ0 methods in the ACPI namespace and the acpiphp driver controls the corresponding hotplug slots. Rajesh - To unsubscribe from this list: send the line unsubscribe linux-newbie in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
Re: Re: Problem while inserting pciehp (PCI Express Hot-plug) driver
On 7/24/05, Rajat Jain [EMAIL PROTECTED] wrote: On Tue, Jul 12, 2005 at 06:01:22PM +0900, Rajat Jain wrote: Hi, I'm trying to use the PCI Express Hot-Plug Controller driver (pciehp.ko) with Kernel 2.6 so that I can get hot-plug events whenever I add a card to my PCI Express slot. I built the driver as a module, and am trying to load it manually using modprobe. However, when trying to insert, I'm getting the following error: pciehp: acpi_pciehprm:\_SB.PCI0 _OSC fails=0x5 pciehp: Both _OSC and OSHP methods do not exist FATAL: Error inserting pciehp (/lib/modules/2.6.9-5.18AXcustom-hotplug/kernel/drivers/pci/hotplug/pciehp.ko): No such device --- Greg KH [EMAIL PROTECTED] wrote: Your bios does not support pci express hotplug. Are you sure you have pci express hotplug hardware in your system? If so, contact your bios vendor to get an updated version. Good luck, greg k-h Thanks for replying Greg. I checked again, I have the hardware in my system. I asked the vendor for bios update, but he says mine is the latest version. I downloaded the Intel iasl compiler (http://developer.intel.com/technology/iapc/acpi/downloads.htm), and used it to decompile /proc/acpi/dsdt file (in AML) to its equivalent ACPI source code. I could not find the _OSC and OSHP control methods there. Is this information sufficient enough to deduce that I need a BIOS update? And the hardware is OK but the problem is with the bios? Just out of curosity, I would appreciate if you could provide me pointers to OSHP and _OSC methods. What exactly do they mean? Does every hardware containing a hot-plug controller necessarily has to implement them both? I checked with ACPI Specs but it contains no refrence to OSHP method. Any pointers are more than appreciated, TIA, Rajat Hi Rajat, you can learn more about the OSHP method by reading the PCI express spec. It is used to tell an ACPI bios that the OS will be handling the hotplug events natively. It may be that your BIOS does not allow native hotplug for pcie, in which case you need to be using the acpiphp driver instead of the pciehp driver. You could just try modprobing acpiphp and see if this will handle the hotplug events. A recent version of lspci (which understands pcie) will tell you as well if pcie hotplug capability is supported (lspci -vv). - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ - To unsubscribe from this list: send the line unsubscribe linux-newbie in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
Re: Re: Problem while inserting pciehp (PCI Express Hot-plug) driver
On Tue, Jul 12, 2005 at 06:01:22PM +0900, Rajat Jain wrote: Hi, I'm trying to use the PCI Express Hot-Plug Controller driver (pciehp.ko) with Kernel 2.6 so that I can get hot-plug events whenever I add a card to my PCI Express slot. I built the driver as a module, and am trying to load it manually using modprobe. However, when trying to insert, I'm getting the following error: pciehp: acpi_pciehprm:\_SB.PCI0 _OSC fails=0x5 pciehp: Both _OSC and OSHP methods do not exist FATAL: Error inserting pciehp (/lib/modules/2.6.9-5.18AXcustom-hotplug/kernel/drivers/pci/hotplug/pciehp.ko): No such device --- Greg KH [EMAIL PROTECTED] wrote: Your bios does not support pci express hotplug. Are you sure you have pci express hotplug hardware in your system? If so, contact your bios vendor to get an updated version. Good luck, greg k-h Thanks for replying Greg. I checked again, I have the hardware in my system. I asked the vendor for bios update, but he says mine is the latest version. I downloaded the Intel iasl compiler (http://developer.intel.com/technology/iapc/acpi/downloads.htm), and used it to decompile /proc/acpi/dsdt file (in AML) to its equivalent ACPI source code. I could not find the _OSC and OSHP control methods there. Is this information sufficient enough to deduce that I need a BIOS update? And the hardware is OK but the problem is with the bios? Just out of curosity, I would appreciate if you could provide me pointers to OSHP and _OSC methods. What exactly do they mean? Does every hardware containing a hot-plug controller necessarily has to implement them both? I checked with ACPI Specs but it contains no refrence to OSHP method. Any pointers are more than appreciated, TIA, Rajat - To unsubscribe from this list: send the line unsubscribe linux-newbie in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs
Problem while inserting pciehp (PCI Express Hot-plug) driver
Hi, I'm trying to use the PCI Express Hot-Plug Controller driver (pciehp.ko) with Kernel 2.6 so that I can get hot-plug events whenever I add a card to my PCI Express slot. I built the driver as a module, and am trying to load it manually using modprobe. However, when trying to insert, I'm getting the following error: pciehp: acpi_pciehprm:\_SB.PCI0 _OSC fails=0x5 pciehp: Both _OSC and OSHP methods do not exist FATAL: Error inserting pciehp (/lib/modules/2.6.9-5.18AXcustom-hotplug/kernel/drivers/pci/hotplug/pciehp.ko): No such device I do not know what exactly _OSC and OSHP methods mean? What does it mean when both these methods are absent? Is there a problem with the acpi? Or the pciehp?? I would appreciate if anyone could provide me any pointers. I passed the pciehp_debug=1 parameter to modprobe and I'm attaching the detailed messages at the end of the mail. Analysis showed that the following functions are returning a status of 0x05 acpi_evaluate_object(ab-handle, METHOD_NAME_OSHP, NULL, ret_buf) pci_osc_control_set (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL) Any ind of help / pointers are apreciated. TIA, Rajat ---Debug Output- Jun 28 16:02:32 localhost kernel: pciehp: Initialize + Start the notification/polling mechanism Jun 28 16:02:32 localhost kernel: pciehp: Our event thread pid = 4360 Jun 28 16:02:32 localhost kernel: pciehp: event_thread sleeping Jun 28 16:02:32 localhost kernel: pciehp: Initialize slot lists Jun 28 16:02:32 localhost kernel: pciehp: pciehprm ACPI init enter Jun 28 16:02:32 localhost kernel: pciehp: acpi_pciehprm: ROOT PCI seg(0x0)bus(0x0)dev(0x0)func(0x0) [\_SB_.PCI0] Jun 28 16:02:32 localhost kernel: pciehp: acpi_pciehprm: PCI bus 0x0 Resource structure 0. Jun 28 16:02:32 localhost kernel: pciehp: acpi_pciehprm:16-Bit Address Space Resource Jun 28 16:02:32 localhost kernel: pciehp: Resource Type: Bus Number Range(fixed) Jun 28 16:02:32 localhost kernel: pciehp: Resource Producer Jun 28 16:02:32 localhost kernel: pciehp: Positive decode Jun 28 16:02:32 localhost kernel: pciehp: Min address is fixed Jun 28 16:02:32 localhost kernel: pciehp: Max address is fixed Jun 28 16:02:32 localhost kernel: pciehp: Granularity: Jun 28 16:02:32 localhost kernel: pciehp: Address range min: 0001 Jun 28 16:02:32 localhost kernel: pciehp: Address range max: 00FF Jun 28 16:02:32 localhost kernel: pciehp: Address translation offset: Jun 28 16:02:32 localhost kernel: pciehp: Address Length: 00FF Jun 28 16:02:32 localhost kernel: pciehp: Resource Source Index: 0 Jun 28 16:02:32 localhost kernel: pciehp: acpi_pciehprm: PCI bus 0x0 Resource structure 1. Jun 28 16:02:32 localhost kernel: pciehp: acpi_pciehprm:16-Bit Address Space Resource Jun 28 16:02:32 localhost kernel: pciehp: Resource Type: I/O Range Jun 28 16:02:32 localhost kernel: pciehp: Type Specific: ISA and non-ISA Io Addresses Jun 28 16:02:32 localhost kernel: pciehp: Resource Producer Jun 28 16:02:32 localhost kernel: pciehp: Positive decode Jun 28 16:02:32 localhost kernel: pciehp: Min address is fixed Jun 28 16:02:32 localhost kernel: pciehp: Max address is fixed Jun 28 16:02:32 localhost kernel: pciehp: Granularity: Jun 28 16:02:32 localhost kernel: pciehp: Address range min: Jun 28 16:02:32 localhost kernel: pciehp: Address range max: 0CF7 Jun 28 16:02:32 localhost kernel: pciehp: Address translation offset: Jun 28 16:02:32 localhost kernel: pciehp: Address Length: 0CF8 Jun 28 16:02:32 localhost kernel: pciehp: Resource Source Index: 0 Jun 28 16:02:32 localhost kernel: pciehp: acpi_pciehprm: PCI bus 0x0 Resource structure 2. Jun 28 16:02:32 localhost kernel: pciehp: Io Resource Jun 28 16:02:32 localhost kernel: pciehp: 16 bit decode Jun 28 16:02:32 localhost kernel: pciehp: Range minimum base: 0CF8 Jun 28 16:02:32 localhost kernel: pciehp: Range maximum base: 0CF8 Jun 28 16:02:32 localhost kernel: pciehp: Alignment: 0001 Jun 28 16:02:32 localhost kernel: pciehp: Range Length: 0008 Jun 28 16:02:32 localhost kernel: pciehp: acpi_pciehprm: PCI bus 0x0 Resource structure 3. Jun 28 16:02:32 localhost kernel: pciehp: acpi_pciehprm:16-Bit Address Space Resource Jun 28 16:02:32 localhost kernel: pciehp: Resource Type: I/O Range Jun 28 16:02:32 localhost kernel: pciehp: Type Specific: ISA and non-ISA Io Addresses Jun 28 16:02:32 localhost kernel: pciehp: Resource Producer Jun 28 16:02:32 localhost kernel: pciehp: Positive decode Jun 28 16:02:32 localhost kernel: pciehp: Min address is fixed Jun 28 16:02:33 localhost kernel: pciehp: Max address is fixed Jun 28 16:02:33 localhost kernel: pciehp: Granularity: Jun 28 16:02:33 localhost kernel: pciehp: Address range min: 0D00 Jun 28 16:02:33 localhost kernel: pciehp: Address range max: Jun 28 16:02:33 localhost kernel: pciehp: Address translation offset:
Re: Problem while inserting pciehp (PCI Express Hot-plug) driver
On Tue, Jul 12, 2005 at 06:01:22PM +0900, Rajat Jain wrote: Hi, I'm trying to use the PCI Express Hot-Plug Controller driver (pciehp.ko) with Kernel 2.6 so that I can get hot-plug events whenever I add a card to my PCI Express slot. I built the driver as a module, and am trying to load it manually using modprobe. However, when trying to insert, I'm getting the following error: pciehp: acpi_pciehprm:\_SB.PCI0 _OSC fails=0x5 pciehp: Both _OSC and OSHP methods do not exist FATAL: Error inserting pciehp (/lib/modules/2.6.9-5.18AXcustom-hotplug/kernel/drivers/pci/hotplug/pciehp.ko): No such device Your bios does not support pci express hotplug. Are you sure you have pci express hotplug hardware in your system? If so, contact your bios vendor to get an updated version. Good luck, greg k-h - To unsubscribe from this list: send the line unsubscribe linux-newbie in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.linux-learn.org/faqs