On Mar 14, 2008, at 10:08 PM, nathan binkert wrote:

   I was under the impression that there was some device which would
field requests for PCI since they don't necessarily have fixed addresses
to listen on. It would listen to everything and then send the right
accesses to the right places. That might be a misinterpretation on my part.
No.  There are registers in the PCI config space called BARs.  Those
registers are read by the operating system to query the device about
how many, what type, and how big are the address ranges (there are 6).
The operating system is then expected to take this data and allocate
physical memory and write the BARs with the addresses of the physical
memory chunks.  That's why the PCI config space is in a fixed place,
but the rest of PCI memory is not.   The default responder on a bus is
so that the bus can be probed.  ISA for example doesn't have a config
space, so you just have to go search for the device.  PCI has a
default responder according to the spec, but I don't know that it's
really used.  Ali would know more about this.
The spec simply says that all un-used pci device ids should return -1 on reads. The default responder exists to handle that. If a device is present, it responds, however if the kernel is checking some bus/ device/function id and no device is there something has to respond to that request and that is what he default responder does in our case.

Ali

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to