Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#539 closed defect (fixed)

PCI NICs not working under newer QEMU's

Reported by: Jakub Jermář Owned by:
Priority: major Milestone: 0.6.0
Component: helenos/net/other Version: mainline
Keywords: QEMU, nic Cc:
Blocker for: Depends on:
See also:


On 4.5.2013 20:50, Jakub Jermar wrote:

did anyone succeed in in running HelenOS networking on the newer
versions of QEMU? The last version in which I can still ping the default
gateway at is 1.2.

On 7.5.2013 13:01, Jiri Svoboda wrote:

For me, with current mainline
Qemu 1.4.0

  • working: ne2k
  • not working: e1k, rtl8139

Qemu 1.0.1

  • working: ne2k, e1k, rtl8139

I tend to use ne2k so I didn't notice..

Change History (2)

comment:1 Changed 8 years ago by Martin Decky

I am already investigating the problem (in QEMU 1.4.1) and it has something to do with the way the TX descriptors and frames are transferred from the memory to the NIC. If I replace the pci_dma_read() and pci_dma_write() calls in the QEMU E1000 model (hw/e1000.c) with the previously used cpu_physical_memory_read() and cpu_physical_memory_write() calls, our driver works again.

In other words, a workaround is to revert the following QEMU changeset:;a=commitdiff;h=62ecbd353d25e62c4a6c327ea88ba5404e13507a

I am yet to find out the root cause of the problem, because the pci_dma_*() calls in the model are technically correct and I don't see any obvious bug in their implementation so far.

comment:2 Changed 8 years ago by Martin Decky

Resolution: fixed
Status: newclosed

Fixed in mainline,1828.

Last edited 8 years ago by Martin Decky (previous) (diff)
Note: See TracTickets for help on using tickets.