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.

AM6548: dts reserved memory for R5F in lock step mode

Part Number: AM6548

Hi

i like to understand when in lock step mode do you need to reserve memory sections in the dts file for both cores? If not then it should be fine to just define memory regions for core0 then correct?

Also there are 2 reserved memory sections defined for R5F one is    r5f-dma-memory and the other is r5f-memory. I was reading in the linux documentation that the r5f-dma-memory section is for the DMA dynamic vring and the other is for everything else. Can you explain what is the vring? in the UDMA we have rings but not vring is that what they are talking about? so when using the UDMA we can only use the sections in the r5f-dma-memory? Or this is for something else? 

Thanks

  • Hi 

    got some answers i hope others can use it and learn from it

    r5f-dma-memory it is used for dynamic DMA using vrings? I am not sure what are vrings? I assume these are the rings in the UDMA block correct? If that is the case then when you define r5f-dma-memory that is the only region you can use for the UDMA transfers correct?

    [This has nothing to do with UDMA. Vrings or virtio_rings is the shared memory transport used by IPC. This predates K3 and is the transport used by Linux Virtualization core in fact. There are vrings (IPC shared-memory control structures) and vring buffers (IPC transport buffers) that are allocated from this region. This region needs to be non-cached in the remote core Cache settings. ]

     

    Also there is another region defined in the dts file r5f-memory I assume this is for heap and you can place your code in that region for the R5F correct?

    [This is the primary memory region used for the image execution. All the firmware images text/code, data, heap, stack come from this region. Note that the dt-bindings allow more than 2 regions, all regions other than the first one are reserved for the remote core usage in general]

     

    By the way do you know if we run the R5F in safe mode then can we just define one section for the reserved memory in the dts file or we still have to define 2 sections no matter if in lock step or not?

    [That is right. Not needed if you are running the cluster in LockStep mode, you can refer to my remoteproc bindings file. Unfortuntely in SDK, I have to define all of them for the sake of testing both LockStep and Split-modes.]

  • Hi Mohsen,

    Thanks for updating the thread!

    Regards,

    Yordan