> Subject: Re: [PATCH 4/5] imx8mp: support virtio console > > On 23.03.21 07:25, [email protected] wrote: > > From: Peng Fan <[email protected]> > > > > Support virtio console > > Not accurate: You also add virtio-blk devices. > > Where do you take the memory from?
We reserved 2MB ivshmem in the very beginning, so no need reserve more for virtio. Some words on how you rearrange > things would be good. > > And there is no impact on the demo-inmate config? Not check that, I'll check. > > > > > Signed-off-by: Peng Fan <[email protected]> > > --- > > 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. Sure. Thanks, Peng. > > > .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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/DB6PR0402MB276052F96B3F2A0F956E0EAE88649%40DB6PR0402MB2760.eurprd04.prod.outlook.com.
