Hi All,
I was planning a 1394 driver implementation where a single driver would receive multiple isoch streams. I was planning on handling the isoch transfers in stream-based mode, i.e. all the receive buffers are used as one big contiguous buffer and data received in one packet is written to the buffer where the data from the previous packet left off. The intention was to have the DMA system “merge” the streams packet by packet into the receive buffer.
Although this design seems possible from the DDK documentation, there are strong indications on the internet that handling isoch transfers in stream-based mode does not work with variable sized isoch packets, as packets may straddle pages. Thesycon, that has based their VHPD driver on the Microsoft 1394 bus driver states:
“Using stream-based mode with variable-sized packets can cause problems because packets will straddle buffer boundaries. This is not correctly supported by the 1394 OHCI device driver included with Windows. Consequently, stream-based mode should not be used if the packet size varies. Thesycon recommends to always use packet-based reception mode.”
Is this limitation due to a bug in the legacy 1394 bus driver, or is it a general limitation when using DMA? If it is a bug in the legacy 1394 bus driver, does it work correctly with the new 1394 bus driver?
Best regards
Thomas