| Branch: | Revision:

root / hw / rtl8139.c @ 1a1ea6f0

History | View | Annotate | Download (99.2 kB)

# Date Author Comment
fdac1d99 07/11/2010 11:15 pm Michael S. Tsirkin

rtl8139: address TODOs

Make rtl8139 spec compliant, fixing reset values
for command register.

Signed-off-by: Michael S. Tsirkin <>

b80d4a98 07/11/2010 08:00 pm Isaku Yamahata

pci: don't overwrite multi functio bit in pci header type.

Don't overwrite pci header type.
Otherwise, multi function bit which pci_init_header_type() sets
appropriately is lost.
Anyway PCI_HEADER_TYPE_NORMAL is zero, so it is unnecessary to zero
which is already zero cleared....

05447803 02/23/2010 09:23 pm Frediano Ziglio

rewrote timer implementation for rtl8139.

Add a QEMU timer only when needed (timeout status not set, timeout
irq wanted and timer set).

This patch is required for Darwin. Patch has been tested under
FreeBSD, Darwin and Linux.

Signed-off-by: Frediano Ziglio <>...

4ef1a3d3 01/20/2010 12:31 am Igor V. Kovalenko

rtl8139: fix clang reporting unused assignment of VLAN tagging data

Currently we do not implement VLAN tagging for rtl8139(C+),
still data is read from ring buffer headers.

- augment unused assignment with TODO item
- cast txdw1 to void for now

Signed-off-by: Igor V. Kovalenko <>...

0b5b3547 12/23/2009 04:35 pm Michael S. Tsirkin

rtl: switch to symbolic names for pci registers

No functional changes. I verified that the generated binary
does not change.

Signed-off-by: Michael S. Tsirkin <>
Acked-by: Juan Quintela <>
Acked-by: Glauber Costa <>

c2039bd0 12/18/2009 07:26 pm Anthony Liguori

Support PCI based option rom loading

Currently, we preload option roms into the option rom space in memory. This
prevents DDIM from functioning correctly which severely limits the number
of roms we can support.

This patch introduces a pci_add_option_rom() which registers the...

8c52c8f3 12/18/2009 07:26 pm Gerd Hoffmann

pci romfiles: add property, add default to PCIDeviceInfo

This patch adds a romfile property to the pci bus. It allows to specify
a romfile to load into the rom bar of the pci device. The default value
comes from a new field in PCIDeviceInfo. The property allows to change...

be73cfe2 12/03/2009 06:05 pm Juan Quintela

savevm: Port to qdev.vmsd all devices that have qdev

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

1673ad51 12/03/2009 05:41 pm Mark McLoughlin

net: convert rtl8139 to NICState

Signed-off-by: Mark McLoughlin <>
Signed-off-by: Anthony Liguori <>

2bc6f59b 12/02/2009 04:57 pm Jean-Christophe DUBOIS

Fix qemu_malloc/qemu_free use in rtl8139.c

rtl8139.c is using malloc()/free() instead of qemu_malloc()/qemu_free().
Fix it.

Signed-off-by: Jean-Christophe DUBOIS <>
Signed-off-by: Anthony Liguori <>

6e355d90 11/09/2009 04:43 pm Isaku Yamahata

pci: introduce pcibus_t to represent pci bus address/size instead of uint32_t

This patch is preliminary for 64 bit BAR support.
Introduce dedicated type, pcibus_t, to represent pci bus address/size
instead of uint32_t.
Later this type will be changed to uint64_t....

0392a017 11/09/2009 04:43 pm Isaku Yamahata

pci: s/PCI_ADDRESS_SPACE_/PCI_BASE_ADDRESS_SPACE_/ to match pci_regs.h

make constants for pci base address match pci_regs.h by

Signed-off-by: Isaku Yamahata <>
Acked-by: Michael S. Tsirkin <>...

c1699988 11/07/2009 10:06 am Glauber Costa

v3: don't call reset functions on cpu initialization

There is absolutely no need to call reset functions when initializing
devices. Since we are already registering them, calling qemu_system_reset()
should suffice. Actually, it is what happens when we reboot the machine,...

060110c3 10/27/2009 07:28 pm Juan Quintela

rtl8139: port to vmstate

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

9d29cdea 10/27/2009 07:28 pm Juan Quintela

rtl8139: port TallyCounters to vmstate

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

254111ec 10/27/2009 07:28 pm Gerd Hoffmann

rtl8139: use qdev properties for configuration.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

7f23f812 10/05/2009 05:32 pm Michael S. Tsirkin

qemu/qdev: type safety in reset handler

Add type safety to qdev reset handlers, by declaring them as
DeviceState * rather than void *.

Signed-off-by: Michael S. Tsirkin <>
Signed-off-by: Anthony Liguori <>

e3936fa5 10/05/2009 05:32 pm Gerd Hoffmann

pci: move unregister from PCIDevice to PCIDeviceInfo

One more cleanup while being at it ;)

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

c227f099 10/02/2009 12:12 am Anthony Liguori

Revert "Get rid of _t suffix"

In the very least, a change like this requires discussion on the list.

The naming convention is goofy and it causes a massive merge problem. Something
like this must be presented on the list first so people can provide input...

99a0949b 10/01/2009 09:45 pm malc

Get rid of _t suffix

Some not so obvious bits, slirp and Xen were left alone for the time

Signed-off-by: malc <>

6ee093c9 09/11/2009 06:19 pm Juan Quintela

Unexport ticks_per_sec variable. Create get_ticks_per_sec() function

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

f82de8f0 09/09/2009 10:57 pm Gerd Hoffmann

qdev: convert rtl8139 to reset

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

efd6dd45 08/28/2009 04:46 am Juan Quintela

rtl8139: Remove unneeded double indirection of PCIRTL8139State

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

6597ebbb 08/28/2009 04:46 am Juan Quintela

rtl8139: remove pointless cast from void *

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

81a322d4 08/28/2009 04:43 am Gerd Hoffmann

qdev: add return value to init() callbacks.

Sorry folks, but it has to be. One more of these invasive qdev patches.

We have a serious design bug in the qdev interface: device init
callbacks can't signal failure because the init() callback has no
return value. This patch fixes it....

d60efc6b 08/25/2009 09:29 pm Blue Swirl

Make CPURead/WriteFunc structure 'const'

Signed-off-by: Blue Swirl <>

660f11be 08/01/2009 12:16 am Blue Swirl

Fix Sparse warnings: "Using plain integer as NULL pointer"

Signed-off-by: Blue Swirl <>

0aab0d3a 07/09/2009 03:07 pm Gerd Hoffmann

qdev: update pci device registration.

Makes pci_qdev_register take a PCIDeviceInfo struct instead of a bunch
of parameters. Also adds config_read and config_write callbacks to
PCIDeviceInfo, so drivers needing these can be converted to the qdev
device API too....

a08d4367 06/29/2009 10:18 pm Jan Kiszka

Revert "Introduce reset notifier order"

This reverts commit 8217606e6edb49591b4a6fd5a0d1229cebe470a9 (and
updates later added users of qemu_register_reset), we solved the
problem it originally addressed less invasively.

Signed-off-by: Jan Kiszka <>...

bc26e55a 06/17/2009 08:01 pm Blue Swirl

Revert "Update irqs on reset and device load"

This reverts commit 3dcd219f09d6c1817bf9a132899e6b925f7a0914.

It is incorrect to call qemu_irq functions (or any other functions that
access other device state) during savevm/loadvm.

Signed-off-by: Blue Swirl <>

28c2c264 06/16/2009 11:18 pm Avi Kivity

Rename pci_register_io_region() to pci_register_bar()

This function is used to manage a PCI BAR, so make the more generic
pci_register_io_region() available to other uses.

Signed-off-by: Avi Kivity <>
Signed-off-by: Anthony Liguori <>

1eed09cb 06/16/2009 11:18 pm Avi Kivity

Remove io_index argument from cpu_register_io_memory()

The parameter is always zero except when registering the three internal
io regions (ROM, unassigned, notdirty). Remove the parameter to reduce
the API's power, thus facilitating future change.

Signed-off-by: Avi Kivity <>...

f8e76fbf 06/11/2009 02:08 am Anthony Liguori

Merge branch 'net-queue'

  • net-queue: (28 commits)
    virtio-net: Increase filter and control limits
    virtio-net: Add new RX filter controls
    virtio-net: MAC filter optimization
    virtio-net: Fix MAC filter overflow handling
    virtio-net: reorganize receive_filter()...
3dcd219f 06/09/2009 08:11 pm Blue Swirl

Update irqs on reset and device load

Signed-off-by: Blue Swirl <>

32c86e95 06/09/2009 06:02 pm Blue Swirl

Register reset functions for e1000 and rtl8139

Signed-off-by: Blue Swirl <>

463af534 06/09/2009 01:38 pm Mark McLoughlin

net: add fd_readv() handler to qemu_new_vlan_client() args

This, apparently, is the style we prefer - all VLANClientState
should be an argument to qemu_new_vlan_client().

Signed-off-by: Mark McLoughlin <>

cda9046b 06/09/2009 01:38 pm Mark McLoughlin

net: re-name vc->fd_read() to vc->receive()

VLANClientState's fd_read() handler doesn't read from file
descriptors, it adds a buffer to the client's receive queue.

Re-name the handlers to make things a little less confusing.

Signed-off-by: Mark McLoughlin <>

e3f5ec2b 06/09/2009 01:38 pm Mark McLoughlin

net: pass VLANClientState* as first arg to receive handlers

Give static type checking a chance to catch errors.

Signed-off-by: Mark McLoughlin <>

4f1c942b 06/09/2009 01:38 pm Mark McLoughlin

net: add return value to packet receive handler

This allows us to handle queue full conditions rather than dropping
the packet on the floor.

Signed-off-by: Mark McLoughlin <>

9d07d757 05/15/2009 12:35 am Paul Brook

PCI network qdev conversion

Signed-off-by: Paul Brook <>

6407f373 05/03/2009 10:03 pm Isaku Yamahata


use symbolic value instead of 0x0e and related value.

Signed-off-by: Isaku Yamahata <>

aff427a1 05/01/2009 05:47 pm Chris Wright

Pci nic: pci_register_device can fail

The pci_register_device() call in PCI nic initialization routines can
fail. Handle this failure and propagate a meaningful error message to
the user instead of generating a SEGV.

Cc: Marcelo Tosatti <>...

b946a153 04/17/2009 08:11 pm aliguori

Introduce VLANClientState::cleanup() (Mark McLoughlin)

We're currently leaking memory and file descriptors on device

Signed-off-by: Mark McLoughlin <>
Signed-off-by: Anthony Liguori <>

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

72da4208 02/11/2009 05:19 pm aliguori

qemu: return PCIDevice on net device init and record devfn (Marcelo Tosatti)

Change the PCI network drivers init functions to return the PCIDev, to
inform which slot has been hot-plugged.

Also record PCIDevice structure on NICInfo to locate for release on...

173a543b 02/01/2009 09:26 pm blueswir1

Add and use #defines for PCI device classes

This patch adds and uses #defines for PCI device classes and subclases,
using a new pci_config_set_class() function, similar to the recently
added pci_config_set_vendor_id() and pci_config_set_device_id().

Change since v1: fixed compilation of hw/sun4u.c...

deb54399 01/26/2009 05:37 pm aliguori

Define PCI vendor and device IDs in pci.h (Stuart Brady)

This patch defines PCI vendor and device IDs in pci.h (matching those
from Linux's pci_ids.h), and uses those definitions where appropriate.

Change from v1:
Introduces pci_config_set_vendor_id() / pci_config_set_device_id()...

2c3891ab 01/13/2009 05:20 pm aliguori

RTL8139: Latch C+ mode state instead of inferring it from C+ Command register (Avi Kivity)

It was observed that Windows 2003 x64 hangs when shutting down if an
RTL8139 NIC and a USB device tablet are both present. What seems to be
happening is:

- the guest shuts down the transmitter and receiver...

7a9f6e4a 01/07/2009 07:48 pm aliguori

Add a -net name=foo parameter (Mark McLoughlin)

Allow the user to supply a vlan client name on the command line.

This is probably only useful for management tools so that they can
use their own names rather than parsing the output of 'info network'.

Signed-off-by: Mark McLoughlin <>...

7cb7434b 01/07/2009 07:46 pm aliguori

Add qemu_format_nic_info_str() (Mark McLoughlin)

Factor out a simple little function for formatting a NIC's
info_str and make all NICs use it.

Signed-off-by: Mark McLoughlin <>
Signed-off-by: Anthony Liguori <>

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

bf38c1a0 01/07/2009 07:42 pm aliguori

Add a model string to VLANClientState (Mark McLoughlin)

Don't lose track of what type/model a vlan client is so that we can
e.g. assign a global per-model id to clients.

The entire patch is basically a tedious excercise in making sure the
type/model string gets propagated down to qemu_new_vlan_client()....

1d6198c3 12/13/2008 11:32 am blueswir1

Remove unnecessary trailing newlines

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

b1d8e52e 10/26/2008 03:43 pm blueswir1

Fix undeclared symbol warnings from sparse

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

eb38c52c 09/06/2008 08:47 pm blueswir1

Fix most warnings that would be caused by gcc flag -Wundef

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

2137b4cc 08/06/2008 11:37 am ths

Add qemu_realloc(), by Gerd Hoffmann.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

18fdb1c5 07/18/2008 09:02 pm ths

Various NICs: Fix suspend/resume of multiple instances, by Jan Kiszka.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

5fedc612 03/13/2008 09:17 pm aurel32

rtl8139: fix endianness on big endian targets

On big endian targets with mmio accesses, the values are not always
swapped, depending on the accessed register. The Linux 8139too module
was able to cope with that, but not the 8139cp one.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

bee8d684 12/17/2007 01:41 am ths

qemu_put signedness fixes, by Andre Przywara.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

60fe76f3 12/16/2007 05:02 am ths

Fix wrong signedness, by Andre Przywara.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

9596ebb7 11/18/2007 03:44 am pbrook

Add statics and missing #includes for prototypes.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

87ecb68b 11/17/2007 07:14 pm pbrook

Break up vl.h.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

e3d7e843 11/09/2007 08:17 pm ths

Fix typo, spotted by Samuel Thibault.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

3b46e624 09/17/2007 11:09 am ths

find -type f | xargs sed -i 's/[\t ]*$//g' # Yes, again. Note the star in the regex.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

5fafdf24 09/17/2007 12:08 am ths

find -type f | xargs sed -i 's/[\t ]$//g' # on most files

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

ccf1d14a 08/01/2007 04:10 pm ths

Fix rtl8139 checksum calculation, by Tim Deegan.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

aa1f17c1 07/12/2007 01:48 am ths

Spelling fixes, by Stefan Weil.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

d537cf6c 04/07/2007 09:14 pm pbrook

Unify IRQ handling.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

80a34d67 04/07/2007 04:41 am pbrook

Remove dead code.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

290a0933 03/19/2007 08:20 pm ths

Fix big endian host operation, by Ben Taylor and Igor Kovalenko.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

abcebc7e 01/10/2007 06:17 pm ths

Devfn number for network PCI cards, by Aurelien Jarno.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

1941d19c 08/17/2006 01:46 pm bellard

PCI save/restore changes

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

718da2b9 07/11/2006 12:38 am bellard

fixed for TCP segmentation offloading - removed dependency on slirp.h (Igor Kovalenko)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

6cadb320 07/04/2006 01:08 pm bellard

rtl8139 fixes (Igor Kovalenko)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

0510224e 07/02/2006 12:41 am bellard

disable unimplemented C+ mode (aka windows xp 64 fix)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

a41b2ff2 02/05/2006 06:14 am pbrook

Allow selection of emulated network card.
rtl8139 emulation.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162