Hi David,

David McCullough schrieb:
bootmem perhaps ?  I can't recall exactly but I think you have added a zone
without adding or freeing  the pages appropriately.

Exactly. It seems that the 16 MB DMA zone is reservered correctly but the kernel doesn't recognize this memory to be "free". How can I free the pages appropriately?

If I am reading what you have done correctly,  you now have two areas of
RAM,  a 16MB DMA area and a 16MB?? area for normal use.

Well, I have a 16 MB DMA zone and a 48 MB normal zone which gives 64 MB RAM in total.

You have to remember that on a PC,  the DMA memory is still normal
memory,  it is just marked as preferred for DMA.

I plan to have a DMA zone from 0x0 to 0x00FFFFFF (16 MB). The kernel loads to 0x01000000 which is the first address after DMA zone. Then I want to declare the zone from 0x0 to 0x00FFFFFF as non-cacheable in my cache configuration. Right now the kernel boots from 0x0 and everything is working fine. But all the kernel datastructures as well as the code are placed in the 16 MB DMA zone which is declared as non-cacheable (at least for data). This results in a significant performance loss. I want to move all kernel code and datastructures which get allocated from the normal zone to the memory area starting from 0x01000000. I have the feeling that I am missing something fundamental. :-) Sorry, if this is already offtopic on this list...think it rather belongs to a linux kernel specific list.

Have a look at some other arch setups that use a DMA memory zone and see
if you can spot it,

Well, I had a look at blackfin architecture but they use their own page allocator for the DMA zone which is just a simple "self-made" list. Isn't there any support from linux side?

With best regards,
Markus
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to