Add ivshmem demo device in addition to the ivshmem network
device.

Signed-off-by: Matt Ranostay <[email protected]>
---
 configs/arm64/k3-am654-idk-linux-demo.c | 55 ++++++++++++++++++++++---
 configs/arm64/k3-am654-idk.c            | 49 ++++++++++++++++++++--
 2 files changed, 95 insertions(+), 9 deletions(-)

diff --git a/configs/arm64/k3-am654-idk-linux-demo.c 
b/configs/arm64/k3-am654-idk-linux-demo.c
index d03fd4cd..fdf5fea8 100644
--- a/configs/arm64/k3-am654-idk-linux-demo.c
+++ b/configs/arm64/k3-am654-idk-linux-demo.c
@@ -23,9 +23,9 @@
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
-       struct jailhouse_memory mem_regions[12];
+       struct jailhouse_memory mem_regions[17];
        struct jailhouse_irqchip irqchips[3];
-       struct jailhouse_pci_device pci_devices[1];
+       struct jailhouse_pci_device pci_devices[2];
 } __attribute__((packed)) config = {
        .cell = {
                .signature = JAILHOUSE_CELL_DESC_SIGNATURE,
@@ -54,6 +54,39 @@ struct {
        },
 
        .mem_regions = {
+               /* IVSHMEM shared memory regions for 00:00.0 (demo) */
+               {
+                       .phys_start = 0x8dfa00000,
+                       .virt_start = 0x8dfa00000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
+               },
+               {
+                       .phys_start = 0x8dfa10000,
+                       .virt_start = 0x8dfa10000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_ROOTSHARED,
+               },
+               /* Peer 0 */ {
+                       .phys_start = 0x8dfa20000,
+                       .virt_start = 0x8dfa20000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
+               },
+               /* Peer 1 */ {
+                       .phys_start = 0x8dfa30000,
+                       .virt_start = 0x8dfa30000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
+               },
+               /* Peer 2 */ {
+                       .phys_start = 0x8dfa40000,
+                       .virt_start = 0x8dfa40000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+                               JAILHOUSE_MEM_ROOTSHARED,
+               },
                /* IVSHMEM shared memory region for 00:01.0 */
                JAILHOUSE_SHMEM_NET_REGIONS(0x8dfb00000, 1),
                /* RAM load */ {
@@ -120,7 +153,10 @@ struct {
                        .address = 0x01800000,
                        .pin_base = 160,
                        .pin_bitmap = {
-                       1 << (190 - 160), 0x0, 0x00, 0,
+                       /* vpci */
+                       1 << (189 - 160) |
+                       1 << (190 - 160),
+                       0x00, 0x00, 0,
                        },
                },
                {
@@ -133,11 +169,20 @@ struct {
        },
 
        .pci_devices = {
+               /* 00:00.0 */ {
+                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
+                       .bdf = 0 << 3,
+                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+                       .shmem_regions_start = 0,
+                       .shmem_dev_id = 2,
+                       .shmem_peers = 3,
+                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_UNDEFINED,
+               },
                /* 00:01.0 */ {
                        .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
                        .bdf = 1 << 3,
-                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
-                       .shmem_regions_start = 0,
+                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+                       .shmem_regions_start = 5,
                        .shmem_dev_id = 1,
                        .shmem_peers = 2,
                        .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
diff --git a/configs/arm64/k3-am654-idk.c b/configs/arm64/k3-am654-idk.c
index 0d6ae59a..bdd526a3 100644
--- a/configs/arm64/k3-am654-idk.c
+++ b/configs/arm64/k3-am654-idk.c
@@ -18,9 +18,9 @@
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
-       struct jailhouse_memory mem_regions[18];
+       struct jailhouse_memory mem_regions[23];
        struct jailhouse_irqchip irqchips[5];
-       struct jailhouse_pci_device pci_devices[1];
+       struct jailhouse_pci_device pci_devices[2];
 } __attribute__((packed)) config = {
        .header = {
                .signature = JAILHOUSE_SYSTEM_SIGNATURE,
@@ -65,6 +65,37 @@ struct {
        },
 
        .mem_regions = {
+               /* IVSHMEM shared memory regions for 00:00.0 (demo) */
+               {
+                       .phys_start = 0x8dfa00000,
+                       .virt_start = 0x8dfa00000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ,
+               },
+               {
+                       .phys_start = 0x8dfa10000,
+                       .virt_start = 0x8dfa10000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* Peer 0 */ {
+                       .phys_start = 0x8dfa20000,
+                       .virt_start = 0x8dfa20000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               /* Peer 1 */ {
+                       .phys_start = 0x8dfa30000,
+                       .virt_start = 0x8dfa30000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ,
+               },
+               /* Peer 2 */ {
+                       .phys_start = 0x8dfa40000,
+                       .virt_start = 0x8dfa40000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ,
+               },
                /* IVSHMEM shared memory region for 00:01.0 */
                JAILHOUSE_SHMEM_NET_REGIONS(0x8dfb00000, 0),
                /* RAM */ {
@@ -206,12 +237,22 @@ struct {
        },
 
        .pci_devices = {
+               /* 0001:00:00.0 */ {
+                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
+                       .domain = 1,
+                       .bdf = 0 << 3,
+                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+                       .shmem_regions_start = 0,
+                       .shmem_dev_id = 0,
+                       .shmem_peers = 3,
+                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_UNDEFINED,
+               },
                /* 0001:00:01.0 */ {
                        .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
                        .domain = 1,
                        .bdf = 1 << 3,
-                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
-                       .shmem_regions_start = 0,
+                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+                       .shmem_regions_start = 5,
                        .shmem_dev_id = 0,
                        .shmem_peers = 2,
                        .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
-- 
2.30.2

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/20220305030458.2938-4-mranostay%40ti.com.

Reply via email to