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.

SK-AM64: Wiriting to some DMSS register has no effect

Part Number: SK-AM64

Hi,

Some of the DMA registers have no affect wiritng to them, for example registers like 

DMASS0_PKTDMA_0_TCHAN

DMASS0_PKTDMA_0_RCHAN

DMASS0_RINGACC_0_RING_ba_lo_j

DMASS0_RINGACC_0_RING_ba_hi_j 

DMASS0_RINGACC_0_RING_size_j

DMASS0_INTAGGR_0_ENTRY_imap_j

but wiriting them to these registers do work, for example

DMASS0_INTAGGR_0_VINT_enable_set_j

DMASS0_INTAGGR_0_VINT_enable_clear_j

DMASS0_PKTDMA_0_RCHANRT_ctl_j

DMASS0_PKTDMA_0_TCHANRT_ctl_j

I am trying, wiriting to these registers from A53 and R5F.

When wiriting from R5F has no effect, the contents even if non zero stay the same no matter what I write to them. funny thing when I write them using memory browser it works.

When wiriting from A53 is successfull.

MMU on A53 is off

MPU on R5F is off

What could be the problem?

Thanks any input is appreciated

  • Hi, 

    not 100% sure about all of these registers, but you're not supposed to write these yourself. You should use the SysFW / Sciclient instead, see for example software-dl.ti.com/.../rm_ra.html

    I'd guess that a firewall is blocking your writes. 

    Regards, Dominic

  • Hi Dominic Rath,

    Thank you for your input, I did think about firewall too but I dont know how to enable or diable it. You have any clues how to diasble firewall? The MCU+SDK documentation is very bad and I cannot figure out how to use it, I gave up on using NORTOS library. So I thought Id just wack some DMA registers and hope that it works Smiley

  • Hi Abhimanyu,

    Please help me understand your use case. Are you only looking for how to configure the firewalls?

    Thanks!

  • Hi Prashant,

    Thanks for your help very much appreciated. I actually am trying to get CPSW running using baremetal. The MCD+SDK documentation is not very good. I tried my level best to use it get PKTDMA running but there’s little to no description on what to put in the function parameters and description on structure thats need to be passed as parameters is non existent. So I was trying to program PKTDMA and RINGACC by reading the TRM, unfortunately the DMSS segment in TRM isn’t good either. I managed to write my own API by register programming for GPIO UART DDR CLOCKS PRU TIMERS by only reading TRM only. I will post my queries in this forum as I go along. For now I need to make R5F be able write to the registers mentioned in the original question. If you could also help me in what DMSS registers are need to programmed and in what order It would be a very huge help.

  • Hi Abhimanyu,

    I see that you have got the CPSW running using baremetal in your other thread https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1233980/sk-am64-baremetal-configuration-of-cspw. Thank you for trying & also posting the solution in the other thread.

    Coming to this thread, please let me know if this thread also can be considered resolved.

    Regards,

    Prashant

  • Hi Prashant,

    I see that you have got the CPSW running using baremetal in your other thread https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1233980/sk-am64-baremetal-configuration-of-cspw. Thank you for trying & also posting the solution in the other thread.

    I am happy to share my knowledge.

    Coming to this thread, please let me know if this thread also can be considered resolved.

    Unfortunatley no, I am playing with the registers but nothing positive happened unptil now. It would be great if someone could help me more on this. I am going to post a new related question in a few hours on how to program the DMA to get data from CPSW.

  • Hello Abhimanyu,

    I'm not sure if you're supposed to be able to disable these firewalls, see this TISCI FAQ entry for example: downloads.ti.com/.../firewall_faq.html

    To make things worse you should keep in mind that there could be differences between SR1.0 / GP and SR 2.0 / HS_FS and SR2.0 HS_SE.

    If you're on SR1.0 / GP hardware you should be able to access the firewalls from the DMSC core via the debugger. On SR2.0 HS_FS or HS_SE you can't access the DMSC via the debugger, so you have to use SysFW messages to disable the firewall. Personally I don't think it's worth the hasle, and I'd use SysFW to configure the ring accelerator.

    Regards,

    Dominic

  • Hi Dominic,

    Thank you for your insight. I see your point, and am starting to doubt my self if its even possible to do it without the SysFW. I am willing to use SysFW to configure my DMA, but I don't know where start. Are you familiar in using the SysFW? The MCU+SDK is very poor in explaning how to use it. Do you have any hints on how and from where can learn how to use it? Any good examples, any good literature? even if it is not AM64x specific.