[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Thu, 13 Dec 2007 10:45:02 +1100
From: Aras Vaichas <arasv@...tech.com.au>
To: linux-kernel@...r.kernel.org
Subject: mmaping an IO port device
Hi,
Can I implement mmap with an io port connected device on an x86 based CPU?
Background:
I've got a device driver which can be compiled for either x86 or ARM.
The driver provides an interface to an FPGA via either an IO port
(0x180) on the x86 or as a memory mapped SRAM-like device (0x30000000)
on the ARM.
To get myself an "address" for ioread calls I use:
FPGA_base = (u32) ioremap_nocache(FPGA_REG_IO_BASE, SZ_4K) for both CPU
types.
FPGA_REG_IO_BASE is set to either 0x180 or 0x30000000 for x86 and ARM
respectively.
I then call ioread16(FPGA_base + FPGA_register) for both x86 and ARM and
it all works perfectly. No problems there.
My problem is that I am now moving from ioctl calls to a mmap interface.
This isn't a problem with ARM as I can pass (0x30000000 >> PAGE_SHIFT)
to remap_pfn_range() in the .mmap fops function but I can't pass 0x180
because ... well, it's obvious.
Is there a trick?
Aras
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists