From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=40910 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OKAtp-0008Ap-4g for qemu-devel@nongnu.org; Thu, 03 Jun 2010 09:56:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OKAth-0007DT-8C for qemu-devel@nongnu.org; Thu, 03 Jun 2010 09:55:50 -0400 Received: from adelie.canonical.com ([91.189.90.139]:59400) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OKAtg-0007DK-Td for qemu-devel@nongnu.org; Thu, 03 Jun 2010 09:55:49 -0400 Received: from loganberry.canonical.com ([91.189.90.37]) by adelie.canonical.com with esmtp (Exim 4.69 #1 (Debian)) id 1OKAte-00047N-ET for ; Thu, 03 Jun 2010 14:55:46 +0100 Received: from loganberry.canonical.com (localhost [127.0.0.1]) by loganberry.canonical.com (Postfix) with ESMTP id 88D2C2E80DA for ; Thu, 3 Jun 2010 14:55:43 +0100 (BST) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Date: Thu, 03 Jun 2010 13:45:37 -0000 From: Izumi Tsutsui Sender: bounces@canonical.com References: <20100517132539.15293.52060.malonedeb@gandwana.canonical.com> Message-Id: <20100603134537.24539.94871.malone@gandwana.canonical.com> Errors-To: bounces@canonical.com Subject: [Qemu-devel] [Bug 581737] Re: Can't read e1000 NIC EEPROM on NetBSD guest Reply-To: Bug 581737 <581737@bugs.launchpad.net> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ** Patch added: "patch by git format-patch --signoff" http://launchpadlibrarian.net/49607393/qemu-git.patch -- = Can't read e1000 NIC EEPROM on NetBSD guest https://bugs.launchpad.net/bugs/581737 You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. Status in QEMU: Incomplete Bug description: QEMU Version: qemu-0.12.4 Host OS: NetBSD/i386 5.0.2 Guest OS: NetBSD/i386 5.1_RC1 On this environment, guest NetBSD tries to attach e1000 NIC using its own w= m(4) driver but fails to read EEPROM as the following: --- NetBSD 5.1_RC1 (GENERIC) #0: Sat Apr 24 23:26:09 UTC 2010 builds@b7.netbsd.org:/home/builds/ab/netbsd-5-1-RC1/i386/2010042500= 32Z-obj/home/builds/ab/ netbsd-5-1-RC1/src/sys/arch/i386/compile/GENERIC total memory =3D 127 MB avail memory =3D 113 MB Bochs Bochs : drm at vga1 not configured wm0 at pci0 dev 3 function 0: Intel i82540EM 1000BASE-T Ethernet, rev. 3 wm0: interrupting at irq 11 wm0: unable to read Ethernet address isa0 at pcib0 : --- You can reproduce this with NetBSD/i386 install CD image: ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-5.1_RC1/iso/i386cd-5.1_RC1.iso % qemu -cdrom i386cd-5.1_RC1.iso -boot d ---in QEMU window--- [type ^C to quit installer] # dmesg | grep wm0 ------ Per DBGOUT(EEPROM) messages, it show too large eecd_state.bitnum values, i.= e. EEPROM state is not reset properly. The set_eecd() function in e1000.c clears EEPROM internal state values on S= K rising edge during CS=3D=3DL. But according to FM93C06 EEPROM (which is MicroWire compatible) data sheet, EEPROM internal status should be cleared on CS rise edge regardless of SK i= nput: "... a rising edge on this signal is required to reset the internal state-= machine to accept a new cycle .." Intel's em driver seems to explicitly raise and lower SK output after CS is= negated in em_standby_eeprom() so many other OSes that use Intel's driver don't have this problem with cur= rent e1000.c implementation, but I can't find articles that say the MICROWIRE or EEPROM spec requires su= ch sequence. With the attached patch, NetBSD guest properly gets MAC address from e1000 = NIC EEPROM.