Hi everyone. I had written a (hello-world) PCI-driver couple of years back, and was able to read/write from/to BARs. I might have a requirement of writing more drivers, so was revisiting the concepts. I have some queries (we can assume no IOMMU is in the picture) : 0. Assertion : During PCI-enumeration, the physical-memory assigned to a BAR is always contiguous. (Yes/No)? 1. During ioremap() of BAR-physical memory, does the (mapped) kernel-virtual-memory correspond to * one used in vmalloc(), wherein the kernel-virtual-address => physical-address goes through page-tables? * one used in kmalloc(), wherein the kernel-virtual-address => physical-address *in all likelihood* requires only adding an offset? 2. On a related front, how does ioremap() differ from kmap()? Will be grateful for your time. Thanks and Regards, Ajay