* [U-Boot-Users] Burst I/O on PPC440GP @ 2005-10-06 17:37 Gregg Nemas 2005-10-06 20:07 ` Stefan Roese 0 siblings, 1 reply; 4+ messages in thread From: Gregg Nemas @ 2005-10-06 17:37 UTC (permalink / raw) To: u-boot I am trying to perform I/O with a device attached to the external peripheral bus on a PPC440GP embedded processor. I am able to address the device and read and write to it, but I am only able to do non-burst I/O. Do I need to do something special to enable burst transactions? I've programmed the EBC0_B5CR and EBC0_B5AP device control registers appropriately to enable burst mode, but the transactions are still single I/O. I've been testing this by using the u-boot mw.l command. Do I need to use PPC-specific instructions to perform burst I/O, or should an ordinary programmed I/O (using 32-bit write operations) be automatically queued up and converted to burst transactions? The TLB I've added for the I/O region has the caching inhibit (I) and guarded (G) bits set. Does caching or speculative access need to be enabled to allow bursting? Even if I added a TLB entry, it wouldn't do me any good in Linux, since it manages TLBs itself. So how would I do this from a Linux kernel driver? Thanks. Gregg ^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot-Users] Burst I/O on PPC440GP 2005-10-06 17:37 [U-Boot-Users] Burst I/O on PPC440GP Gregg Nemas @ 2005-10-06 20:07 ` Stefan Roese 2005-10-06 20:40 ` [U-Boot-Users] " Gregg Nemas 0 siblings, 1 reply; 4+ messages in thread From: Stefan Roese @ 2005-10-06 20:07 UTC (permalink / raw) To: u-boot Hi Gregg, On Thursday 06 October 2005 19:37, Gregg Nemas wrote: > I am trying to perform I/O with a device attached to the external > peripheral bus on a PPC440GP embedded processor. I am able to address the > device and read and write to it, but I am only able to do non-burst I/O. Do > I need to do something special to enable burst transactions? I've > programmed the EBC0_B5CR and EBC0_B5AP device control registers > appropriately to enable burst mode, but the transactions are still single > I/O. > > I've been testing this by using the u-boot mw.l command. Do I need to use > PPC-specific instructions to perform burst I/O, or should an ordinary > programmed I/O (using 32-bit write operations) be automatically queued up > and converted to burst transactions? Do you want to transfer bigger chunks of data? If yes, you may want to take a look at the dma controller of the 440gp. It definately is able to generate burst transactions and probably the ideal solution for your needs. Another way to get burst transactions, is of course to use the cache, but I don't think that this is what you are looking for. Best regards, Stefan ^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot-Users] Re: Burst I/O on PPC440GP 2005-10-06 20:07 ` Stefan Roese @ 2005-10-06 20:40 ` Gregg Nemas 2005-10-06 20:54 ` Chuck Gales 0 siblings, 1 reply; 4+ messages in thread From: Gregg Nemas @ 2005-10-06 20:40 UTC (permalink / raw) To: u-boot Stefan Roese <sr <at> denx.de> writes: > > I've been testing this by using the u-boot mw.l command. Do I need to use > > PPC-specific instructions to perform burst I/O, or should an ordinary > > programmed I/O (using 32-bit write operations) be automatically queued up > > and converted to burst transactions? > > Do you want to transfer bigger chunks of data? If yes, you may want to take a > look at the dma controller of the 440gp. It definately is able to generate > burst transactions and probably the ideal solution for your needs. No, actually it will be relatively small transfers (16-128 bytes). I considered using the DMA controller, but thought I would start out simple. > Another way to get burst transactions, is of course to use the cache, but I > don't think that this is what you are looking for. You say "of course", but it really isn't at all clear to me how this works. Why does enabling the cache allow burst operations? You are right that it is not what I would normally want to do for device I/O memory. Thanks for your help. Gregg ^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot-Users] Re: Burst I/O on PPC440GP 2005-10-06 20:40 ` [U-Boot-Users] " Gregg Nemas @ 2005-10-06 20:54 ` Chuck Gales 0 siblings, 0 replies; 4+ messages in thread From: Chuck Gales @ 2005-10-06 20:54 UTC (permalink / raw) To: u-boot On 10/6/05, Gregg Nemas <gnemas@gmail.com> wrote: > Stefan Roese <sr <at> denx.de> writes: > > > > I've been testing this by using the u-boot mw.l command. Do I need to use > > > PPC-specific instructions to perform burst I/O, or should an ordinary > > > programmed I/O (using 32-bit write operations) be automatically queued up > > > and converted to burst transactions? > > > > Do you want to transfer bigger chunks of data? If yes, you may want to take a > > look at the dma controller of the 440gp. It definately is able to generate > > burst transactions and probably the ideal solution for your needs. > > No, actually it will be relatively small transfers (16-128 bytes). I considered > using the DMA controller, but thought I would start out simple. > > > Another way to get burst transactions, is of course to use the cache, but I > > don't think that this is what you are looking for. > > You say "of course", but it really isn't at all clear to me how this works. Why > does enabling the cache allow burst operations? You are right that it is not > what I would normally want to do for device I/O memory. > > Thanks for your help. > > Gregg > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: > Power Architecture Resource Center: Free content, downloads, discussions, > and more. http://solutions.newsforge.com/ibmarch.tmpl > _______________________________________________ > U-Boot-Users mailing list > U-Boot-Users at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/u-boot-users > Gregg, With caching disabled, the CPU considers that your external device needs to be updated with every memory write, since other devices may also access the memory and need to have the correct data. With caching enabled, the CPU will store your writes internally until the memory cache is flushed, which forces the writes to the external device. When flushing the cache (which is usually a relatively large amount of data, the cache will use burst transactions to write the data. However, with caching enabled, there is the possibility that the data in the external device is not in sync with what the CPU thinks is there, so if other devices access the external device, they will get the incorrect data. Chuck ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-10-06 20:54 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-10-06 17:37 [U-Boot-Users] Burst I/O on PPC440GP Gregg Nemas 2005-10-06 20:07 ` Stefan Roese 2005-10-06 20:40 ` [U-Boot-Users] " Gregg Nemas 2005-10-06 20:54 ` Chuck Gales
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox