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/b24769db73ea…
and
https://github.com/SEL4PROJ/camkes-arm-vm/commit/855b9028f91c718cb64d4b30ea…
seL4_project_libs:
https://github.com/SEL4PROJ/seL4_projects_libs/commit/cb2b459c09b3a942e42d1…
,
https://github.com/SEL4PROJ/seL4_projects_libs/commit/8ff01fd5e8deda3009cd0…
and
https://github.com/SEL4PROJ/seL4_projects_libs/commit/ad4d8b3414d0c9297f136…
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 <devel-bounces(a)sel4.systems> on behalf of yadong.li
<yadong.li(a)horizon.ai>
Sent: Friday, February 21, 2020 9:34 PM
To: devel(a)sel4.systems <devel(a)sel4.systems>
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:
"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.
_______________________________________________
Devel mailing list
Devel(a)sel4.systems
https://sel4.systems/lists/listinfo/devel