@@ -39,6 +39,9 @@ struct rpmsg_virtio_device rvdev;
3939
4040static metal_phys_addr_t shm_physmap ;
4141
42+ /**
43+ * @brief OpenAMP libmetal device structure
44+ */
4245struct metal_device shm_device = {
4346 .name = SHM_DEVICE_NAME ,
4447 .num_regions = 2 ,
@@ -51,6 +54,12 @@ struct metal_device shm_device = {
5154 .irq_info = NULL
5255};
5356
57+ /**
58+ * @brief Initialize OpenAMP shared memory (libmetal and resource table)
59+ *
60+ * @param RPMsgRole: RPMSG_REMOTE - Device is remote (slave)
61+ * @retval 0 on success
62+ */
5463static int OPENAMP_shmem_init (int RPMsgRole )
5564{
5665 int status = 0 ;
@@ -98,6 +107,11 @@ static int OPENAMP_shmem_init(int RPMsgRole)
98107 return 0 ;
99108}
100109
110+ /**
111+ * @brief Initialize the openamp framework
112+ *
113+ * @retval 0 when success
114+ */
101115int OPENAMP_Init ()
102116{
103117 struct fw_rsc_vdev_vring * vring_rsc ;
@@ -141,18 +155,37 @@ int OPENAMP_Init()
141155 return 0 ;
142156}
143157
158+ /**
159+ * @brief Deinitialize the openamp framework
160+ */
144161void OPENAMP_DeInit ()
145162{
146163 rpmsg_deinit_vdev (& rvdev );
147164
148165 metal_finish ();
149166}
150167
168+ /**
169+ * @brief Initialize the endpoint struct
170+ *
171+ * @param ept: virtio rpmsg endpoint
172+ */
151173void OPENAMP_init_ept (struct rpmsg_endpoint * ept )
152174{
153175 rpmsg_init_ept (ept , "" , RPMSG_ADDR_ANY , RPMSG_ADDR_ANY , NULL , NULL );
154176}
155177
178+ /**
179+ * @brief Create and register the name service endpoint
180+ *
181+ * @param ept: virtio rpmsg endpoint
182+ * @param name: virtio rpmsg name service name
183+ * @param dest: message destination address. Set RPMSG_ADDR_ANY if
184+ * the host processor will decide this
185+ * @param cb: virtio rpmsg endpoint callback (receive)
186+ * @param unbind_cb: virtio rpmsg endpoint destroy callback
187+ * @retval 0 when success
188+ */
156189int OPENAMP_create_endpoint (struct rpmsg_endpoint * ept , const char * name ,
157190 uint32_t dest , rpmsg_ept_cb cb ,
158191 rpmsg_ns_unbind_cb unbind_cb )
0 commit comments