I am still having problems with the L137/8 EMAC and the queuing of transmit descriptors. If I transmit a message that only utilizes one descriptor, all is well, but if I transmit a message that contains more that one buffer/descriptor, the first buffer gets transmitted, but the second one isn’t. I check to see whether the previous descriptor has the EOQ bit set, and if so, I write the address of the new descriptor to the HDP register. If the EOQ bit isn’t set, I just update the pointer of the previous descriptor to point to the new descriptor, but this doesn’t seem to work. I end up with the EOQ bit set in the first buffer descriptor, but the second buffer descriptor still has the ownership bit set and isn’t transmitted.
Once the hardware reads the first descriptor, does the hardware read the descriptor again when the EOQ bit is set to see if the next pointer has been updated? Are there any caching issues that I should know about? Any help would be appreciated.
Thanks, Hugh.