Hello all,

I am right now working on a project which requires me to debug the PCI Bus interaction with linux kernel at the lowest possible level as linux kernel is not able to read the configuration information of the PCI bridge that is attached to my bus.

While debugging the problem to ascertain the cause of this problem, I started with pci_bus_read_config_##size macro available in drivers/pci/access.c file in the linux kernel. As I kept on digging to lower and lower levels, I finally reached pci_raw_ops structure which stores two function pointer for read and write operation.

I have two questions in this regard.

1) What is the actual function which gets associated with these pci_raw_ops call-back function pointers and are actually executed by the kernel for reading/writing from the pci board?

2) Is any timeout implemented in doing this read/write operation at the hardware? What I mean is, is there any specific time frame in which the hardware should respond to kernel with the requested read value?


Please help me out in this.
Thanks in advance.