2004-04-16 05:08:02

by Nagendra Singh Tomar

[permalink] [raw]
Subject: How does ioremap() get non-cached mappings

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.


2004-04-16 05:32:11

by Brian Gerst

[permalink] [raw]
Subject: Re: How does ioremap() get non-cached mappings

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

2004-04-16 05:40:37

by Nagendra Singh Tomar

[permalink] [raw]
Subject: Re: How does ioremap() get non-cached mappings

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.