help-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Does GRUB supports PCI Express technology?


From: Francesco Lo Conte
Subject: Does GRUB supports PCI Express technology?
Date: Sun, 9 Oct 2011 13:14:37 +0200

Hi,

I have an HP xw9400 (AMD64) with an nVidia FX 3500 (PCI Express) and I want to 
install Solaris 10 (x86) on it.

After the GRUB menu shows up I select to install Solaris and then it stops with 
the following error:

"WARNING: pci_lcap_locate: unexpected pci header type: ff"

I've done some investigation looking at the OPENSOLARIS kernel (although I'm 
installing Solaris 10) and I found this bit of code (line 147) that prints the 
error out:
http://fxr.watson.org/fxr/source/common/io/pci_cap.c?v=OPENSOLARIS

It looks as if the nVidia card is returning a PCI header type (0xff) different 
from the allowed types (either 0x80, 0x00, 0x01, 0x02).
Here's code that shows the allowed types: 
http://fxr.watson.org/fxr/ident?v=OPENSOLARIS;im=10;i=PCI_HEADER_ZERO
Here's is a Wikipedia description of the standard PCI header: 
http://en.wikipedia.org/wiki/PCI_configuration_space#Standardized_registers

The motherboard has 7 PCI slots: 1 PCI, 2 PCI-X, 2 PCI Express x8, 2 PCI 
Express x16
The nVidia card is installed into one of the PCI Express x16 slots.

Is the problem with GRUB? Is it something to do with the 'multiboot' binary? Is 
it something to do with the Solaris kernel? Is it something to do with PCI 
Express?

Here's a thread from someone with a similar problem: 
http://wesunsolve.net/bugid/id/6907022
They seem to be able to resolve it using this Grub options "-B 
acpi-user-options=2", and then installing a patch.
I've tried to use these options but are unrecognized by Grub.

I've read here 
(http://billauer.co.il/blog/2011/03/pci-express-tlp-pcie-primer-tutorial-guide-1/)
 that the PCI Express technology is not exactly "old style" PCI but it somehow 
simulates it due to the presence of a sort of network switch in this new PCI 
technology.
Hence, I suspect that the header type 0xff might be coming from this network 
switch included in the PCI Express (here I'm going out on a limb as I have no 
clue what I'm talking about).

Finally here's the console output during boot with the -kv options:

...
...bunch of stuff
...
npe0 at root: space 0 offset 0
npe0 is /address@hidden,0
PCI Espress-device: pci10de, address@hidden, pci_pci0
pci_pci0 is /address@hidden,0/pci10de,address@hidden
npe1 at root: space 3b offset 0
npe1 is /address@hidden,0
WARNING: pci_lcap_locate: unexpected pci header type:ff

WARNING: pci_lcap_locate: unexpected pci header type:ff

Note how it stops at the 'npe1'. The 'npe' is the "PCI Express bus nexus 
driver". This page describes it better: 
http://www.unix.com/man-page/OpenSolaris/7d/npe/
Is the problem with GRUB or the Solaris kernel not recognizing the PCI npe?

Can anyone help please?

Thanks
Frank


reply via email to

[Prev in Thread] Current Thread [Next in Thread]