On 23.03.21 07:25, peng....@nxp.com wrote:
> From: Peng Fan <peng....@nxp.com>
> 
> Support virtio console

Not accurate: You also add virtio-blk devices.

Where do you take the memory from? Some words on how you rearrange
things would be good.

And there is no impact on the demo-inmate config?

> 
> Signed-off-by: Peng Fan <peng....@nxp.com>
> ---
>  configs/arm64/imx8mp-linux-demo.c | 81 ++++++++++++++++++++++++++-----
>  configs/arm64/imx8mp.c            | 80 ++++++++++++++++++++++++------
>  2 files changed, 134 insertions(+), 27 deletions(-)
> 
> diff --git a/configs/arm64/imx8mp-linux-demo.c 
> b/configs/arm64/imx8mp-linux-demo.c
> index ff0cdffb..1e0a9f1c 100644
> --- a/configs/arm64/imx8mp-linux-demo.c
> +++ b/configs/arm64/imx8mp-linux-demo.c
> @@ -21,9 +21,9 @@
>  struct {
>       struct jailhouse_cell_desc cell;
>       __u64 cpus[1];
> -     struct jailhouse_memory mem_regions[15];
> +     struct jailhouse_memory mem_regions[23];
>       struct jailhouse_irqchip irqchips[2];
> -     struct jailhouse_pci_device pci_devices[2];
> +     struct jailhouse_pci_device pci_devices[4];
>  } __attribute__((packed)) config = {
>       .cell = {
>               .signature = JAILHOUSE_CELL_DESC_SIGNATURE,
> @@ -43,7 +43,8 @@ struct {
>       },
>  
>       .mem_regions = {
> -             /* IVHSMEM shared memory region for 00:00.0 (demo )*/ {
> +             /* IVSHMEM shared memory region (virtio-blk front) */
> +             {
>                       .phys_start = 0xfd900000,
>                       .virt_start = 0xfd900000,
>                       .size = 0x1000,
> @@ -52,25 +53,57 @@ struct {
>               {
>                       .phys_start = 0xfd901000,
>                       .virt_start = 0xfd901000,
> +                     .size = 0xdf000,
> +                     .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
> +                             JAILHOUSE_MEM_ROOTSHARED,
> +             },
> +             { 0 },
> +             { 0 },
> +             /* IVSHMEM shared memory region (virtio-con front) */
> +             {
> +                     .phys_start = 0xfd9e0000,
> +                     .virt_start = 0xfd9e0000,
> +                     .size = 0x1000,
> +                     .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
> +             },
> +             {
> +                     .phys_start = 0xfd9e1000,
> +                     .virt_start = 0xfd9e1000,
> +                     .size = 0xf000,
> +                     .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
> +                             JAILHOUSE_MEM_ROOTSHARED,
> +             },
> +             { 0 },
> +             { 0 },
> +             /* IVHSMEM shared memory region for 00:00.0 (demo )*/
> +             {
> +                     .phys_start = 0xfd9f0000,
> +                     .virt_start = 0xfd9f0000,
> +                     .size = 0x1000,
> +                     .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
> +             },
> +             {
> +                     .phys_start = 0xfd9f1000,
> +                     .virt_start = 0xfd9f1000,
>                       .size = 0x9000,
>                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
>                               JAILHOUSE_MEM_ROOTSHARED,
>               },
>               {
> -                     .phys_start = 0xfd90a000,
> -                     .virt_start = 0xfd90a000,
> +                     .phys_start = 0xfd9fa000,
> +                     .virt_start = 0xfd9fa000,
>                       .size = 0x2000,
>                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
>               },
>               {
> -                     .phys_start = 0xfd90c000,
> -                     .virt_start = 0xfd90c000,
> +                     .phys_start = 0xfd9fc000,
> +                     .virt_start = 0xfd9fc000,
>                       .size = 0x2000,
>                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
>               },
>               {
> -                     .phys_start = 0xfd90e000,
> -                     .virt_start = 0xfd90e000,
> +                     .phys_start = 0xfd9fe000,
> +                     .virt_start = 0xfd9fe000,
>                       .size = 0x2000,
>                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
>                               JAILHOUSE_MEM_ROOTSHARED,
> @@ -143,22 +176,44 @@ struct {
>       },
>  
>       .pci_devices = {
> +             {
> +                     .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
> +                     .domain = 1,
> +                     .bdf = 2 << 3,
> +                     .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
> +                     .shmem_regions_start = 0,
> +                     .shmem_dev_id = 1,
> +                     .shmem_peers = 2,
> +                     .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VIRTIO_FRONT +
> +                             VIRTIO_DEV_BLOCK,
> +             },
> +             {
> +                     .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
> +                     .domain = 1,
> +                     .bdf = 3 << 3,
> +                     .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
> +                     .shmem_regions_start = 4,
> +                     .shmem_dev_id = 1,
> +                     .shmem_peers = 2,
> +                     .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VIRTIO_FRONT +
> +                             VIRTIO_DEV_CONSOLE,
> +             },
>               { /* IVSHMEM 00:00.0 (demo) */
>                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
> -                     .domain = 0,
> +                     .domain = 1,

Please pull patch 5 before this one and do all the domain adjustments in
one place.

>                       .bdf = 0 << 3,
>                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
> -                     .shmem_regions_start = 0,
> +                     .shmem_regions_start = 8,
>                       .shmem_dev_id = 2,
>                       .shmem_peers = 3,
>                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_UNDEFINED,
>               },
>               { /* IVSHMEM 00:01.0 (networking) */
>                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
> -                     .domain = 0,
> +                     .domain = 1,
>                       .bdf = 1 << 3,
>                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
> -                     .shmem_regions_start = 5,
> +                     .shmem_regions_start = 13,
>                       .shmem_dev_id = 1,
>                       .shmem_peers = 2,
>                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
> diff --git a/configs/arm64/imx8mp.c b/configs/arm64/imx8mp.c
> index a1e221f9..3f758980 100644
> --- a/configs/arm64/imx8mp.c
> +++ b/configs/arm64/imx8mp.c
> @@ -18,9 +18,9 @@
>  struct {
>       struct jailhouse_system header;
>       __u64 cpus[1];
> -     struct jailhouse_memory mem_regions[15];
> +     struct jailhouse_memory mem_regions[23];
>       struct jailhouse_irqchip irqchips[3];
> -     struct jailhouse_pci_device pci_devices[2];
> +     struct jailhouse_pci_device pci_devices[4];
>  } __attribute__((packed)) config = {
>       .header = {
>               .signature = JAILHOUSE_SYSTEM_SIGNATURE,
> @@ -42,7 +42,7 @@ struct {
>                       .pci_mmconfig_base = 0xfd700000,
>                       .pci_mmconfig_end_bus = 0,
>                       .pci_is_virtual = 1,
> -                     .pci_domain = 0,
> +                     .pci_domain = 1,
>  
>                       .arm = {
>                               .gic_version = 3,
> @@ -68,7 +68,8 @@ struct {
>       },
>  
>       .mem_regions = {
> -             /* IVHSMEM shared memory region for 00:00.0 (demo )*/ {
> +             /* IVSHMEM shared memory region (virtio-blk back-end) */
> +             {
>                       .phys_start = 0xfd900000,
>                       .virt_start = 0xfd900000,
>                       .size = 0x1000,
> @@ -77,24 +78,53 @@ struct {
>               {
>                       .phys_start = 0xfd901000,
>                       .virt_start = 0xfd901000,
> +                     .size = 0xdf000,
> +                     .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
> +             },
> +             { 0 },
> +             { 0 },
> +             /* IVSHMEM shared memory region (virtio-con back-end) */
> +             {
> +                     .phys_start = 0xfd9e0000,
> +                     .virt_start = 0xfd9e0000,
> +                     .size = 0x1000,
> +                     .flags = JAILHOUSE_MEM_READ,
> +             },
> +             {
> +                     .phys_start = 0xfd9e1000,
> +                     .virt_start = 0xfd9e1000,
> +                     .size = 0xf000,
> +                     .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
> +             },
> +             { 0 },
> +             { 0 },
> +             /* IVHSMEM shared memory region for 00:00.0 (demo )*/ {
> +                     .phys_start = 0xfd9f0000,
> +                     .virt_start = 0xfd9f0000,
> +                     .size = 0x1000,
> +                     .flags = JAILHOUSE_MEM_READ,
> +             },
> +             {
> +                     .phys_start = 0xfd9f1000,
> +                     .virt_start = 0xfd9f1000,
>                       .size = 0x9000,
>                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE ,
>               },
>               {
> -                     .phys_start = 0xfd90a000,
> -                     .virt_start = 0xfd90a000,
> +                     .phys_start = 0xfd9fa000,
> +                     .virt_start = 0xfd9fa000,
>                       .size = 0x2000,
>                       .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE ,
>               },
>               {
> -                     .phys_start = 0xfd90c000,
> -                     .virt_start = 0xfd90c000,
> +                     .phys_start = 0xfd9fc000,
> +                     .virt_start = 0xfd9fc000,
>                       .size = 0x2000,
>                       .flags = JAILHOUSE_MEM_READ,
>               },
>               {
> -                     .phys_start = 0xfd90e000,
> -                     .virt_start = 0xfd90e000,
> +                     .phys_start = 0xfd9fe000,
> +                     .virt_start = 0xfd9fe000,
>                       .size = 0x2000,
>                       .flags = JAILHOUSE_MEM_READ,
>               },
> @@ -167,22 +197,44 @@ struct {
>       },
>  
>       .pci_devices = {
> +             {
> +                     .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
> +                     .domain = 1,
> +                     .bdf = 2 << 3,
> +                     .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
> +                     .shmem_regions_start = 0,
> +                     .shmem_dev_id = 0,
> +                     .shmem_peers = 2,
> +                     .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VIRTIO_BACK +
> +                             VIRTIO_DEV_BLOCK,
> +             },
> +             {
> +                     .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
> +                     .domain = 1,
> +                     .bdf = 3 << 3,
> +                     .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
> +                     .shmem_regions_start = 4,
> +                     .shmem_dev_id = 0,
> +                     .shmem_peers = 2,
> +                     .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VIRTIO_BACK +
> +                             VIRTIO_DEV_CONSOLE,
> +             },
>               { /* IVSHMEM 0000:00:00.0 (demo) */
>                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
> -                     .domain = 0,
> +                     .domain = 1,
>                       .bdf = 0 << 3,
>                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
> -                     .shmem_regions_start = 0,
> +                     .shmem_regions_start = 8,
>                       .shmem_dev_id = 0,
>                       .shmem_peers = 3,
>                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_UNDEFINED,
>               },
>               { /* IVSHMEM 0000:00:01.0 (networking) */
>                       .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
> -                     .domain = 0,
> +                     .domain = 1,
>                       .bdf = 1 << 3,
>                       .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
> -                     .shmem_regions_start = 5,
> +                     .shmem_regions_start = 13,
>                       .shmem_dev_id = 0,
>                       .shmem_peers = 2,
>                       .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
> 

Jan

-- 
Siemens AG, T RDA IOT
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 jailhouse-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/181c45a5-3c2f-4244-7681-119bdab4be5b%40siemens.com.

Reply via email to