About mpc85xx flash memory allocation

Mitsutaka Amano mitsutaka.amano at gmail.com
Tue Jan 25 13:17:31 EST 2011

On Tue, Jan 25, 2011 at 11:05 AM, tiejun.chen <tiejun.chen at windriver.com> wrote:
> Mitsutaka Amano wrote:
>> On Mon, Jan 24, 2011 at 3:48 PM, tiejun.chen <tiejun.chen at windriver.com> wrote:
>>> Mitsutaka Amano wrote:
>>>> Hi all,
>>>> I'm testing the ppc platform is based on mpc85xx. 256MB Flash memory
>>>> has been installed. Then I found this entries.
>>>> /proc/vmallocinfo
>>>> ~~~
>>>> 0xc9100000-0xd9101000 268439552 of_flash_probe+0x290/0x814 ioremap
>>>> physmap_of allocated 268MB over to the vmalloc. vmalloc space is tight.
>>>> Why does we need mpc platforms to flash memory allocation? I know
>>> This should not be dedicated to so-called mpc platform. And we always use
>>> ioremap() to map the device space. And on PPC ioremap also use the same space as
>>> vmalloc(). While bootstrap you also can see this associated message like the
>>> follows,
>>> ------
>>> ......
>>>  * 0xd1000000..0xffbe9000  : vmalloc & ioremap
>> Yeah. My platform says the follow message.
>>   * 0xc9000000..0xdf000000  : vmalloc & ioremap
> Any reason why you don't access > 0xdf000000?

Higher than 0xdf000000 has to map TLB for using other peripherals.
it's 400MB over.

>> The default vmalloc & ioremap space was about 200MB. so I increased
>> that by decreasing lowmem.
>> But If possible, I hope to keep default maps. So I don't want to use
>> vmalloc & ioremap
>>>> other architectures don't allocate to the vmalloc.
>>>> The design of the hardware? or Is there the way to use the flash
>>> You can open /dev/mem then mmap() with a appropriate offset to access the device
>>> space including flash.
>> I use the device tree(dts) and define flash partitions. Also I use CFI
>> driver and CFI_PHYSMAP_OF for device tree.
>> Is there the reference driver in what uses mmap() kernel tree? I think
>> I have to write a driver what can support dts and mmap() with a
>> appropriate offset to access the device.
> You should not write anything again. And you can access any physical address
> directly via /dev/mem from the user space like the following:
> fd = open(/dev/mem,);
> mmap(fd + offset);

Thanks for letting me know. I want to use in combination with device
tree. So I'll write a driver based on physmap_of.c(such as mmap_of.c)


> Tiejun
>> Thanks,
>> Mitsutaka
>>> Tiejun
>>>> memory without vmalloc?
>>>> Thanks,
>>>> Mitsutaka

More information about the Linuxppc-dev mailing list