Hi Prasant, On Wed, Jun 1, 2011 at 10:38 AM, Prashant Shah <pshah.mumbai@gmail.com> wrote:
Hi,
On Wed, Jun 1, 2011 at 12:04 PM, sandeep kumar <coolsandyforyou@gmail.com> wrote:
Hi,
ioremap() : 2) ioremap does mapping of a particular i/o device to kernel logical memory address. Please correct me if I am wrong.
I think this function will remap the I/O registers location to a memory location, so instead of using inb/outb you can use the memory based functions like readb/writeb.
eg : lets say I want to read from I/O port 0x80. I will have to use the inb() function. Now if I ioremap() it to a memory location it I can use the readb() instead.
I'm pretty sure thats not the case (I'm not that familiar with the x86 I/O space on modern processors). I think that if you need to use in/out instructions then you need to do that and there is no way of mapping this into memory space. ioremap is primarily used with memory-mapped peripherals (very common on most non-x86 architectures). If basically maps a chunk of physical memory into a virtual space. If that physical memory happens to conincide with device registers, then that will allow the driver to manipulate those registers. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com