Hello I'm new to PCI programming, so I may not be asking this question in the most appropriate terms. I have a system where I can do a lspci -vb and get the following result for a 9030 pci bridge device: 01:10.0 Bridge: PLX Technology, Inc.: Unknown device 9030 (rev 0a) Flags: medium devsel, IRQ 11 I/O ports at 0100 Memory at 5fff0000 (32-bit, non-prefetchable) Memory at fffe0000 (32-bit, non-prefetchable) Memory at 80000000 (32-bit, non-prefetchable) Memory at 000c0000 (32-bit, non-prefetchable) Capabilities: [40] Power Management version 1 Capabilities: [48] #06 [0080] Capabilities: [4c] Vital Product Data So in my driver (not the 9030 driver) I have a struct pci_dev pointer which corresponds to the above device and I did a printk of the second (resource[1].start) start address. I was surprised when it did not print 0x5FFF0000. What's the deal? If the printout from lspci lists the resources in that order why doesn't the pci device struct put them in that order? It would seem to me that BAR0 would correspond to both the first region printed out by lspci and the data structure resouce 0. For example: Register: lspci output pci_dev.resource[i] ------------------------------------------------------------------- BAR0 first region i=0 BAR1 second region i=1 BAR2 third region i=2 BAR3 fourth region i=3 BAR4 fifth region i=4 BAR5 sixth region i=5 However this doesn't seem to be the case. Please explain. JD -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/