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.
