12-12-2018 11:27 AM
I am working with the ZCU104 dev board and the context of my question is set with the following goals in mind:
Q1: I have read about OpenAMP, however I am not certain that it is what I am looking for to meet my goals of bringing up both the APU and RPU independently. My desire is to create a design where the two are essentially two players in a distributed system with a shared communication pathway; but otherwise established for two completely different processing purposes. I do not intend to create a design where the RPU is established for the handing-off of processes from the APU. Is my assessment of OpenAMP correct, that it is used to make the RPU slave to the APU? Any suggestions on best approach for my desired architecture? I am currently assuming that if I can boot each processing unit independently, that I can then use shared memory to create a mechanism for communications.
Q2: Is my assumption correct that to boot such a system, I can simply create my two apps: the APU app targeted for Linux using my petalinux outputs, along with my RPU app targeted for a BSP generated from my custom hardware, and then wrap the correct set of files into a FSBL using the SDK?
Thanks ahead of time for any help in this matter.
12-13-2018 11:54 PM
I think that OpenAMP is what you are looking for, however your understanding is not completely accurate. When RPU is APU slave in OpenAMP only states that Linux running in the APU will be the master of the system (allocate shared memory, launch the RPU processor with the ELF file, establish communication... ). The RPU can be used for any processing purposes, you just load the ELF file.
You can work without OpenAMP but it will be more complicated for you. In overall your flow is fine but afterwards you need to work on the shared memory communication mechanism that is already available for you within OpenAMP (rpmsg). Also do not forget to avoid memory overlapping when linking and providing memory info to Linux ;)
Regards
12-13-2018 11:54 PM
I think that OpenAMP is what you are looking for, however your understanding is not completely accurate. When RPU is APU slave in OpenAMP only states that Linux running in the APU will be the master of the system (allocate shared memory, launch the RPU processor with the ELF file, establish communication... ). The RPU can be used for any processing purposes, you just load the ELF file.
You can work without OpenAMP but it will be more complicated for you. In overall your flow is fine but afterwards you need to work on the shared memory communication mechanism that is already available for you within OpenAMP (rpmsg). Also do not forget to avoid memory overlapping when linking and providing memory info to Linux ;)
Regards