[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: IO and Bursting
Brian Sassone wrote:
>
> > > Are bursts to IO address space always forbidden on PCI?
>
> > I suspect that you are implying that you would like to do a
> > *single-address* burst to I/O space, so you can stream data
> > in/out an I/O port.
>
> Actually, no (I already know how to fix that problem). I'm just
> wondering if I'm guaranteed that a master wont try to burst an IO
> write (cbe == 0011) to my device. This seems to be implied by the
> statements on pp34 of the 2.1 specification wrt combining and
> merging where it states:
>
> "The combining and merging of IO and Configuration transactions
> are not allowed."
>
> > There is nothing about doing I/O (rather than memory cycles) that would
> > allow you to imply (or dis-imply) being able to do burst cycles to
> > a target. If the target allows it, it will happen. If not, it won't.
>
> Semantically the cycles are identical as defined in the spec. That's
> why I'm confused by the above statement. I'm wondering more about how
> the host bridge works. Anybody familiar with the bridge spec who can
> tell me how HBs are guaranteed to operate?
>
Well, if I read the same stuff, it would imply that *bridges* won't
combine and merge. It says nothing about a bustmastering PCI
adapter doing bursts in I/O space. As a matter of fact, I would
count on it. The verbage above is trying to guarantee that a
bridge doesn't combine and merge byte writes into a 32-bit
write (for instance), which could give surprising results. The
one thing about I/O is that we assume that doing things like
could cause undesired side effects. So, at least the bridges
in the system enforce some ordering, so you can (for instance)
poll a status register, or write a sequence of commands to several
byte locations in the order you wrote the code.
Cheers,
-- DaveN
E L <