Hi Pavel, Paolo, I tried to rerun my environment to test however it seems the interface has changed a little and my standard program options cause complaints. Unfortunately I don’t have too much time to dig through at the moment.
My standard startup command is: $ ./qemu-local/bin/qemu-system-i386 -hda sdd2gb-uno1483-16.04-2.0-dev.img -boot d -k en-us -device mioe3680_pci,canbus1=canbus0,host1=vcan0,canbus2=canbus1,host2=vcan1 -m size=2048 -netdev user,id=user.0 -device e1000,netdev=user.0 -redir tcp:5022::22 -enable-kvm & Best regards, Deniz Sent from my iPhone Deniz Eren +61 400 307 762 > On 31 Jan 2018, at 9:12 am, Pavel Pisa <p...@cmp.felk.cvut.cz> wrote: > > Hello Paolo, > > thanks much for conversion to acceptable QOM model. > >> On Tuesday 30 of January 2018 15:15:22 Paolo Bonzini wrote: >>> On 25/01/2018 22:33, Pavel Pisa wrote: >>> Hello Paolo, >>> >>> thanks for suggestions. I understand and fully agree with your >>> request to switch to QOM. I have succeed with that for CAN devices >>> some time ago. It worth to be done for the rest of the objects >>> but I fear that I do not find time to complete QOMification >>> in reasonable future. Contributions/suggestions from other >>> are welcomed. I can look for students for GSoC at our university >>> or under other funding. >> >> Please take a look at branch can-pci-qom of github.com/bonzini/qemu.git. >> Apart from QOMification of the backend include, I simplified the IRQ >> handling in can_kvaser_pci (fixing bugs too I think), and removed an >> unnecessary mutex. I also moved the files to net/can and hw/net/can so >> that in the future Jason (networking maintainer) can take care of pull >> requests. >> >> I might have broken something, and the top commit in particular is >> completely untested. > > I have run basic test with Linux kernel on both sides > for one kavser_pci card on guest side and vcan (no real interface) > on host side. > > Mesages exchange tests passed and looks OK. > > I have used next parameters > > -object can-bus,id=canbus0 \ > -device kvaser_pci,canbus=canbus0 \ > -object can-host-socketcan,if=can0,canbus=canbus0,id=canbus0-socketcan > > The id parameter is required for "can-host-socketcan" object. > Else next error is printed > > qemu-system-x86_64: -object can-host-socketcan,if=can0,canbus=canbus0: > Parameter 'id' is missing > > If "-object can-bus,id=canbus0" is missing then next error is reported > > qemu-system-x86_64: -object > can-host-socketcan,if=can0,canbus=canbus0,id=canbus0-socketcan: Device > 'canbus0' not found > > I have inspected through monitor the state of objects > > (qemu) qom-list /objects > canbus0-socketcan (child<can-host-socketcan>) > type (string) > canbus0 (child<can-bus>) > > (qemu) info qom-tree > /machine (pc-i440fx-2.12-machine) > ... > /peripheral-anon (container) > /device[1] (kvaser_pci) > /bus master[0] (qemu:memory-region) > /kvaser_pci-xilinx[0] (qemu:memory-region) > /kvaser_pci-s5920[0] (qemu:memory-region) > /kvaser_pci-sja[0] (qemu:memory-region) > /bus master container[0] (qemu:memory-region) > ... > > > (qemu) qom-list /objects > canbus0-socketcan (child<can-host-socketcan>) > type (string) > canbus0 (child<can-bus>) > > (qemu) qom-list /machine/peripheral-anon/device[1] > bus master container[0] (child<qemu:memory-region>) > canbus (link<can-bus>) > rombar (uint32) > hotpluggable (bool) > x-pcie-lnksta-dllla (bool) > kvaser_pci-sja[0] (child<qemu:memory-region>) > multifunction (bool) > hotplugged (bool) > parent_bus (link<bus>) > romfile (str) > kvaser_pci-s5920[0] (child<qemu:memory-region>) > x-pcie-extcap-init (bool) > command_serr_enable (bool) > addr (int32) > type (string) > legacy-addr (str) > kvaser_pci-xilinx[0] (child<qemu:memory-region>) > realized (bool) > bus master[0] (child<qemu:memory-region>) > > From the user point of view, it would be nice if "can-bus" > can be populated when required automatically. > > I am not sure, but may it be that it would worth to > push can-bus objects under some category/specific > container. The path /objects is quite wide. > Into something like /object/can-bus or /net/can. > > But generally thanks much, the progress you have made > in one day is really great. I hope that others check > your branch. I have pushed your unmodified version into > "can-pci-qom" branch of my repo > > https://gitlab.fel.cvut.cz/canbus/qemu-canbus/tree/can-pci-qom > > It would be great if others can check that everything > works in their setup. I think that then it can be pushed > into mainline and some usability improvements can be > done/experiment with later. > > Thanks much, > > > Pavel Pisa