cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
8,427 Views
Registered: ‎09-16-2009

XAPP1052, TSK_EXPECT_MEMRD

Jump to solution

XAPP1052, firmware, driver, and app all work fine. I would like to emulate the DMA transaction. Is there an example of using TSK_EXPECT_MEMRD? In my test I issue a Memory Read Start, the TX of the read address to the root port happens, but the read packet does not show up and TSK_EXPECT_MEMRD never completes.

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Visitor
Visitor
10,146 Views
Registered: ‎09-16-2009

Both the root port and endpoint Bus Master bits must be set. The source for doing that is attached.

 

Root port trn_rsof_n and trn_reof_n signals now appear when mrd_start goes high. A root port app to handle that end of the DMA is next.

View solution in original post

0 Kudos
7 Replies
Highlighted
Xilinx Employee
Xilinx Employee
8,345 Views
Registered: ‎04-06-2010

Did you make sure that the Bus Master Enable bit is set?

If this is not set, then the endpoint will not send the packet (even in simulation).

0 Kudos
Highlighted
Highlighted
Xilinx Employee
Xilinx Employee
8,323 Views
Registered: ‎04-06-2010

That's a good sample but you're going to have to look at pci_exp_usrapp_tx.v and make sure that the TSK_BAR_PROGRAM task makes a configuration write on the Bus Master Enable bit to the command register.  It should look something like this:

 

TSK_TX_TYPE0_CONFIGURATION_WRITE(DEFAULT_TAG, 12'h04, 32'h00000003, 4'h7);

 

Hope this helps.

0 Kudos
Highlighted
Visitor
Visitor
8,317 Views
Registered: ‎09-16-2009
I have done that and have used chipscope to see what really happens. Emulation is quicker than writing to FLASH, once I have emulation matching reality I will post the code.
0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
8,307 Views
Registered: ‎04-06-2010

If you're going to use ChipScope to look at the incoming packets, the I recommend taking a look at the RX MIM interface.  This way you can see your configuration packets as well as the ones that are passed to the user interface (trn_*)

0 Kudos
Highlighted
Visitor
Visitor
10,147 Views
Registered: ‎09-16-2009

Both the root port and endpoint Bus Master bits must be set. The source for doing that is attached.

 

Root port trn_rsof_n and trn_reof_n signals now appear when mrd_start goes high. A root port app to handle that end of the DMA is next.

View solution in original post

0 Kudos
Highlighted
Visitor
Visitor
8,263 Views
Registered: ‎09-16-2009

3DW rx's were not being decoded properly in pci_exp_usrapp_com.v, one additional change is needed (see attachment)

 

TSK_EXPECT_MEMRD returns with the proper values, use TSK_TX_COMPLETION_DATA to return the expected data.  See the example cited earlier.

0 Kudos