From: "Mike Fox" <mfox@annapmicro.com>
To: linux-ia64@vger.kernel.org
Subject: RE: [Linux-ia64] mmap crashes system after mapping PCI device into user space and reading and writin
Date: Wed, 09 Apr 2003 05:36:33 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590723705445@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590723705441@msgid-missing>
Ok I have some more info. The crash only happens after I do a write to my
PCI controller. I map the PCI controller into user space and I can read and
write a scratch register ok. I can also read other initialized registers to
confirm I am reading my PCI controller. I can do many reads, but after some
number of writes the system goes down. I went ahead and updated the kernel
to 2.4.20 with the latest patches. Any thoughts or a push in the right
direction are very much appreciated.
My mmap call in user space looks something like this:
pRegRegionMappedAddr = (DWORD*)mmap( 0,
WSII_REG_SPACE_SIZE_BYTES,
PROT_WRITE | PROT_READ,
MAP_SHARED,
DriverHandle,
0 );
In the driver I am basically doing this in my mmap entry point:
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
vma->vm_flags |= VM_IO;
/*
* this maps the physical memory to the user
*/
if (remap_page_range(vma->vm_start, offset, vma->vm_end-vma->vm_start,
vma->vm_page_prot))
{
return -EAGAIN;
}
Thanks,
Mike.
-----Original Message-----
From: linux-ia64-admin@linuxia64.org [mailto:linux-ia64-admin@linuxia64.org]
On Behalf Of Grant Grundler
Sent: Tuesday, April 08, 2003 8:43 PM
To: Mike Fox
Cc: linux-ia64@linuxia64.org
Subject: Re: [Linux-ia64] mmap crashes system after mapping PCI device into
user space and reading and writing.
On Tue, Apr 08, 2003 at 05:59:56PM -0400, Mike Fox wrote:
...
> Has anyone tried using mmap to remap PCI device memory into user space? I
> have seen the following problem: If I do the mmap, it returns
successfully,
> and I can indeed access the device memory. Unfortunately, the system will
> hang within about a minute after doing so.
...
David Mosberger passed on a very short program who's essence is:
mem = mmap (NULL, page_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
offset);
if (mem == MAP_FAILED)
{
perror ("memmap");
exit (-1);
}
This works on the HP ZX1 platforms with 2.4.20+patches kernel.
Be warned, it's *very* easy to crash a machine when using /dev/mem
and scribbling in misc parts of IO space. The symptom will typically
be an MCA (see "errdump MCA" output from EFI to get the xip).
grant
_______________________________________________
Linux-IA64 mailing list
Linux-IA64@linuxia64.org
http://lists.linuxia64.org/lists/listinfo/linux-ia64
next prev parent reply other threads:[~2003-04-09 5:36 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-08 21:59 [Linux-ia64] mmap crashes system after mapping PCI device into user space and reading and writing Mike Fox
2003-04-09 0:42 ` [Linux-ia64] mmap crashes system after mapping PCI device into user space and reading and writin Grant Grundler
2003-04-09 5:36 ` Mike Fox [this message]
2003-04-09 6:20 ` Grant Grundler
2003-04-09 8:57 ` [Linux-ia64] mmap crashes system after mapping PCI device into user Christian Hinkelbein
2003-04-09 17:33 ` [Linux-ia64] mmap crashes system after mapping PCI device into user space and reading and writin David Mosberger
2003-04-09 17:45 ` David Mosberger
2003-04-09 23:53 ` Mike Fox
2003-04-10 0:44 ` David Mosberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ia64-105590723705445@msgid-missing \
--to=mfox@annapmicro.com \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.