Bug 428758 - lspci does not display extended configuration registers
lspci does not display extended configuration registers
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
8
ia64 Linux
low Severity low
: ---
: ---
Assigned To: Kernel Maintainer List
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2008-01-14 18:28 EST by Geoff Smith
Modified: 2008-03-13 17:25 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-03-13 12:13:04 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Geoff Smith 2008-01-14 18:28:06 EST
Description of problem:

      lspci does not display extended configuration registers

      lspci -vvxxxx is supposed to display extended configuration registers
      for PCI-Express devices that have them -- i.e., configuration 
      information past the first 64 bytes.

      On our machine, "lspci -s 02:00.0 -vvxxxx" displays only the standard
      PCI configuration registers, but not the extended ones.  This is when 
      using Fedora 8 -- Fedora 6 works just fine.

      The machine uses the Intel E7520 MCH as its chipset.


Version-Release number of selected component (if applicable):

      2.2.6 (output of "lspci --version")

      (Older version, which works, is 2.2.3)

How reproducible:

      Every time

Steps to Reproduce:

1.    lspci -s 02:00.0 -vvxxxx

Actual results:

00:02.0 PCI bridge: Intel Corporation E7525/E7520/E7320 PCI Express Port A (rev 
0c) (prog-if 00 [Normal decode])
	Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR-
	Latency: 0, Cache Line Size: 64 bytes

etc. etc.

c0: 00 00 00 00 30 00 0c 00 01 00 08 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 82 20 05 00 00 00 00 00 00 00 00 00 00 00 00 00


Expected results:

      Same thing, but showing offsets from 100 in addition.

Additional info:


      Any suggestions for diagnosing this would be welcome.
Comment 1 Harald Hoyer 2008-02-22 04:09:24 EST
lspci reads from sysfs and sysfs only seems to provide the first 256 bytes.
So, this can be a kernel bug.

$ sudo strace -e pread /sbin/lspci  -s 00:1c.4 -xxxx 
pread(3,
"\206\200\340\'\7\5\20\0\1\0\4\6\20\0\201\0\0\0\0\0\0\0\0\0\0\3\3\0\360\0\0
"..., 64, 0) = 64
00:1c.4 PCI bridge: Intel Corporation 82801GR/GH/GHM (ICH7 Family) PCI Express
Port 5 (rev 01)
pread(3,
"\20\200A\1\300\17\0\0\17\0\20\0\21$\21\5@\0\1\20`\5\10\0\0\0\0\0\0\0\0\0"...,
192, 64) = 192
pread(3, "", 3840, 256)                 = 0

as you can see... 
pread(3, "", 3840, 256)                 = 0


# hexdump -C /sys/bus/pci/devices/0000\:00\:1c.4/config 
00000000  86 80 e0 27 07 05 10 00  01 00 04 06 10 00 81 00  |...'............|
00000010  00 00 00 00 00 00 00 00  00 03 03 00 f0 00 00 20  |............... |
00000020  f0 ff 00 00 f1 ff 01 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 40 00 00 00  00 00 00 00 0b 01 02 00  |....@...........|
00000040  10 80 41 01 c0 0f 00 00  0f 00 10 00 11 24 11 05  |..A..........$..|
00000050  40 00 01 10 60 05 08 00  00 00 00 00 00 00 00 00  |@...`...........|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000080  05 90 01 00 0c f0 e0 fe  69 41 00 00 00 00 00 00  |........iA......|
00000090  0d a0 00 00 28 10 de 01  00 00 00 00 00 00 00 00  |....(...........|
000000a0  01 00 02 c8 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000000d0  00 00 00 00 00 00 00 00  00 00 11 00 00 00 00 00  |................|
000000e0  00 00 c7 00 06 07 08 00  00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00  86 0f 01 00 00 00 00 00  |................|
00000100


Comment 2 Chuck Ebbert 2008-02-25 13:31:09 EST
MMCONFIG is disabled unless you boot with the kernel option "pci=mmconf". I can
see data all the way up to offset 0xfff on PCIE devices when I boot with that
option...
Comment 3 Chuck Ebbert 2008-03-10 19:15:50 EDT
NOTABUG ??
Comment 4 Geoff Smith 2008-03-13 17:25:03 EDT
This works for me, too.  Thanks!

Note You need to log in before you can comment on or make changes to this bug.