qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Bug 581737] Re: Can't read e1000 NIC EEPROM onNetBSD


From: Izumi Tsutsui
Subject: Re: [Qemu-devel] [Bug 581737] Re: Can't read e1000 NIC EEPROM onNetBSD guest
Date: Sun, 13 Jun 2010 12:50:22 -0000

> >> Please email the patch to address@hidden via git-send-email.
> > Isn't the following post enough? What's incomplete on this?
> > http://lists.nongnu.org/archive/html/qemu-devel/2010-06/msg00449.html
> 
> That is still not a proper git-format-patch patch, it is missing among  
> others the From: and Subject: lines and, likely, a more detailled  
> description of what it does and why, for maintainers to be able to  
> apply it with the git-am tool.

Whole description is in the bug report itself.
git-format-patch is strictly required even in such case?
If so, is there any proper documents how to submit patches for QEMU?
---
Izumi Tsutsui

-- 
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 wm(4) 
driver but fails to read EEPROM as the following:
---
NetBSD 5.1_RC1 (GENERIC) #0: Sat Apr 24 23:26:09 UTC 2010
        
address@hidden:/home/builds/ab/netbsd-5-1-RC1/i386/201004250032Z-obj/home/builds/ab/
netbsd-5-1-RC1/src/sys/arch/i386/compile/GENERIC
total memory = 127 MB
avail memory = 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 SK 
rising edge during CS==L.
But according to FM93C06 EEPROM (which is MicroWire compatible) data sheet,
EEPROM internal status should be cleared on CS rise edge regardless of SK input:
 "... 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 current 
e1000.c implementation,
but I can't find articles that say the MICROWIRE or EEPROM spec requires such 
sequence.

With the attached patch, NetBSD guest properly gets MAC address from e1000 NIC 
EEPROM.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]