2003-01-16 04:15:09

by Madhavi

[permalink] [raw]
Subject: ioremap_nocache() behavior


Hi

I am testing the Device driver for a PCI network device on linux-2.4.19
and x86 platform.

I have noticed that the system hangs when I do a writel to a PCI MMIO
region. I tried ioremap_nocache() instead of ioremap() and the behavior
was unpredictable. It hung in a few cases and didn't hang in others. If I
did ioremap_nocache() just before calling writel(), writel seems to work
fine. I have checked the Base address in PCI configuration space using
"lspci -x" command and the driver is getting the correct values.

Any guesses why I am getting this problem? It would be very helpful for me
even if you can give a very vague idea.

One more question - How do I unmap the memory remapped using
ioremap_nocache()?

Thanks in advance.

Madhavi.