]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/open-amp.git/commitdiff
Add metal device and I/O region to hil_proc
authorWendy Liang <jliang@xilinx.com>
Mon, 1 Aug 2016 03:30:24 +0000 (20:30 -0700)
committerWendy Liang <jliang@xilinx.com>
Thu, 13 Oct 2016 05:01:45 +0000 (22:01 -0700)
Add metal_device and I/O region to the following hil_proc elements:
* vring
* vring IPI
* shm (shared memory)

So that later, can use the metal device, I/O region to access the
device and the shared memory.

Signed-off-by: Wendy Liang <jliang@xilinx.com>
lib/include/openamp/hil.h

index be5a8eb953025cf0213eaf649e8a901f8cdae7b4..af307d75765e00f5d76874c8659ca20f6149f692 100644 (file)
@@ -45,6 +45,8 @@
 #include "openamp/virtio.h"
 #include "openamp/firmware.h"
 #include "metal/list.h"
 #include "openamp/virtio.h"
 #include "openamp/firmware.h"
 #include "metal/list.h"
+#include "metal/io.h"
+#include "metal/device.h"
 
 /* Configurable parameters */
 #define HIL_MAX_CORES                   2
 
 /* Configurable parameters */
 #define HIL_MAX_CORES                   2
@@ -77,6 +79,8 @@ struct proc_info_hdr {
 struct proc_shm {
        /* Start address of shared memory used for buffers. */
        void *start_addr;
 struct proc_shm {
        /* Start address of shared memory used for buffers. */
        void *start_addr;
+       /* sharmed memory I/O region */
+       struct metal_io_region *io;
        /* Size of shared memory. */
        unsigned long size;
        /* Attributes for shared memory - cached or uncached. */
        /* Size of shared memory. */
        unsigned long size;
        /* Attributes for shared memory - cached or uncached. */
@@ -99,6 +103,10 @@ struct proc_intr {
        unsigned int priority;
        /* Interrupt trigger type */
        unsigned int trigger_type;
        unsigned int priority;
        /* Interrupt trigger type */
        unsigned int trigger_type;
+       /* IPI metal device */
+       struct metal_device *dev;
+       /* IPI device I/O */
+       struct metal_io_region *io;
        /* Private data */
        void *data;
 };
        /* Private data */
        void *data;
 };
@@ -115,6 +123,10 @@ struct proc_vring {
        struct virtqueue *vq;
        /* Vring logical address */
        void *vaddr;
        struct virtqueue *vq;
        /* Vring logical address */
        void *vaddr;
+       /* Vring metal device */
+       struct metal_device *dev;
+       /* Vring I/O region */
+       struct metal_io_region *io;
        /* Number of vring descriptors */
        unsigned short num_descs;
        /* Vring alignment */
        /* Number of vring descriptors */
        unsigned short num_descs;
        /* Vring alignment */