Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Could someone in-the-know please check KBA90743 "Interpreting the DMA_RDY Flag of the GPIF II Block of FX3".  Its discussion is hopelessly confusing.

This article tries to tackle the topic "The terminology “DMA_RDY” is not quite correct", but it goes a long way to making matters worse.

If parts of the article are to be believed, the terminology is not just "not quite" correct, it would be completely wrong, and such a degree of wrongness should be pointed out extremely clearly. But other parts of the article undermine this conclusion.

Starting point: The discussion revolves around the master-slave interfacem where the FX3 implements the slave, with an external master. Then there are two cases, FX3 sends data through the P port to external device, and vice versa. Now:

1. For FX3 Output:

"For a channel that outputs data to the P-port (to an external chip or device), the DMA_RDY flag indicates whether there is data ready to be read out from any of the buffers. If there is at least one buffer with data committed to the P-port, the DMA_RDY flag is deasserted. It is essentially an empty flag in this case."

a. The narrative claims that when data is ready, the FX3 deasserts DMA_RDY.  That would make the name a complete reverse of the meaning. Is this really true?

 

b. "It is essentially an empty flag, in this case". In which case? For the "output data" case, DATA_RDY assertion means empty? Or is this saying that the DATA_RDY DEassertion case means empty? Because if it's the second, that actually makes sense (DEasserting a READY signal would make sense for buffer empty), but says the opposite of the previous sentence.

2. For FX3 Input:

"For a channel that inputs data to the P-port (from an external chip or device), the DMA_RDY flag indicates whether there is buffer area available to write into. If there is at least one buffer available to be filled with data, the DMA_RDY flag is deasserted. It is essentially a full flag in this case."

a. Again, the description says that when a DMA buffer is available, the FX3 signals NOT ready! A

b. Again, it's not clear what "this case" refers to: the FX3-as-input case, or the flag deasserted case. Again the latter would make sense, but is the opposite of the previous sentence.

What is the actual truth?

0 Likes
1 Solution
Anonymous
Not applicable

Hi,

I agree that the wordings used in the KBA are not proper. I apologize for the inconvenience and confusion and take necessary steps to revise it.

Here is how you interpret it:

1) External device to FX3 transfer:

If the flag is asserted, no more data can be written to Fx3. If the flag is deasserted, the external device can write data. (If this flag is asserted it means FX3's DMA is full. So the external device cannot write any more data.)

2) FX3 to External device transfer:

If Flag is asserted, no more data can be read from FX3. If the flag is deasserted, the external device can read data. (If this flag is asserted it means FX3's DMA is empty. So the external device cannot read any more data)

Keeping it simple,

Flag asserted -> No data transfer

Flag deasserted -> Data transfer possible.

(In our example projects, the polarity of the flags are active low. So low on flag pins indicate assertion and high indicate de-assertion)

Regards,

-Madhu Sudhan

View solution in original post

0 Likes
2 Replies