]> git.proxmox.com Git - mirror_qemu.git/commit - hw/net/e1000.c
e1000: pre-initialize RAH/RAL registers
authorGabriel L. Somlo <gsomlo@gmail.com>
Wed, 31 Oct 2012 18:15:39 +0000 (14:15 -0400)
committerStefan Hajnoczi <stefanha@redhat.com>
Thu, 1 Nov 2012 11:02:17 +0000 (12:02 +0100)
commit372254c6e5c078fb13b236bb648d2b9b2b0c70f1
tree8fd0127e1c8435d3f7dfc0ce2fe45e821ee9d1e4
parent645c9496f7083c105ecd32f32532496af6aadf62
e1000: pre-initialize RAH/RAL registers

Some guest operating systems' drivers (Mac OS X in particular) fail to
properly initialize the Receive Address registers (probably expecting
them to be pre-initialized by an earlier component, such as a specific
proprietary BIOS). This patch pre-initializes the RA registers, allowing
OS X networking to function properly. Other guest operating systems are
not affected, and free to (re)initialize these registers during boot.

[According to the datasheet the Address Valid bits in the RA registers
are cleared on PCI or software reset.  This patch adds the NIC's MAC
address and sets Address Valid on reset.  So we diverge from real
hardware behavior here. -- Stefan]

Signed-off-by: Gabriel Somlo <somlo@cmu.edu>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
hw/e1000.c