From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MR9ZW-0002b4-20 for qemu-devel@nongnu.org; Wed, 15 Jul 2009 14:51:18 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MR9ZR-0002YT-5T for qemu-devel@nongnu.org; Wed, 15 Jul 2009 14:51:17 -0400 Received: from [199.232.76.173] (port=33753 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MR9ZR-0002YQ-2M for qemu-devel@nongnu.org; Wed, 15 Jul 2009 14:51:13 -0400 Received: from e2.ny.us.ibm.com ([32.97.182.142]:37554) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MR9ZQ-0003HZ-N1 for qemu-devel@nongnu.org; Wed, 15 Jul 2009 14:51:12 -0400 Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e2.ny.us.ibm.com (8.13.1/8.13.1) with ESMTP id n6FIjnYt008441 for ; Wed, 15 Jul 2009 14:45:49 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n6FIp31t242222 for ; Wed, 15 Jul 2009 14:51:03 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n6FImTS4025079 for ; Wed, 15 Jul 2009 14:48:29 -0400 Subject: Re: [Qemu-devel] 2nd try: [PATCH] fix for bad macaddr of e1000 in Windows 2003 server with original Microsoft driver From: Hollis Blanchard In-Reply-To: <4A5DC91F.7010009@redhat.com> References: <4A5DC91F.7010009@redhat.com> Content-Type: text/plain Date: Wed, 15 Jul 2009 11:51:01 -0700 Message-Id: <1247683862.3824.2.camel@slab.beaverton.ibm.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Naphtali Sprei Cc: qemu-devel@nongnu.org On Wed, 2009-07-15 at 15:18 +0300, Naphtali Sprei wrote: > After comments from quintela@trasno.org and mst@redhat.com, here's the > 2nd try: > > > 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. > > Signed-off-by: Naphtali Sprei > --- > hw/e1000.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/hw/e1000.c b/hw/e1000.c > index 4ac8918..15598ab 100644 > --- a/hw/e1000.c > +++ b/hw/e1000.c > @@ -262,6 +262,8 @@ set_eecd(E1000State *s, int index, uint32_t val) > } > if (!(val & E1000_EECD_CS)) { // rising, no CS (EEPROM > reset) > memset(&s->eecd_state, 0, sizeof s->eecd_state); > + // restore old_eecd's E1000_EECD_SK to avoid false detection of > a clock edge > + s->eecd_state.old_eecd = E1000_EECD_SK; > return; > } > s->eecd_state.val_in <<= 1; > -- > 1.5.5.6 This fixes the problem for me. -- Hollis Blanchard IBM Linux Technology Center