lkml.org 
[lkml]   [2005]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: NOMMU - How to reserve 1 MB in top of memory in a clean way
On Wed, 6 Apr 2005, Catalin Marinas wrote:

> Bas Vermeulen <bvermeul@blackstar.xs4all.nl> wrote:
>> 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 did this long time ago (on a 2.4 kernel), trying to avoid a hardware
> problem. I re-ordered the zones so that ZONE_DMA came after
> ZONE_NORMAL. Since the DMA memory was quite small (less than 1MB), I
> also put a "break" before "case ZONE_DMA" in the
> build_zonelists_node() functions to avoid the allocation fallback.
>
> --
> Catalin
>


1 Megabyte of DMA RAM should be available using conventional
means __get_dma_pages(GFP_KERNEL, 0x100) soon after boot.

Or just use mem= on the boot command line. This will tell
the kernel the extent of memory to use. Any RAM after that
is available. Your driver can access kernel variable, "num_physpages"
to find the last page it is supposed to use. Some kernel versions
actually touch the next page so, to be safe, your code can
use:
mem = (num_physpages * PAGE_SIZE) + PAGE_SIZE;
... for the first available free RAM.

Note that there may be PCI BARS allocated in this address-space if
you have 4 Gb of RAM. You need to be carefull.


Cheers,
Dick Johnson
Penguin : Linux version 2.6.11 on an i686 machine (5537.79 BogoMips).
Notice : All mail here is now cached for review by Dictator Bush.
98.36% of all statistics are fiction.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-04-06 16:57    [W:0.050 / U:0.624 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site