ioremap() function in x86 arch code does not seem to be setting _PAGE_PCD
bit in the PTE. How then does it give non-cached mapping to MMIO mappings
for memory on some interface card. I have gone thru some old threads on
this, which have concluded that it does give non-cached mappings, and
moerover ioremap seems to work fine whenever I have used to map any PCI
card memory,
Is it guaranteed thru the means of MTRR ?
Thanx,
tomar
-- You have moved the mouse. Windows must be restarted for the
changes to take effect.
Nagendra Singh Tomar wrote:
> ioremap() function in x86 arch code does not seem to be setting _PAGE_PCD
> bit in the PTE. How then does it give non-cached mapping to MMIO mappings
> for memory on some interface card. I have gone thru some old threads on
> this, which have concluded that it does give non-cached mappings, and
> moerover ioremap seems to work fine whenever I have used to map any PCI
> card memory,
> Is it guaranteed thru the means of MTRR ?
>
ioremap_nocache()
--
Brian Gerst
On Fri, 16 Apr 2004, Brian Gerst wrote:
> Nagendra Singh Tomar wrote:
> > ioremap() function in x86 arch code does not seem to be setting _PAGE_PCD
> > bit in the PTE. How then does it give non-cached mapping to MMIO mappings
> > for memory on some interface card. I have gone thru some old threads on
> > this, which have concluded that it does give non-cached mappings, and
> > moerover ioremap seems to work fine whenever I have used to map any PCI
> > card memory,
> > Is it guaranteed thru the means of MTRR ?
> >
>
> ioremap_nocache()
I'm aware of ioremap_nocache(), and the fact that it explicitly sets
_PAGE_PCD. My question originated after reading this posting by Alan
http://www.uwsg.iu.edu/hypermail/linux/kernel/0110.0/0878.html
in which he explicitly states that ioremap() gives uncached mapping. If
you follow the thread, there is a general consensus that ioremap and
ioremap_nocache are functionaly the same on x86 arch (and I suppose on
most archs)
Thanx,
tomar
>
> --
> Brian Gerst
>
--
-- You have moved the mouse. Windows must be restarted for the
changes to take effect.