Hi,
There are many Hyperlink + CPPI examples on this forum. All of these examples are using the below initialization for CPPI:
/* Set up QMSS PKTDMA configuration */
memset ((void *) &cpdmaCfg, 0, sizeof (Cppi_CpDmaInitCfg));
cpdmaCfg.dmaNum = Cppi_CpDma_QMSS_CPDMA;
cpdmaCfg.qm1BaseAddress = 0x34030000;//local QM area
cpdmaCfg.qm2BaseAddress = 0x40000000;// vUSR remote QM area
/* Open QMSS PKTDMA */
cppiHnd = (Cppi_Handle) Cppi_open (&cpdmaCfg);
- Can you please detail what is the reason of setting qm1BaseAddress and qm2BaseAddress and not qm0BaseAddress and qm1BaseAddress ?
- Can you please detail why you set qm1BaseAddress = 0x34030000? What is setting this value from QM for hyperlink data transfer?
- Are these qmxBaseAddress values related to memory regions and queues?
The below code snippet is from Hyperlink_config where are configured the RX segments
/**** local vUSR Tx, Rx address mapping for remote DSP
* 0x40000000 => 0x34020000 and 0x40200000 ==> 0x0C010000 **/
configure_address_mappings(0xD, 4,(Uint32)0x34020000,(Uint32)0x0C010000);
In all these examples there is a function called configure_remote_address_mappings() never used. It should configure from one EVM the registers of second eVM to make this example to work?
For reference see the source code: https://e2e.ti.com/support/processors/f/791/t/176863
- As regards the memory region configuration: When you have many memory regions configured, what is the value that need to be setup for monoMemInfo.startIndex field? Is this field incremented with the value of monoMemInfo.descNum from previous memory region?
/Daniel