On Thu, May 21, 2009 at 03:49:29PM -0500, Peter Tyser wrote: > On Thu, 2009-05-21 at 12:37 -0700, Ira Snyder wrote: > > On Thu, May 21, 2009 at 12:09:58PM -0500, Peter Tyser wrote: > > > This patch series attempts to clean up the DMA implementation for the > > > 85xx and 86xx architectures. The changes include: > > > - consolidate 85xx and 86xx structures and code > > > - add defines for bitfields > > > - use proper IO accessors > > > - add support for arbitrarily large transfer sizes > > > - rename dma_xfer() to dmacpy() and make dmacpy's prototype similar > > > to memcpy() > > > > > > The patches are based on the mainline "next" branch. > > > > > > I've tested the code on MPC8572 and MPC8640-based boards. > > > > > > I'm not initimately familar with the 83xx platform, but at a glance > > > it looked like the fsl_dma driver could be extended to support it > > > with some ifdeffery. > > > > > > > I've been doing some Linux work with the 83xx DMA controller. The only > > real differences between the 83xx/85xx controller are the register > > endianness and snoop bits. The 83xx controller's registers are all > > little-endian, while the 85xx is all big-endian. > > > > Also, there are some snoop bits that need to be enabled on 83xx as well, > > in the control register as well as in each descriptor if you're running > > in chaining mode. > > > > That's everything that I've noticed that is different. I don't have an > > 85xx/86xx to test anything with, but I'm happy to run some tests on my > > mpc8349emds if you want to try adding support for 83xx. > > Thanks! > > I believe some of the register locations are slightly different too, for > example the source address on the 85xx is at offset 0x114 while its at > 0x110 on the 83xx. > > I don't think any 83xx boards currently use the 83xx DMA implementation > in cpu/mpc83xx/cpu.c. Before spending any time on the 83xx, is there > any good reason to support the 83xx in U-Boot? There would be no users > of the updated implementation as is. >
I think there is an option for the mpc8349emds to use the DMA controller to initialize the RAM for ECC mode. I tried using it, and it was much slower than using the CPU. I'll probably end up writing a virtual network driver for U-Boot eventually. In the Linux version, I've used the DMA controller to handle transferring data over PCI. It is much faster than the CPU, but I'll only be transferring a few megabytes from within U-Boot anyway. In short, having the driver ported to 83xx would make some of my future development easier, but there aren't any serious in-tree users at the moment (to the best of my knowledge). Ira _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

