On 08.06.20 12:42, [email protected] wrote:
> 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 ,
> + },
You are missing the state table. Was this tested?
Please derive from existing examples, using the same patterns and sizes.
Reference is qemu-arm64.
Jan
> + /* 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,
> },
> },
>
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
--
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/d1f2b18a-2891-61c3-d66b-ce0c95575c09%40siemens.com.