On 4/29/05, Johannes Berg <[EMAIL PROTECTED]> wrote: > On Thu, 2005-04-28 at 16:18 -0400, Timothy Miller wrote: > > There'll be some address/data pairs that you use to indirectly get at > > those things. The problem with that approach is that it may be very > > slow, especially if you have to do an ioctl per access to config > > space. Anyone want to comment on this? > > Can't you have a control register that does an indirect read/write, but > maintain an internal pointer in the hardware? that way you could do > writel(control, address) > writel(datareg, data1) > writel(datareg, data2) > writel(datareg, data3) > etc. > Same would go for reading (since you only maintain a single pointer > anyway). > Not sure if that's feasible though.
Actually, what you describe is the normal way of doing things. The reason this approach is "slow" is that you can't just do a memcpy, because all the data goes to the same address. The result is that it takes at least three times as long, due to PCI address cycle overhead. In addition, it's not always convenient or practical to transfer 32 bits at a time. Take i2c, for instance. The usual interface deals with one BIT at a time (or worse) for every 32-bit bus transaction. Of course for i2c, who cares, because it's designed to be slow, but it doesn't have to move much data. I'm trying to assess the importance of speed for reprogramming the PROM and the FPGA. I imagine it could happen a heck of a lot, so having its own memory aperture could be a better answer. _______________________________________________ Open-graphics mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-graphics List service provided by Duskglow Consulting, LLC (www.duskglow.com)
