All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Steven A. Falco" <sfalco@domain.hid>
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] [Xenomai -help] User space access to DMA memory
Date: Wed, 05 Jan 2011 17:07:14 -0500	[thread overview]
Message-ID: <4D24EB92.3050104@domain.hid> (raw)
In-Reply-To: <4D24E3AC.2000904@domain.hid>

On 01/05/2011 04:33 PM, Gilles Chanteperdrix wrote:
> Herrera-Bendezu, Luis wrote:
>> Gilles:
>>
>>> Herrera-Bendezu, Luis wrote:
>>>> Hello:
>>>>
>>>> I have the following setup:
>>>> PPC405EX
>>>> Linux 2.6.30.3
>>>> Xenomai 2.4.10
>>>> I-pipe 2.7-02
>>>> ppc_4xx-gcc (GCC) 4.2.2
>>>> Configuration file is attached
>>> Do you have the same issue with the latest version of the I-pipe patch
>>> for this same version of the Linux kernel? It should be 2.8-00.
>>
>> Tried I-pipe 2.8-00 which needs Linux 2.6.32.
> 
> Sorry, I misread the ftp list, I was rather thinking about:
> http://download.gna.org/adeos/patches/v2.6/powerpc/older/adeos-ipipe-2.6.30.3-powerpc-DENX-2.7-06.patch
> 
> 
>  It resulted on same problem
>> as reported with Linux 2.6.30.3 I-pipe 2.7-02.
>>
>> Was there any particular set of changes that you expected it could fix the
>> problem? Do you think more recent versions may work? If yes, which version
>> could be tried?
> 
> Yes, there was a fix, specifially in the powerpc tree, with mappings
> issue. But I think it is older than 2.6.32.
> 
> Now that I look at your message again, your problem seems more likely to
> be in your code. Specifically, you say: "bus address returned by
> pci_alloc_consistent()". I do not think pci_alloc_consistent return
> value is a bus address. The dma_handle returned by pointer probably is.
> But I am not sure you are supposed to know this.

pci_alloc_consistent() returns two values.  The kernel address is
returned directly (as a void *), and the bus address is returned
through the dma_handle pointer (third function argument).

Luis' original email indicated that he tried rtdm_mmap_to_user()
on the kernel address, and he tried rtdm_iomap_to_user() on the
bus address. Either way caused the crash he reported.

We have a home-grown program (mm) that basically opens /dev/mem
and allows peek/poke.  Using that with the bus address works to
access the memory.  We also pass that address to our hardware,
and it correctly DMAs the data.  So we believe the bus address
is correct.

I believe Luis has also tried a third approach - allocating with
kzalloc(size, GFP_DMA), and using rtdm_mmap_to_user() on the
resulting pointer.  That works, but getting the bus address is
a bit ugly - basically page_to_phys(virt_to_page()) of the pointer.

So there is something different about the way pci_alloc_consistent()
allocates memory as compared to kzalloc(GFP_DMA).  kzalloc(GFP_DMA)
works with rtdm_mmap_to_user() but pci_alloc_consistent() does
not.

	Steve

> 
> Please post your code (or a minimal, standalone version of it which
> demonstrates the problem).
> 


-- 
A: Because it makes the logic of the discussion difficult to follow.
Q: Why shouldn't I top post?
A: No.
Q: Should I top post?


  reply	other threads:[~2011-01-05 22:07 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-20 16:52 [Xenomai-help] [Xenomai -help] User space access to DMA memory Herrera-Bendezu, Luis
2011-01-01 22:44 ` Gilles Chanteperdrix
2011-01-05 21:03   ` Herrera-Bendezu, Luis
2011-01-05 21:33     ` Gilles Chanteperdrix
2011-01-05 22:07       ` Steven A. Falco [this message]
2011-01-05 22:29         ` Gilles Chanteperdrix
2011-01-06 13:48           ` Herrera-Bendezu, Luis
2011-01-06 13:55             ` Gilles Chanteperdrix
2011-01-11 23:27               ` Gilles Chanteperdrix
2011-01-12 13:14                 ` Herrera-Bendezu, Luis
2011-01-12 13:35                   ` Gilles Chanteperdrix
2011-01-12 16:03                     ` Herrera-Bendezu, Luis
2011-01-12 16:26                       ` Gilles Chanteperdrix
2011-01-12 18:16                         ` Herrera-Bendezu, Luis
2011-01-12 20:20                           ` Gilles Chanteperdrix
2011-01-12 20:36                           ` Gilles Chanteperdrix
2011-01-12 21:57                             ` Herrera-Bendezu, Luis
2011-01-12 22:11                               ` Philippe Gerum
2011-01-12 22:14                                 ` Gilles Chanteperdrix
2011-01-12 22:18                                   ` Gilles Chanteperdrix
2011-01-12 22:45                                     ` Gilles Chanteperdrix
2011-01-13  8:27                                   ` Philippe Gerum
2011-01-13  8:33                                     ` Gilles Chanteperdrix
2011-01-12 22:15                               ` Gilles Chanteperdrix
2011-01-06 14:32           ` Steven A. Falco
2011-01-06 14:44             ` Gilles Chanteperdrix
2011-01-06 14:45             ` Steven A. Falco

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=4D24EB92.3050104@domain.hid \
    --to=sfalco@domain.hid \
    --cc=gilles.chanteperdrix@xenomai.org \
    --cc=xenomai@xenomai.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.