| Branch: | Revision:

root / hw / e1000.c @ e7b43f7e

History | View | Annotate | Download (38.1 kB)

# Date Author Comment
43ad7e3e 11/16/2010 10:35 pm Jes Sorensen

Add missing braces

This patch adds missing braces around if/else statements that call
macros which are likely to result in errors if the macro is
changed. It also makes the code comply better with CODING_STYLE.

Signed-off-by: Jes Sorensen <>...

1f892feb 11/16/2010 04:40 pm Alex Williamson

e1000: Fix TCP checksum overflow with TSO

When adding the length to the pseudo header, we're not properly
accounting for overflow.

From: Mark Wu <>
Signed-off-by: Alex Williamson <>
Signed-off-by: Michael S. Tsirkin <>

78aeb23e 09/20/2010 09:03 pm Stefan Hajnoczi

e1000: Pad short frames to minimum size (60 bytes)

The OpenIndiana (Solaris) e1000g driver drops frames that are too long
or too short. It expects to receive frames of at least the Ethernet
minimum size. ARP requests in particular are small and will be dropped...

a05e8a6e 09/06/2010 02:47 pm Michael S. Tsirkin

qemu: e1000 fix TOR math

Patch b0b900070c7cb29bbefb732ec00397abe5de6d73 made
TOR valuer incorrect: the spec says it should always
include the CRC field.
No one seems to use this field, but better to stick to spec.

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

7ed6184b 07/26/2010 04:05 pm Anthony Liguori

Merge remote branch 'mst/for_anthony' into staging

9651ac55 07/22/2010 06:52 am Izumi Tsutsui

e1000: Fix wrong microwire EEPROM state initialization

This change fixes initialization of e1000's microwire EEPROM internal
state values so that qemu's e1000 emulation works on NetBSD,
which doesn't use Intel's em driver but has its own wm driver
for the Intel i8254x Gigabit Ethernet....

b0b90007 07/19/2010 01:49 pm Michael S. Tsirkin

e1000: fix access 4 bytes beyond buffer end

We do range check for size, and get size as buffer,
but copy size + 4 bytes (4 is for FCS).
Let's copy size bytes but put size + 4 in length.

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

55e8d1ce 07/19/2010 01:49 pm Michael S. Tsirkin

e1000: secrc support

Add support for secrc field. Reportedly needed by old RHEL guests.

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

27124888 06/14/2010 06:58 pm Jes Sorensen

Change #define DEBUG to #define E1000_DEBUG in hw/e1000.c

Change #define DEBUG to #define E1000_DEBUG in hw/e1000.c to make
it possible to build QEMU with -DDEBUG

Signed-off-by: Jes Sorensen <>
Signed-off-by: Anthony Liguori <>

af2960f9 05/14/2010 10:32 pm Blue Swirl

e1000: make some tables 'const'

Signed-off-by: Blue Swirl <>

98835fe3 04/08/2010 10:32 pm Thomas Monjalon

e1000: fix build on Ubuntu with _FORTIFY_SOURCE

There was a pointer cast warning on Ubuntu since _FORTIFY_SOURCE has been reenabled.

_FORTIFY_SOURCE had been disabled by 4a24470497360d8b77568b83008d0e9d6eb0787d
and reenabled by 849583050d5f6f782718be8cb50688978973fbea....

ea3fdd5d 01/06/2010 03:16 pm Anthony Liguori

Merge remote branch 'mst/for_anthony' into staging

2758aa52 12/23/2009 05:40 pm Michael S. Tsirkin

e1000: add link to data sheet

Link to data sheet at so people can find it.

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

a9cbacb0 12/23/2009 04:34 pm Michael S. Tsirkin

e1000: switch to symbolic names for pci registers

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

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

c7493749 12/19/2009 04:26 pm Anthony Liguori

e1000: Don't muck with PCI commmand register

Otherwise, the driver does not work in Linux after the INT_DISABLE changes in

Michael Tsirkin had a patch to do this, I'm not sure what happened to it.

Signed-off-by: Anthony Liguori <>

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...

b10fec9b 12/03/2009 11:25 pm Stefan Weil

e1000: Fix warning from code review

A code review run by Steve Grubb complained about code in e1000.c:

In hw/e1000.c at line 89, vlan is declared to be 4 bytes.
At line 382 is an attempt to do a memmove over it with a size of 12.

This was fixed by splitting the memmove in two calls and...

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 <>

a03e2aec 12/03/2009 05:41 pm Mark McLoughlin

net: convert e1000 to NICState

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

a00b2335 11/12/2009 07:23 pm Kay Ackermann

e1000 fix: read access to some registers is missing.

While writing working on an e1000 driver for my university's OS I
noticed that some registers aren't readable in QEMU, but they should
be readable as stated in Intels Driver Developer Manual (and also
verified on real hardware)....

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....

89e8b13c 11/09/2009 04:43 pm Isaku Yamahata

pci: introduce FMT_PCIBUS for printf format for pcibus_t.

This patch is preliminary for 64bit BAR.
Later pcibus_t will be changed from uint32_t to uint64_t.
Introduce FMT_PCIBUS for printf format for pcibus_t.

Signed-off-by: Isaku Yamahata <>...

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,...

04095e5f 10/30/2009 04:42 pm Anthony Liguori

Remove e1000 rom loading hack

The gPXE rom supports BEV properly.

Signed-off-by: Anthony Liguori <>

7200ac3c 10/30/2009 03:39 pm Mark McLoughlin

net: move net-checksum.c under net/

Also add a new net/checksum.h header

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

2e885049 10/27/2009 07:28 pm Juan Quintela

e1000: unfold mac_reg_tosave array

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

28366c3a 10/27/2009 07:28 pm Juan Quintela

e1000: unfold mac_regarraystosave array

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

e482dc3e 10/27/2009 07:28 pm Juan Quintela

e1000: port to vmstate

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

fbdaa002 10/27/2009 07:28 pm Gerd Hoffmann

e1000: use qdev properties for configuration.

Signed-off-by: Gerd Hoffmann <>
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 <>

7d9e52bd 08/28/2009 04:47 am Juan Quintela

e1000 cleanup

Remove un needed casts from void *.
Use DO_UPCAST() instead of blind casts

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 <>

b1332393 07/30/2009 05:50 pm Bill Paul

e1000.c doesn't properly emulate EERD and ICS registers

Once again, the emulation of the EERD and ICS registers in e1000.c is
incorrect. Nobody has noticed this before because none of the Intel-written
e1000 drivers use these registers, and all of the independently written open...

356c7ff4 07/17/2009 01:28 am Naphtali Sprei

fix for bad macaddr of e1000 in Windows 2003 server with original MS driver

The sequence of reading from eeprom is "offset by one" moved because of a false
detection of a clock cycle after an eeprom reset. Keeping the last clock value
after a reset keeps it in sync....

8167ee88 07/16/2009 11:47 pm Blue Swirl

Update to a hopefully more future proof FSF address

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 <>

cab3c825 05/27/2009 05:45 pm Kevin Wolf

e1000: Ignore reset command

When a reset is requested, the current e1000 emulation never clears the
reset bit which may cause a driver to hang. This patch masks the reset
bit out when setting the control registert, so the reset is immediately

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

PCI network qdev conversion

Signed-off-by: Paul Brook <>

6c7f4b47 05/13/2009 09:09 pm Blue Swirl

Replace gcc variadic macro extension with C99 version (missed one)

Signed-off-by: Blue Swirl <>

4a794a62 05/08/2009 11:24 pm Amit Shah

e1000: Do not reinit pci config space to 0

pci_register_device already mallocs the pci config space buffer filled
with zeroes.

Doing this again breaks some default config space writes like
setting the subsystem vendor id and subsystem device id.

Signed-off-by: Amit Shah <>...

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

ad067148 04/17/2009 08:10 pm aliguori

Remove NICInfo from e1000 and mipsnet state (Mark McLoughlin)

NICInfo isn't used after initialization, so remove it from the driver
state structures.

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

bf16cc8f 03/20/2009 06:13 pm aliguori

e1000: Fix RX descriptor low threshold interrupt logic (Alex Williamson)

The RXDMT0 interrupt is supposed to fire when the number of free
RX descriptors drops to some fraction of the total descriptors.
However in practice, it seems like we're adding this interrupt...

4b09be85 02/11/2009 05:21 pm aliguori

qemu: LSI SCSI and e1000 unregister callbacks (Marcelo Tosatti)

Signed-off-by: Marcelo Tosatti <>
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()...

99ed7e30 01/08/2009 09:45 pm aliguori

Implement e1000 link status (Mark McLoughlin)

On link up or down we set the E1000_STATUS_LU ("link up") bit
in the status register and set the E1000_ICR_LSC ("link
status changed") bit in the interrupt cause register before
interrupting the guest.

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

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()....

fad6cb1a 01/05/2009 12:05 am aurel32

Update FSF address in GPL/LGPL boilerplate

The attached patch updates the FSF address in the GPL/LGPL boilerplate
in most GPL/LGPLed files, and also in COPYING.LIB.

Signed-off-by: Stuart Brady <>
Signed-off-by: Aurelien Jarno <>...

b1503cda 12/22/2008 10:33 pm malc

Use the ARRAY_SIZE() macro where appropriate.

Change from v1:
Avoid changing the existing coding style in certain files.

Signed-off-by: Stuart Brady <>

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

f65ed4c1 12/09/2008 10:09 pm aliguori

KVM: Coalesced MMIO support

MMIO exits are more expensive in KVM or Xen than in QEMU because they
involve, at least, privilege transitions. However, MMIO write
operations can be effectively batched if those writes do not have side

Good examples of this include VGA pixel operations when in a planar...

8da3ff18 12/01/2008 08:59 pm pbrook

Change MMIO callbacks to use offsets, not absolute addresses.

Signed-off-by: Paul Brook <>

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

8f2e8d1f 11/21/2008 06:25 pm aliguori

e1000 VLAN offload emulation (Alex Williamson)

We're currently ignoring the e1000 VLAN tagging, stripping and filtering
features in the e1000 emulation. This patch adds backing for the
relevant registers and provides a software implementation of the
acceleration, such that a guest can make use of VLANs....

b6c4f71f 10/02/2008 10:14 pm blueswir1

Resurrect the safe part of r5274

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

88b4e9db 10/02/2008 09:24 pm blueswir1

Make some tables const

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

674bb261 09/30/2008 09:18 pm blueswir1

Add some missing static qualifiers

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

2ca83a8d 09/25/2008 11:24 pm blueswir1

Revert r5274 which breaks savevm/loadvm

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

67d8cec3 09/20/2008 11:04 am blueswir1

Add signed versions of save/load functions

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

7ccfb2eb 09/14/2008 09:45 am blueswir1

Fix warnings that would be caused by gcc flag -Wwrite-strings

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

4105de67 08/06/2008 05:11 pm aliguori

only check RCTL_EN in e1000_can_receive()

e1000_receive() has code to raise a receive overflow interrupt when the receive
buffer head and tail match. However, with the present implementation of
e1000_can_receive(), this code is unreachable -- and etherboot breaks as a...

c6a6a5e3 07/29/2008 10:41 pm aliguori

e1000: use common checksumming code

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

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

1b0009db 07/16/2008 03:39 pm balrog

e1000: only use TSE if enabled for current packet (Anthony Xu).

Previously, all data descriptors used TSE context descriptor by default,
It's not correct, per spec, data descriptor uses TSE bit to indicate
whether use TSE,
Legacy data descripter never use TSE....

6106075b 05/13/2008 05:35 pm ths

Fix compiler warning.

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

700f6e2c 03/29/2008 12:31 am aurel32

e1000: add phy specific status register

(Tristan Gingold)

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

88738c09 03/29/2008 12:30 am aurel32

e1000: fix unaligned access

(Tristan Gingold)

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

6b59fc74 03/13/2008 09:18 pm aurel32

e1000: fix endianness issues

This patch fixes endianness issues in the e1000 nic emulation, which
currently only works on little endian hosts with little endian targets.

Byte swapping does not depend on host endianness, so this patch remove
the use of cpu_to_le32 and le32_to_cpu functions. It depends on the path...

e94bbefe 03/10/2008 02:02 am aurel32

Change the e1000 mmio addr space according to spec.

According to the Intel 82540EM manual, the mmio space is
128k size.
Copied from Xen list and noted by

Signed-off-by: Dor Laor <>

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

52ccc5e0 02/10/2008 03:34 pm balrog

Fix parallel port software emulation (Hervé Poussineau).
Remove __iomem, also unused.

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

ff993638 02/10/2008 03:21 pm balrog

Remove unused boolean_t, should fix building for Solaris.
Fix a typo (Stuart Brady).

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

7c23b892 02/03/2008 04:20 am balrog

E1000 NIC emulation (Nir Peleg, patch from Dor Laor).
Applied %s/^\([^I ]*\)^I/\1 /g on e1000.c and added e1000 to help message.

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