PCI Configuration Registers

Comments and questions related to the "Down to the TLP" pages

PCI Configuration Registers

Postby Isaac »

Here is a quote from http://wiki.osdev.org/PCI:

The PCI specification provides for totally software driven initialization and configuration of each device (or target) on the PCI Bus via a separate Configuration Address Space. All PCI devices, except host bus bridges, are required to provide 256 bytes of configuration registers for this purpose.

Does this mean in a USB flash drive for example, besides for the flash memory there are configuration registers?

If so, how are they divided? Are there 256 registers all 1 byte in size? Or maybe 128 registers all 2 bytes in size?
Isaac
 
Posts: 7
Joined:

Re: PCI Configuration Registers

Postby support »

Hello,

The USB device's registers (if any) are unrelated to the PCI bus' configuration registers. The term "host bus bridges" refers to a PCI element, not USB.

A USB hub can communicate with the host using a PCI/PCIe bus, but there's a complete distinction between the registers used to configure the USB hub as a PCI device and those possibly used to configure an endpoint on the USB bus.

To get an idea of the PCI registers, take a look on this:

http://en.wikipedia.org/wiki/PCI_configuration_space

Hope this clarified this issue.

Eli
support
 
Posts: 802
Joined:

Re: PCI Configuration Registers

Postby Guest »

Hi,

Thank you for replying. Can you please explain what PCI device functions are?
Guest
 

Re: PCI Configuration Registers

Postby support »

Hello,

I believe I answered that in a previous post:

viewtopic.php?f=2&t=134

Regards,
Eli
support
 
Posts: 802
Joined:

Re: PCI Configuration Registers

Postby Guest »

Is there a tutorial that explains the PCI bus from the ground up?
Guest
 

Re: PCI Configuration Registers

Postby support »

Well, I suppose you've already seen the "Down to the TLP" tutorial, so unfortunately I can't point at anything similar that I'm aware of.
support
 
Posts: 802
Joined:

Re: PCI Configuration Registers

Postby Guest »

What I need is something that will help me get the general picture. I have lot's of questions like:

When I write to programmed I/O what happens?

When I write to 0xCFC what happens?
Guest
 

Re: PCI Configuration Registers

Postby Guest »

By "what happens" I mean internally. When I write a value to a port does where is it stored? In the device which that port is mapped to? Does it travel through the PCI?
Guest
 

Re: PCI Configuration Registers

Postby Guest »

I understand now. All data written to addresses in the programmed I/O space is transferred through the PCI bus to the proper devices. This is also known as PCI I/O space.

All PCI devices except bridges have 256 bytes of configuration space. To read from this address space one can write the address he wants to read from to 0xCF8 and the data can be read from 0xCFC. To write to this address space one can write the address he wants to write to to 0xCF8 and the data to 0xCFC.
Guest
 

Re: PCI Configuration Registers

Postby Guest »

There's something I still don't understand. What is PCI memory used for? Please give an example.
Guest
 


Return to General PCIe