PCI Configuration Registers

Post a reply

Confirmation code
Enter the code exactly as it appears. All letters are case insensitive.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:
BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON
Topic review
   

Expand view Topic review: PCI Configuration Registers

Re: PCI Configuration Registers

Post by Guest »

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

Re: PCI Configuration Registers

Post by 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.

Re: PCI Configuration Registers

Post by 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?

Re: PCI Configuration Registers

Post by 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?

Re: PCI Configuration Registers

Post by 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.

Re: PCI Configuration Registers

Post by Guest »

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

Re: PCI Configuration Registers

Post by support »

Hello,

I believe I answered that in a previous post:

viewtopic.php?f=2&t=134

Regards,
Eli

Re: PCI Configuration Registers

Post by Guest »

Hi,

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

Re: PCI Configuration Registers

Post by 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

PCI Configuration Registers

Post by 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?

Top