From: Nikhil Devshatwar <[email protected]>

Add a new IVSHMEM PCIe virtual device for a 2 peer
IVSHMEM demo communication.
 (0 = root cell, 1 = baremetal / linux-demo)
Also add the corresponding memory regions for state and output
aligned at 64k boundary.

Update the bdf numbers for consistency across all platforms.
Assign domain = 4 since the platform already has 4 physical
controllers.

Signed-off-by: Nikhil Devshatwar <[email protected]>
---
 configs/arm64/k3-j721e-evm-linux-demo.c | 52 ++++++++++++++++++++----
 configs/arm64/k3-j721e-evm.c            | 53 ++++++++++++++++++++-----
 2 files changed, 89 insertions(+), 16 deletions(-)

diff --git a/configs/arm64/k3-j721e-evm-linux-demo.c 
b/configs/arm64/k3-j721e-evm-linux-demo.c
index cda1614a..05517751 100644
--- a/configs/arm64/k3-j721e-evm-linux-demo.c
+++ b/configs/arm64/k3-j721e-evm-linux-demo.c
@@ -24,9 +24,9 @@
 struct {
        struct jailhouse_cell_desc cell;
        __u64 cpus[1];
-       struct jailhouse_memory mem_regions[18];
+       struct jailhouse_memory mem_regions[22];
        struct jailhouse_irqchip irqchips[4];
-       struct jailhouse_pci_device pci_devices[1];
+       struct jailhouse_pci_device pci_devices[2];
        __u32 stream_ids[2];
 } __attribute__((packed)) config = {
        .cell = {
@@ -56,8 +56,35 @@ struct {
        },
 
        .mem_regions = {
-               /* IVSHMEM shared memory region for 00:01.0 */
-               JAILHOUSE_SHMEM_NET_REGIONS(0x89fe00000, 1),
+               /* IVSHMEM shared memory regions for 00:00.0 (demo) */
+               {
+                       .phys_start = 0x89fe00000,
+                       .virt_start = 0x89fe00000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
+               },
+               {
+                       .phys_start = 0x89fe10000,
+                       .virt_start = 0x89fe10000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED |
+                                JAILHOUSE_MEM_WRITE ,
+               },
+               {
+                       .phys_start = 0x89fe20000,
+                       .virt_start = 0x89fe20000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
+               },
+               {
+                       .phys_start = 0x89fe30000,
+                       .virt_start = 0x89fe30000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED |
+                                JAILHOUSE_MEM_WRITE ,
+               },
+               /* IVSHMEM shared memory regions for 00:01.0 (networking) */
+               JAILHOUSE_SHMEM_NET_REGIONS(0x89fe40000, 1),
                /* ctrl mmr */ {
                        .phys_start = 0x00100000,
                        .virt_start = 0x00100000,
@@ -210,13 +237,24 @@ struct {
        },
 
        .pci_devices = {
-               /* 00:01.0 */ {
+               /* 00:00.0 (demo) */ {
                        .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
-                       .bdf = 1 << 3,
-                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
+                       .domain = 4,
+                       .bdf = 0 << 3,
+                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
                        .shmem_regions_start = 0,
                        .shmem_dev_id = 1,
                        .shmem_peers = 2,
+                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_UNDEFINED,
+               },
+               /* 00:01.0 (networking) */ {
+                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
+                       .domain = 4,
+                       .bdf = 1 << 3,
+                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+                       .shmem_regions_start = 4,
+                       .shmem_dev_id = 1,
+                       .shmem_peers = 2,
                        .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
                },
        },
diff --git a/configs/arm64/k3-j721e-evm.c b/configs/arm64/k3-j721e-evm.c
index 3ac0b57e..41f4c456 100644
--- a/configs/arm64/k3-j721e-evm.c
+++ b/configs/arm64/k3-j721e-evm.c
@@ -19,9 +19,9 @@
 struct {
        struct jailhouse_system header;
        __u64 cpus[1];
-       struct jailhouse_memory mem_regions[36];
+       struct jailhouse_memory mem_regions[40];
        struct jailhouse_irqchip irqchips[6];
-       struct jailhouse_pci_device pci_devices[1];
+       struct jailhouse_pci_device pci_devices[2];
        __u32 stream_ids[30];
 } __attribute__((packed)) config = {
        .header = {
@@ -44,7 +44,7 @@ struct {
                        .pci_mmconfig_base = 0x76000000,
                        .pci_mmconfig_end_bus = 0,
                        .pci_is_virtual = 1,
-                       .pci_domain = 3,
+                       .pci_domain = 4,
                        .iommu_units= {
                                {
                                        .type = JAILHOUSE_IOMMU_SMMUV3,
@@ -97,8 +97,33 @@ struct {
        },
 
        .mem_regions = {
-               /* IVSHMEM shared memory region for 00:01.0 */
-               JAILHOUSE_SHMEM_NET_REGIONS(0x89fe00000, 0),
+               /* IVSHMEM shared memory regions for 00:00.0 (demo) */
+               {
+                       .phys_start = 0x89fe00000,
+                       .virt_start = 0x89fe00000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ,
+               },
+               {
+                       .phys_start = 0x89fe10000,
+                       .virt_start = 0x89fe10000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               {
+                       .phys_start = 0x89fe20000,
+                       .virt_start = 0x89fe20000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+               },
+               {
+                       .phys_start = 0x89fe30000,
+                       .virt_start = 0x89fe30000,
+                       .size = 0x10000,
+                       .flags = JAILHOUSE_MEM_READ,
+               },
+               /* IVSHMEM shared memory regions for 00:01.0 (networking) */
+               JAILHOUSE_SHMEM_NET_REGIONS(0x89fe40000, 0),
                /* ctrl mmr */ {
                        .phys_start = 0x00100000,
                        .virt_start = 0x00100000,
@@ -374,14 +399,24 @@ struct {
        },
 
        .pci_devices = {
-               /* 0003:00:01.0 */ {
+               /* 00:00.0 (demo) */ {
                        .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
-                       .domain = 3,
-                       .bdf = 1 << 3,
-                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
+                       .domain = 4,
+                       .bdf = 0 << 3,
+                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
                        .shmem_regions_start = 0,
                        .shmem_dev_id = 0,
                        .shmem_peers = 2,
+                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_UNDEFINED,
+               },
+               /* 00:01.0 (networking) */ {
+                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
+                       .domain = 4,
+                       .bdf = 1 << 3,
+                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+                       .shmem_regions_start = 4,
+                       .shmem_dev_id = 0,
+                       .shmem_peers = 2,
                        .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
                },
        },
-- 
2.17.1

-- 
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/20200608104255.18358-5-nikhil.nd%40ti.com.

Reply via email to