From: Marc Leeman <marc.leeman@barco.com>
To: linuxppc-dev@lists.linuxppc.org
Subject: Re: PCI Memory mapping
Date: Tue, 23 Mar 2004 12:17:36 +0100 [thread overview]
Message-ID: <20040323111736.GJ1446@smtp.barco.com> (raw)
In-Reply-To: <20040322074833.GY7133@smtp.barco.com>
> +------+ +--------+ +------------+
> | user |------>| kernel |---->| pci-mapped |
> +------+ +--------+ +------------+
Hm, I'm not quite out of the woods yet it seems :-/
The system contains (amongst other components) a MPC8245 PPC and a
TMS320C6415 DSP. The PPC handles incoming data and passes it along to
the DSP. Partially due to a problem on the DSP, we want the DMA to be
initiated by the DSP.
As such, we prepare a kernel buffer:
if(!(driver_data.device[i]->kern_addr= \
pci_alloc_consistent(driver_data.dev,PCI_TRANSFER_SIZE,\
&(driver_data.device[i]->bus_addr)))){...}
that links/maps it on the PCI memory range. This dma_t (bus address) is
passed to the DSP. The DSP then reads the data over the PCI buss and
acknowledges this to the (currently polling) PPC.
The PPC prepares the data, and calls an ioctl that copies part of the
user buffer into kernel space (driver_data.device[i]->kern_addr);
following this, the DSP is warned that new data is available.
ioctl(...,MAP_CONSISTENT,...);
while(ptr<end){
movebuftokernel(ptr,size); /* ioctl */
ptr+=size;
}
ioctl(...,MAPOFF_CONSISTENT,...);
This process is repeated until the entire userspace buffer has been
processed.
Even though documentation indicates that consistent DMA mapping should
not have caching issues we have a problem that reflects this very much:
When data is passed to the DSP and every buffer is confirmed with an
[Enter] (i.e. __very__ slow_), data is passed correctly. When we try to
pass the same data without user intervention (comment out
waitforenter()),
parts of the transferred data are copied from other locations: most of
the time, part of the buffer (e.g. 2048 bytes) is not update yet (old
data).
e.g.
8 * 32 bit: correct
96 * 32 bit: wrong
... rest is OK.
Any ideas what might go wrong since consistent mappings 'should' not
have problems with caching...
--
Marc Leeman Hardware R&D Engineer
Barco Controlrooms Division Noordlaan 5, B-8520 Kuurne (BE)
Tel. +32 56 368 428 http://www.barcocontrolrooms.com=20
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
next prev parent reply other threads:[~2004-03-23 11:17 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-16 11:40 PCI Memory mapping Marc Leeman
2004-03-16 16:39 ` Jeff Angielski
2004-03-22 7:48 ` Marc Leeman
2004-03-22 11:02 ` Marc Leeman
2004-03-23 11:17 ` Marc Leeman [this message]
2004-03-23 16:01 ` Marc Leeman
2004-03-24 2:04 ` Michael R. Zucca
2004-03-24 0:04 ` Benjamin Herrenschmidt
2004-03-24 12:26 ` Marc Leeman
2004-03-24 14:25 ` Marc Leeman
2004-03-24 17:08 ` linas
2004-03-25 15:48 ` Marc Leeman
2004-03-25 16:34 ` linas
2004-03-25 16:45 ` linas
2004-03-26 8:00 ` Marc Leeman
2004-03-30 19:49 ` Jeff Angielski
2004-03-31 15:56 ` Marc Leeman
2004-03-31 16:02 ` Marc Leeman
2004-04-01 12:33 ` Marc Leeman
2004-04-04 22:53 ` Benjamin Herrenschmidt
2004-04-05 8:46 ` Adrian Cox
[not found] ` <20040402140130.GG22365@smtp.barco.com>
[not found] ` <1081175362.20952.30.camel@localhost.localdomain>
2004-04-06 6:21 ` Marc Leeman
-- strict thread matches above, loose matches on Subject: below --
2004-04-07 7:15 Marc Leeman
2011-04-15 5:44 koteswararaom
2011-04-15 6:32 ` David Hawkins
2011-04-15 6:48 ` Michael Neuling
2025-04-07 14:55 PCI memory mapping Renaud Barbier
2025-04-08 9:54 ` Lucas Stach
2025-04-09 10:00 ` Renaud Barbier
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=20040323111736.GJ1446@smtp.barco.com \
--to=marc.leeman@barco.com \
--cc=linuxppc-dev@lists.linuxppc.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.