From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:46035) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1STpQ3-0007tj-4B for qemu-devel@nongnu.org; Mon, 14 May 2012 03:10:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1STpQ1-0006Lf-72 for qemu-devel@nongnu.org; Mon, 14 May 2012 03:10:10 -0400 Received: from mx1.redhat.com ([209.132.183.28]:5899) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1STpQ0-0006LD-VB for qemu-devel@nongnu.org; Mon, 14 May 2012 03:10:09 -0400 Message-ID: <4FB0AFC9.9080709@redhat.com> Date: Mon, 14 May 2012 15:10:01 +0800 From: Jason Wang MIME-Version: 1.0 References: <20120510083717.45992.7495.stgit@amd-6168-8-1.englab.nay.redhat.com> <20120510085453.GB8461@redhat.com> <4FAB8B0C.9070606@redhat.com> <20120510110532.GB9488@redhat.com> <4FB098AA.3060809@redhat.com> <20120514062025.GA29609@redhat.com> In-Reply-To: <20120514062025.GA29609@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] Revert "rtl8139: do the network/host communication only in normal operating mode" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, avi@redhat.com On 05/14/2012 02:20 PM, Michael S. Tsirkin wrote: > On Mon, May 14, 2012 at 01:31:22PM +0800, Jason Wang wrote: >> > On 05/10/2012 07:05 PM, Michael S. Tsirkin wrote: >>> > >On Thu, May 10, 2012 at 05:31:56PM +0800, Jason Wang wrote: >>>> > >>On 05/10/2012 04:54 PM, Michael S. Tsirkin wrote: >>>>> > >>>On Thu, May 10, 2012 at 04:37:22PM +0800, Jason Wang wrote: >>>>>> > >>>>This reverts commit ff71f2e8cacefae99179993204172bc65e4303df. This is because >>>>>> > >>>>the linux 8139cp driver would leave the card in "Config Register Write Enable" >>>>>> > >>>>mode after the eeprom were read or write ( which is unexpected in the spec >>>>>> > >>>>). >>>>> > >>>Could you show where this happens please? >>>> > >>Hi Michael: >>>> > >> >>>> > >>According to the spec: >>>> > >>""" >>>> > >>Normal(0x00): RTL8139C(L)+ network/host communication mode. >>>> > >>... >>>> > >>Config. Register Write Enable(0x11): Before writing to the CONFIG0, >>>> > >>1, 3, 4 registers, and bits 13, 12, 8 of BMCR (offset 62h-63h), the >>>> > >>RTL8139C(L)+ must be placed in this mode. This will protect the >>>> > >>RTL8139C(L)+ configuration from accidental change. >>>> > >>""" >>>> > >>So If I am reading it correctly, guest should place the card in >>>> > >>"Normal mode" during transmission and reception. But linux driver >>>> > >>would reset the mode to 11 after each read or write to the eeprom, >>>> > >>see eeprom_cmd_end() in 8139cp.c. >>> > >Which version? The one I see upstream just clears chip select ... >> > >> > It use writeb(), so in the meantime it also set the high two bits of 9346. > OK, so that's the bug, right? > And it's later cleared during normal init, but reading > eeprom will set it? > Right, that's exactly what I mean.