LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Understanding the output of lspci (https://www.linuxquestions.org/questions/linux-hardware-18/understanding-the-output-of-lspci-461291/)

kushalkoolwal 07-05-2006 04:06 PM

Understanding the output of lspci
 
Hi,

Can anyone help me to understand the output of the lspci command specificially with respect to the IDE controller information. I am trying to resolve a DMA related problem wtih my IDE controller and I need to find out about the status of a particular bit(enable/disable) in PCI configuration space for my IDE controller device. From the man pages of lspci
Code:

-xxx
    Show hexadecimal dump of the whole PCI configuration space. It is available only to root as several PCI devices crash when you try to read some parts of the config space (this behavior probably doesn't violate the PCI standard, but it's at least very stupid). However, such devices are rare, so you needn't worry much.

And here is the output of my lspci command for my IDE controller
Code:

0000:00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE Controller (rev 02) (prog-if 8a [Master SecP PriP])
        Subsystem: Intel Corporation 82801DB (ICH4) IDE Controller
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 0
        Interrupt: pin A routed to IRQ 11
        Region 0: I/O ports at <ignored>
        Region 1: I/O ports at <ignored>
        Region 2: I/O ports at <ignored>
        Region 3: I/O ports at <ignored>
        Region 4: I/O ports at dc00 [size=16]
        Region 5: Memory at 40000000 (32-bit, non-prefetchable) [size=1K]
00: 86 80 cb 24 07 00 80 02 02 8a 01 01 00 00 00 00
10: 01 ec 00 00 01 e8 00 00 01 e4 00 00 01 e0 00 00
20: 01 dc 00 00 00 00 00 40 00 00 00 00 86 80 cb 24
30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00
40: 07 a3 00 80 00 00 00 00 01 00 01 00 00 00 00 00
50: 00 00 00 00 11 14 00 00 00 00 00 00 00 00 00 00
60: 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 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: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00

Now what I am trying to find out is whether the IDE(dma) port(bit) is enabled or not in the PCI configuration space of the device and the above output is the hexadecimal dump of the PCI configuration space. How can I find out about that bit?

Thanks in advance. Any help will be highly appreciated.

leonscape 07-05-2006 08:11 PM

Theres an easier way try

hdparm /dev/hdX

This will return information about the disk attached, This is the output for my main disk

Code:

hdparm /dev/hda

/dev/hda:
 multcount    =  0 (off)
 IO_support  =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly    =  0 (off)
 readahead    = 256 (on)
 geometry    = 24792/255/63, sectors = 398297088, start = 0

you can also use hdparm to change these settings but be very careful, as its easy to screw up your system, if you don't know what your doing.

kushalkoolwal 07-05-2006 08:33 PM

Quote:

Originally Posted by leonscape
Theres an easier way try

hdparm /dev/hdX

This will return information about the disk attached, This is the output for my main disk

Code:

hdparm /dev/hda

/dev/hda:
 multcount    =  0 (off)
 IO_support  =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly    =  0 (off)
 readahead    = 256 (on)
 geometry    = 24792/255/63, sectors = 398297088, start = 0

you can also use hdparm to change these settings but be very careful, as its easy to screw up your system, if you don't know what your doing.

Well I have already done all that and hdparm does not allow be to enable the DMA (saying operation not permitted). My driver "AMDCS5536" loads fine but during the loading it gives the following message which indicated that I have to debug PCI configuration space.
Here is a part of dmesg related to the IDE controller driver:
Code:

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
AMD5536: IDE controller at PCI slot 0000:00:0f.2
AMD5536: chipset revision 1
AMD5536: not 100% native mode: will probe irqs later
AMD5536: 0000:00:0f.2 (rev 01) UDMA100 controller
AMD5536: neither IDE port enabled (BIOS)

The culprit is the line "AMD5536: neither IDE port enabled (BIOS)" and that; why I am tring to debug this issue.

Thanks....Any inputs?

leonscape 07-05-2006 08:50 PM

Some BIOSes for this chipset have a problem, so check the board manufacturer for a BIOS update.

kushalkoolwal 07-05-2006 11:35 PM

Quote:

Originally Posted by leonscape
Some BIOSes for this chipset have a problem, so check the board manufacturer for a BIOS update.

Hi Leonscape. Yes that;s what I have found that some BIOSes have issue with this. So I was wondering if there is any way if I can set some particular bit through the use of some software in Linux. Do you know any utility that allows to set the Registers of the PCI configuration space? Or some utility which allows us to interact with BIOS?

Thanks a lot once again.


All times are GMT -5. The time now is 10:39 PM.