NOMMU - How to reserve 1 MB in top of memory in a clean way

From: Bas Vermeulen
Date: Wed Apr 06 2005 - 04:51:58 EST


Hey all,

I am currently working on the bfinnommu linux port for the BlackFin 533.
I need to grab the top 1 MB of memory so I can give it out to drivers
that need non-cached memory for DMA operations.

I've tried the following approaches (which each failed, in different
ways):

1. Allocate 1 MB in ZONE_DMA. This doesn't work because ZONE_DMA needs
to be in the bottom of memory (and I couldn't find a way around that),
and needs to be a minimum of 4 MB.
2. Create ZONE_NORMAL with all memory in it, but add a hole of 1 MB.
This crashes in the swapper somewhere.

What I want is a way to cleanly grab all pages in the top megabyte of
memory, so I can give them out in an implementation (to be written) of
dma_alloc_coherent and friends. That top megabyte would be set to
non-cached in the software cache manager.

If anyone can point me in the right direction, that would be great.

Regards,

Bas Vermeulen

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/