cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor
Visitor
201 Views
Registered: ‎10-28-2019

openAMP remoteproc and rmsg decoupling issue, exclude the remoteproc.

Hi Everyone,

In our vehicle ECU application based on zcu102 platform, the RPU will and must start faster than APU, because RPU focus on some real time task related with can, ign signal and so on, but the APU focus on some complicated tasks, sucn as video,  audio tasks and so on. the current inter-processor commulication demo can not meet our requirement very well. Based on our application, we just need the rpmsg function based on openAMP, exclude the remotproc function, but we can not re-write those code very well to meet thsi requirement, so can you give us some advice. we plan to use the rpmsg char driver located in linux source code, just add the id_table as follows.

static struct rpmsg_device_id rpmsg_driver_chrdev_id_table[] =
{
{.name = "rpmsg-openamp-demo-channel" },
{ },
};

MODULE_DEVICE_TABLE(rpmsg, rpmsg_driver_chrdev_id_table);

static struct rpmsg_driver rpmsg_chrdev_driver = {
.probe = rpmsg_chrdev_probe,
.remove = rpmsg_chrdev_remove,
.id_table = rpmsg_driver_chrdev_id_table,
.drv = {
.name = "rpmsg_chrdev",
},
};

the total proceduce may be like this,

(1) the RPU boot at first and start to wait for the peer(APU) 's link is up;

(2) the APU start to initialize the rpmsg driver and found the RPU is ready, then kick this communication;

(3) the RPU found that the link is up ,then send the namespace service to APU

(4) then the RPU and APU start to communicate with each other.

can you give us some good ideas to re-write those code and meet our requirement ?

Thank you.

 

BRs

Shuangpeng

0 Kudos