On 4/8/25 12:57, Bernhard Beschow wrote:
Am 8. April 2025 16:09:58 UTC schrieb Guenter Roeck <li...@roeck-us.net>:
On 4/6/25 11:08, Bernhard Beschow wrote:
[ .. ]
Yeah, it works with Buildroot as described in the handbook. When I append
`-netdev user,id=net0 -device virtio-net-pci,netdev=net0` on the cli I can
`wget http://www.google.com` successfully. When I omit it there is no network
connectivity. This is with a 6.6.23 vendor kernel.
I had no luck with virtio-net-pci. virtio-pci works for me, but I can not get
real PCI devices
(such as nvme or scsi adapters) to work.
I now tested with the latest Buildroot recipe, changing to upstream kernel
version 6.14 and using the defconfig. The `wget` command still works for me
with virtio-net-pci. However, I can confirm that I need your xhci patches for
the usb storage device to be detected.
Following up on this, my problem is that adding "-netdev user,id=net0 -device
virtio-net-pci,netdev=net0"
to the command line adds a _second_ Ethernet interface, in addition to the
default one.
This results in
qemu-system-arm: warning: nic imx.enet.0 has no peer
reported when qemu starts.
I get this too when using virtio-net-pci successfully.
I can not get that second interface to work, probably because of some userspace
issue.
Anyway, I never see any interrupts on the virtual PCI interface. From
/proc/interrupts:
277: 0 PCI-MSI 524288 Edge virtio0-config
278: 0 PCI-MSI 524289 Edge virtio0-input.0
279: 0 PCI-MSI 524290 Edge virtio0-output.0
I get:
206: 0 0 0 0 PCI-MSI 524288 Edge
virtio0-config
207: 3 0 0 0 PCI-MSI 524289 Edge
virtio0-input.0
208: 8 0 0 0 PCI-MSI 524290 Edge
virtio0-output.0
Note that I'm using four CPUs, i.e. `-smp 4`.
I must be missing something. Can you send me your complete qemu command line ?
I'll also try building a buildroot image to see where it gets me.
That may work for virtio-net-pci, but it doesn't work for other PCI(e) drivers.
If I try to attach any other PCIe devices, the device is reported with lspci but
then its initialization times out because it does not get any interrupts.
Indeed, trying with e1000e:
205: 0 0 0 0 PCI-MSI 0 Edge PCIe PME
206: 74 0 0 0 PCI-MSI 524288 Edge
eth1-rx-0
207: 20 0 0 0 PCI-MSI 524289 Edge
eth1-tx-0
208: 32 0 0 0 PCI-MSI 524290 Edge eth1
But I get this repeatedly with varying CPUs:
[ 14.657163] e1000e 0000:01:00.0 eth1: NIC Link is Up 1000 Mbps Full Duplex,
Flow Control: Rx/Tx
[ 19.980452] e1000e 0000:01:00.0 eth1: NETDEV WATCHDOG: CPU: 0: transmit
queue 0 timed out 5312 ms
[ 19.982491] e1000e 0000:01:00.0 eth1: Reset adapter unexpectedly
Tt turns out that sabrelite has the same problem.
Did it work with QEMU 9.2?
No, the pcie interfaces on sabrelite don't instantiate for me with qemu 9.2
(9.2.3,
more specifically). I see the pcie root port, but nothing behind it.
Guenter