slram on mapped ram areas
dwalker at fifo99.com
dwalker at fifo99.com
Wed Oct 22 08:32:02 PDT 2014
On Mon, Oct 20, 2014 at 05:05:56PM -0700, Brian Norris wrote:
> On Thu, Oct 9, 2014 at 9:17 AM, <dwalker at fifo99.com> wrote:
> > Hi,
> >
> > It seems that slram was made for access parts of memory not used by the system,
> > or not mapped (right terminology?). I wanted to use it on memory which is mapped
> > or memory that can be used by the system. The problem I have is that the system I
> > work on places a filesystem image in memory someplace, and send the physical address
> > and size of the area as boot parameters. The memory where the images ends up is not
> > special memory.
>
> I honestly don't know much about the slram.c driver. I doubt it has
> many serious users these days.
Seems that way since both people I emailed have dead addresses.
> It also seems like you're really trying to use this driver in a way it
> was not designed. Do you really need to access specific kernel memory?
> Or do you just want a RAM-backed MTD? There are other drivers for this
> already (mtdram?).
It's not very different from how it's currently used. The only difference is the memory I want to use
could be used by the kernel at the time I want to use it.
I need to access a specific memory area, no random area will do. I looked at drivers/block/brd.c for example
it doesn't allow a specific area to be used.
> > I made the following changes to your driver (somewhat condensed),
> >
> > 1) Added memblock_reserve() on the memory region
> > 2) Added an insert_resource() call to the memory
> > 3) Altered the driver to not use ioremap, instead use __va() conditionally.
>
> I see this comment next to the __va() definition for ARM:
>
> /*
> * Drivers should NOT use these either.
> */
That's interesting, there must be an alternative.. I just need a way to convert the address from
physical to virtual.
Daniel
More information about the linux-mtd
mailing list