lkml.org 
[lkml]   [2004]   [Nov]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: mmap going to wrong physical address
mark slutz wrote:
> I am writting an application that needs control over large (1gig+)
> portions of contiguous memory. I am currently doing this by using
> mem=1024m during boot. My system is a dual opteron with 5 gig of
> memory. In my program I have
>
> if ((fd=open("/dev/mem", O_RDWR))<0)
> {
> perror("open");
> exit(-1);
> }
>
>
> PtrMemoryBase = (void *) mmap64(
> NULL,
> size,
> PROT_READ | PROT_WRITE,
> MAP_FILE | MAP_SHARED,
> fd,
> base );
>
> size = 1MB
>
> I also have -D_FILE_OFFSET_BITS=64.
>
> If base is between 1 and 3 gig the process works fine. When base is 4
> gig + the mmap64 works but the memory does not seem to be mapped to
> the base location. I write a pattern to PtrMemoryBase then have my
> hardware start doing DMA transfers from the base address but I do not
> get the data I wrote to PtrMemoryBase.
>
> Thanks for any help

I'm not sure it will help, but have you tried the MAP_FIXED option, and
is your address which doesn't work a multiple of the page size?

--
-bill davidsen (davidsen@tmr.com)
"The secret to procrastination is to put things off until the
last possible moment - but no longer" -me

-
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-03-22 14:07    [W:0.069 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site