linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Has anyone made the 8240 do burst reads from PCI memory?
@ 2003-06-10  6:57 Callebaut Benoit
  0 siblings, 0 replies; 4+ messages in thread
From: Callebaut Benoit @ 2003-06-10  6:57 UTC (permalink / raw)
  To: linuxppc-embedded mailing list


I Ron

>So I was just wondering if anyone has actually gotten an 8240 to access PCI
>memory with multiple beat, memory read cmds.?

The response is yes, We do PCI memory burst write but we had to implements DMA
transfer on the PPC to do this. At low level, this implementation is very
easy, you must just enable the PCI bus snooping bit to avoid "strange" memory
content problem due to the cache.

Per default the PPC will try to send a full DWORD (CBEN[0..3] = 0X0) with one
PCI clock by DWORD.
Such a transfer is 5 time faster than without burst.

Note that you must use physical addresses with the DMA controller. This mean
that you must do the reverse than do ioremap to retreive it. And beware with
virt_to_phys or phys_to_bus, I am not sure that it work with PCI addresses.
I wrote this code, so if you want it, please ask.

Good Luck,
Benoit Callebaut

------------------------------------------------------------------------------
----
Benoit Callebaut
Software Development Engineer
Barco | Control Rooms
Noordlaan 5, 8520 Kuurne, Belgium

Tel 	+32(0)56 36 84 28
Fax 	+32(0)56 36 86 05

mailto:benoit.callebaut@barco.com
http://www.barcocontrolrooms.com


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread
* Has anyone made the 8240 do burst reads from PCI memory?
@ 2003-06-06 19:50 Ron Bianco
  2003-06-09 20:35 ` Jochen Roth
  0 siblings, 1 reply; 4+ messages in thread
From: Ron Bianco @ 2003-06-06 19:50 UTC (permalink / raw)
  To: linuxppc-embedded


Hello,

We have a custom 8240 board running a linux 2.2.x kernel variant with some dual
port SRAM mapped into PCI memory space using a custom CPLD.  We use a modified
version of the sandpoint setup in the ppc linux kernel initialization code.

In the ISR of a custom device driver we read and write to the PCI mem
successfully.

FYI, although not a PCI expert, I'm trying to determine if we need to upgrade
our CPLD code in order to successfully support memory read cycles with more than
one data phase.

Even with sequential reads in groups of 8 words, ( or writes for that matter )
we are unable to get the 8240 to do other than single (beat) word read PCI
cycles.  One 'strange' thing in particular is that the 8240 as PCI initiator is
keeping !FRAME asserted only very briefly.
It also de-asserts !IRDY very soon after the first data phase completes.  It may
be that the 8240 is just indicating a wait and we need to handle that better.

Anyway, according to the 8240 user's manual it supports burst ordering of the
linear incrementing type for memory accesses when the 2 low order bits of the
address are 0, as we are doing.

So I was just wondering if anyone has actually gotten an 8240 to access PCI
memory with multiple beat, memory read cmds.?

regards, Ron


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-06-10  6:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-10  6:57 Has anyone made the 8240 do burst reads from PCI memory? Callebaut Benoit
  -- strict thread matches above, loose matches on Subject: below --
2003-06-06 19:50 Ron Bianco
2003-06-09 20:35 ` Jochen Roth
2003-06-09 22:53   ` Ron Bianco

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).