Dear uClinux Developers,
I am not sure if this is already offtopic here.
As per my knowledge the ZONE_DMA memory zone is a 16-Mbyte's memory
area within 0x0 - 0x00ffffff which should be used for any allocation
which needs to be used in DMA transfers. This zone actually is a
result of legacy ISA devices which can do DMA transfers only from the
lower 16 Mbyte's of memory.
I wonder whether it might be possible to shift this memory zone to
some different location, like at the end of memory? I know that the
size of the zone can be modified via linux/arch/<myarch>/mm/init.c and
the zones array. But how about the positioning of this zone?
I know that something like this was done in the blackfin architecture
which is only present in the standard linux tree. But they handle all
memory allocations by their own simple memory allocator which doesn't
look really performant. (see arch/blackfin/kernel/dma-mapping.c @
function __alloc_dma_pages for reference)
Concretely spoken I am dealing with m68knommu/coldfire architecture. I
want to move the DMA zone to a different location because Coldfire
MCF548x, respectively its cache doesn't support bus snooping. So I
simply want to reserve a zone of, let's say, 8 MByte at the end of my
main memory for all DMA allocations. Once this is done I want to
exclude this memory area from caching mechanisms.ยด
Another solution:
Would it be better to move the linux kernel to a different location in
memory (e.g. @ 0x01000000) and keep the ZONE_DMA zone @ 0x0 -
0x00ffffff?
With best regards,
Markus Franke
_______________________________________________
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