[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-arm-kernel
Subject: ioremap non-contiguous phys to contiguous virt?
From: Marc Singer <elf () buici ! com>
Date: 2004-10-18 19:34:45
Message-ID: 20041018193444.GA17235 () buici ! com
[Download RAW message or body]
For the sake of the making it easy on the mtd drivers, I'd like to map
discontiguous physical memory to a contiguous virtual address space.
This hardware layout is an artifact of the design that allows a larger
flash device to be used in later implementations.
I think that my options are
1) ignore the problem and create a custom maps driver with NO_XIP set.
2) create a custom maps driver, but use the io_table_init mechanism
to map the memory contiguously (eeww)
3) find a clever method to do something like this
struct memvec mv = { { PHYS0, LEN0 }, {PHYS1, LEN1 } };
void* virt = ioremapv (memvec, 2);
I can see from the ioremap code that this would be simple to
implement. The questions are these: is there a better way?, is this a
bad idea?
There is a simple reason why this is desirable. The jffs2 driver uses
a feature of the MTD driver that grants it access to the flash memory
array using a simple pointer. Using option 1) above, I can circumvent
the issue by telling MTD that the flash cannot be use for XIP and is,
therefore, not linearly mapped.
Cheers.
-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ: http://www.arm.linux.org.uk/armlinux/mlfaq.php
Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic