Forgot to mention one thing, the environment/machine has "intel_iommu=off". On Sat, Oct 2, 2021 at 9:36 AM Ajay Garg <ajaygargnsit@xxxxxxxxx> wrote: > > Thanks Keith. > > Let's take a x86 world as of now, and let's say the physical address > (returned by virt_to_phys()) is 0661a070. > The pci address (as stated) is e2c20000. > > > Since the BAR0-region is of size 256 bytes, so the system-agent (as > per x86-terminology) will monitor the highest 24 bits of > address-lines, to sense a MMIO read/write, and then forward the > transaction to the corresponding pci bridge/device. > > So, in the present case, would > > a) > The system-agent sense address-lines A31-A8 value as 0661a07? If yes, > is it the system-agent that does the translation from 0661a070 => > e2c20000, before finally forwarding the transaction to pci > bridge/device? > > b) > The system-agent sense address-lines A31-A8 value as e2c2000 (and > simply forwards the transaction to pci bridge/device)? If yes, > who/what does the translation from 0661a070 =? e2c20000? > > > Meanwhile, I am also trying to learn how to do kernel-development for > statically linked modules (like pci). > That would help in a much better understanding of the things-flow :P > > > Thanks for the help. > > > Thanks and Regards, > Ajay >