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 firstname.lastname@example.org on behalf of yadong.li email@example.com Sent: Friday, February 21, 2020 9:34 PM To: firstname.lastname@example.org email@example.com Subject: [seL4] 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: "firstname.lastname@example.org: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: "email@example.com: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.
_______________________________________________ Devel mailing list Devel@sel4.systems https://sel4.systems/lists/listinfo/devel