We are using the TSB12LV32-EP for 1394 communication. Our bus uses the ATF and GRF with asynchronous stream messages (ie, messages with isochronous headers, sent/received in the asynchronous period). We are not using RXGRFPKT (GRF packet received) interrupts.
I am trying to determine how to know when a full message is available in the GRF. If I read the FIFO Status register and GRFEMPTY indicates that the GRF is not empty, and CD indicates that the next quadlet is a packet token, then can I read the packet token and assume that the number of quadlets indicated by the packet token are already in the GRF, available to be read? For example, if I read a packet token that indicates QUADLET_COUNT is 50, then can I assume that the 50 data quadlets are in the GRF already?
Or is it possible that the packet token is in the GRF, but the data quadlets are not yet there? If so, how do I know when the data quadlets are available? Note that is seems GRFUSED may not indicate exactly how many quadlets are available, due to the possibility of some quadlets being in the the GRF read buffer and therefore not being reflected in GRFUSED. For example, in the above scenario, once the whole packet is available, it seems that GRFUSED might only indicate 46 or 45, since 4 or 5 quadlets may be in the read buffer. So I don't see an easy way of knowing when the 50 quadlets are available, unless, as I pondered above, they are already available to be read once I read the packet token.
Thanks
Joel