This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello there,
One of our customer has some problem regarding to EDMA memory region access.
I would be thankful to you if some one would advice us on below.
I’m trying to read/write the EDMA registers starting of address 0x02700000, but I cannot access that memory region.
It seems I don’t have the permissions either from local access in the DSP or from PCIe connection.
On the PCIe registers I have set the MST_PRIV mode in the Transaction Priority Register (PRIORITY) offset 3Ch, from PCIe application registers (21800000h), to 1.
On the MPPAG Memory Protection Page Attribute Global Register, offset 80Ch from the EDMA Channel Controller (EDMA3CC) 02740000h, I’ve changed all last bits to 1.
I still cannot read or write any of the EDMA registers.
What should be the right registers setup in order for me the access the EDMA registers starting of address 0x02700000 ?
Kushal Patel,
Kushal Patel: said:I’m trying to read/write the EDMA registers starting of address 0x02700000, but I cannot access that memory region.
You can find the example code at: C:\ti\edma3_lld_02_11_05_02\examples\edma3_driver\evm6657
Any entity on the chip that has read/write access to the EDMA3 registers and can program an EDMA3 transfer.
You can check the read/write for EDMA memory mapped registers like below, this is only for your reference.
#define EDMA3_TPCC_BASE 0x02740000
#define IECRH (EDMA3_TPCC_BASE + 0x105C) // IECRH Control
*(int*)IECRH = 0xFFFFFFFF;
Kushal Patel,
Do you need further support on this issue? Are you able to write or read the EDMA memory mapped registers?
Hi,
When I'm accessing the EDMA registers starting off 0x02740000 , I can see the values and I think I can continue from there.
I was relying on TI Linux Host example - C:\ti\mcsdk_2_01_02_06\tools\boot_loader\examples\pcie\linux_host_loader
And on the pcidemo.c the definition for the EDMA base registers is 0x02700000
#define EDMA_TPCC0_BASE_ADDRESS 0x02700000
So as I described accessing that address is unsuccessful, but now I understand that it is a reserved memory space.
Once I changed the definition into #define EDMA_TPCC0_BASE_ADDRESS 0x02740000
That area became accessible.
I guess there should be #if EVMC6657L before the EDMA_TPCC0_BASE_ADDRESS definition in the Linux host example.
Thanks,
Roee
Roee,
Glad to hear. I believe that, its working in your side after modified correct address. However this discussion of thread can helpful for future readers, If you verified this thread.