pci_iomap() and pci_ioremap_bar()
jayeshece08 at gmail.com
Thu Jun 27 04:26:36 EDT 2013
AFAIK, pci_ioremap_bar api provides an error-proof way (relative to
pci_ioremap) for PCI memory remap.
After the mapping is successful, in case you are writing a portable code,
use ioread8 api which provides platform abstraction to the re mapped
Hope that helps.
On Wed, Jun 26, 2013 at 12:42 PM, Warlich, Christof <
christof.warlich at siemens.com> wrote:
> can anyone explain when I should use
> void __iomem *regs = pci_iomap(device, barNumber, 0);
> and when
> void __iomem *regs = pci_ioremap_bar(device, barNumber);
> is more appropriate to map PCI memory?
> Furthermore, after the mapping succeeded, when may I
> directly access the mapped memory, e.g.:
> char firstByte = *regs;
> and when should I better use ioread8() instead?:
> char firstBype = ioread8(regs);
> All listed alternatives from above seems to work equally
> well for me (on x86), so I'm curious to learn what might
> be the difference. A guess: Does ioread8() work for both
> memory mapped _and_ IO mapped registers, while the direct
> access only works for the memory mapped case?
> Thanks for any clarification.
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Kernelnewbies