Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Jan 2001 17:35:37 -0800
From:      Jeff Roberson <jeff@midstream.com>
To:        "'freebsd-current@freebsd.org'" <freebsd-current@freebsd.org>
Subject:   Broken mmap in current?
Message-ID:  <31E4B6337A4FD411BD45000102472E0C05E729@EMAIL_SERVER>

index | next in thread | raw e-mail

[-- Attachment #1 --]
I have written a character device driver for a proprietary PCI device that
has a large sum of mapable memory.  The character device supports mmap()
which I use to export the memory into a user process.  I have no problems
accessing the memory on this device, but I notice that my mmap routine is
called for every access!  Is this a problem with current, or a problem with
my mmap?

I use bus_alloc_resource and then rman_get_start to get the physical address
in my attach, and then the mmap just returns atop(physical address).  I
assumed this is correct since I have verified with a logical analyzer that I
am indeed writing to the memory on the device.  Also, I noticed that the
device's mmap interface does not provide any way to limit the size of the
block being mapped?  Can I specify the length of the region?

Thanks,
Jeff

[-- Attachment #2 --]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2650.12">
<TITLE>Broken mmap in current?</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>I have written a character device driver for a proprietary PCI device that has a large sum of mapable memory.&nbsp; The character device supports mmap() which I use to export the memory into a user process.&nbsp; I have no problems accessing the memory on this device, but I notice that my mmap routine is called for every access!&nbsp; Is this a problem with current, or a problem with my mmap?</FONT></P>

<P><FONT SIZE=2>I use bus_alloc_resource and then rman_get_start to get the physical address in my attach, and then the mmap just returns atop(physical address).&nbsp; I assumed this is correct since I have verified with a logical analyzer that I am indeed writing to the memory on the device.&nbsp; Also, I noticed that the device's mmap interface does not provide any way to limit the size of the block being mapped?&nbsp; Can I specify the length of the region?</FONT></P>

<P><FONT SIZE=2>Thanks,</FONT>
<BR><FONT SIZE=2>Jeff</FONT>
</P>

</BODY>
</HTML>
home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?31E4B6337A4FD411BD45000102472E0C05E729>