[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <D7CCA83BB0796C49BC0BB53B6AB1208928CABC@zch01exm21.fsl.freescale.net>
Date: Tue, 28 Apr 2009 09:48:58 +0800
From: "Liu Dave-R63238" <DaveLiu@...escale.com>
To: "David Hawkins" <dwh@...o.caltech.edu>,
"Tabi Timur-B04825" <timur@...escale.com>
Cc: "Ira Snyder" <iws@...o.caltech.edu>,
<linux-kernel@...r.kernel.org>, <linuxppc-dev@...abs.org>,
"Dan Williams" <dan.j.williams@...el.com>,
"Zhang Wei" <wei.zhang@...escale.com>
Subject: RE: [PATCH] fsldma: use PCI Read Multiple command
> Here's a few results from DMA tests between two
> MPC8349EA boards housed in a CPCI chassis.
>
> 1. DMA mode register (DMAMRn)
> PCI read command (PRC, bits 11:10)
>
> a) DMAMRn[PRC] = 00 = PCI Read
>
> The PCI read command is 6h on the PCI bus.
> For DMA lengths of less than 1 cache line (32-bytes)
> the DMA controller will generate a PCI 6h command.
> However, for lengths of 32-bytes and higher, the
> DMA controller actually generates a PCI Read Line (Eh)
> command.
>
> Freescale indicated that this 'change of PCI command code'
> functionality is an undocumented 'feature', there to
> improve performance for longer read lengths.
>
> b) DMAMRn[PRC] = 01 = PCI Read Line
>
> Generated the PCI command code for PCI read line (Eh),
> regardless of DMA length.
>
> c) DMAMRn[PRC] = 10 = PCI Read Multiple
>
> Generated the PCI command code for PCI Read Multiple (Ch),
> regardless of DMA length.
Good summary!
For the DMA PCI read/line/multi-line is outbound transaction.
So according to your experiment, the 8349 PCI controller(as master)
attemp to streaming/combining the outbound transaction(treated as
prefetchable
space).
IIRC, the early 8349EUM has the bit[2]-SE in the POCMRn
register, and is removed now. Not sure if it does function.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists