two questions when I add virtio net with virtio_console meanwhile in arm-vm project
hi, I had make virtio_console work OK on my environment(armv8), But I meet two question when I add virtio net with virtio_console meanwhile. Question1: "add_io_port_range@io.c:111 Requested ioport range 0x6200-0x6600" for VIRTIO CON overlaps with existing range 0x6200-0x6600 for VIRTIO PCI NET According to the print above: common_make_virtio_con(virtio_emul_vm, vm->pci, vm->io_port, VIRTIO_IOPORT_START, VIRTIO_IOPORT_SIZE, VIRTIO_INTERRUPT_PIN, VIRTIO_CON_PLAT_INTERRUPT_LINE, backend); common_make_virtio_net(virtio_emul_vm, vm->pci, vm->io_port, VIRTIO_IOPORT_START + 0x1000, VIRTIO_IOPORT_SIZE, VIRTIO_INTERRUPT_PIN, VIRTIO_NET_PLAT_INTERRUPT_LINE, backend); a、above two function,I found they use the same VIRTIO_IOPORT_START, I modify VIRTIO_IOPORT_START of common_make_virtio_net to (VIRTIO_IOPORT_START + 0x1000), is it OK? b、I also found(VIRTIO_CON_PLAT_INTERRUPT_LINE == VIRTIO_NET_PLAT_INTERRUPT_LINE),is that OK? Whether it should be make interrupt line different ? Question2: "_utspace_split_alloc@split.c:272 Failed to find any untyped capable of creating an object at address 0xc0001000 Failed to find device cap for 0xc0001000" According to the print above: a、my PCI region define as below: #define PCI_CFG_REGION_ADDR 0xC1000000 #define PCI_IO_REGION_ADDR 0xC0000000 #define PCI_CFG_REGION_SIZE 0x1000000 #define PCI_IO_REGION_SIZE 0x1000 #define PCI_CFG_BAR_MASK 0xFFFFFFFF I found 'virtio_net_init' and 'virtio_console_init' will call the same function 'install_virtio_vpci_device', net and console will have the same PCI_IO_REGION_ADDR ? is it OK? b、If I want to support two or muti virtio device, which should I add a new macro define for virtio_net in a? for example add PCI_IO_REGION_ADDR for net or add PCI_CFG_REGION_ADDR ? c、Can you give me some list file to change for support for support net and console meanwhile? Thank you very much.
Hello,
Sorry for the late reply. Thanks for highlighting this!
The issues you've identified have recently been fixed. If you update your checkouts of the 'camkes-arm-vm' and 'seL4_project_libs' repositories you should get the fixes that allow for multiple virtio PCI devices. If you want to just apply the changes directly, see the following changes:
camkes-arm-vm:https://github.com/SEL4PROJ/camkes-arm-vm/commit/b24769db73ea7696056763b0d75... and https://github.com/SEL4PROJ/camkes-arm-vm/commit/855b9028f91c718cb64d4b30ea0...
seL4_project_libs: https://github.com/SEL4PROJ/seL4_projects_libs/commit/cb2b459c09b3a942e42d11... , https://github.com/SEL4PROJ/seL4_projects_libs/commit/8ff01fd5e8deda3009cd02... and https://github.com/SEL4PROJ/seL4_projects_libs/commit/ad4d8b3414d0c9297f136e...
These changes make the ioport allocations more dynamic so you don't have to worry about overlapping regions. In addition it fixes this issue with 'install_virtio_vpci_device' being called multiple times.
Hope this helps. Let me know if you require any further help.
Alison.
________________________________
From: Devel
Hello,
Yes, my version has some different from the new lastest verison, I will update my checkouts, and try. Thank you very much
发件人: Felizzi, Alison (Data61, Kensington NSW) [mailto:Alison.Felizzi@data61.csiro.au]
发送时间: 2020年2月24日 12:46
收件人: yadong.li; devel@sel4.systems
主题: Re: two questions when I add virtio net with virtio_console meanwhile in arm-vm project
Hello,
Sorry for the late reply. Thanks for highlighting this!
The issues you've identified have recently been fixed. If you update your checkouts of the 'camkes-arm-vm' and 'seL4_project_libs' repositories you should get the fixes that allow for multiple virtio PCI devices. If you want to just apply the changes directly, see the following changes:
camkes-arm-vm:https://github.com/SEL4PROJ/camkes-arm-vm/commit/b24769db73ea7696056763b0d75... and https://github.com/SEL4PROJ/camkes-arm-vm/commit/855b9028f91c718cb64d4b30ea0...
seL4_project_libs: https://github.com/SEL4PROJ/seL4_projects_libs/commit/cb2b459c09b3a942e42d11... , https://github.com/SEL4PROJ/seL4_projects_libs/commit/8ff01fd5e8deda3009cd02... and https://github.com/SEL4PROJ/seL4_projects_libs/commit/ad4d8b3414d0c9297f136e...
These changes make the ioport allocations more dynamic so you don't have to worry about overlapping regions. In addition it fixes this issue with 'install_virtio_vpci_device' being called multiple times.
Hope this helps. Let me know if you require any further help.
Alison.
________________________________
From: Devel
participants (2)
-
Felizzi, Alison (Data61, Kensington NSW)
-
yadong.li