From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MaMdF-0007WB-Sj for qemu-devel@nongnu.org; Mon, 10 Aug 2009 00:37:13 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MaMdA-0007Ry-PN for qemu-devel@nongnu.org; Mon, 10 Aug 2009 00:37:12 -0400 Received: from [199.232.76.173] (port=59785 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MaMdA-0007Rv-Eo for qemu-devel@nongnu.org; Mon, 10 Aug 2009 00:37:08 -0400 Received: from moutng.kundenserver.de ([212.227.126.177]:64939) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MaMd9-0004Ot-Rp for qemu-devel@nongnu.org; Mon, 10 Aug 2009 00:37:08 -0400 Message-ID: <4A7FA3EA.4080804@mail.berlios.de> Date: Mon, 10 Aug 2009 06:36:58 +0200 From: Stefan Weil MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] Intel 8255x/eepro100 compatibility patches References: <20090809211433.GA8892@1und1.de> In-Reply-To: <20090809211433.GA8892@1und1.de> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?ISO-8859-15?Q?Reimar_D=F6ffinger?= Cc: qemu-devel@nongnu.org Reimar Döffinger schrieb: > Hello everyone, > I have been playing around a bit with the OS X/darwin network drivers for these > cards and noticed that they seem to differ quite a bit from the Linux ones. > If you're interested, the source of the core part is here: > http://www.opensource.apple.com/source/AppleIntel8255x/AppleIntel8255x-19/i82557Private.cpp > Attached is a series of patches that makes things work with at least > some version of that (sorry, I only tried some binary I found on the > net, didn't compile from source). > In addition, I also used the documentation from here: > http://www.intel.com/design/network/manuals/8255X_OpenSDM.htm > > The first patch does not set the SBAck flag for MDI interrupts when > interrupts are actually disabled for MDI. > I think (have not tested yet) that this is not necessary to fix > anything, but according to the documentation the current code is wrong. > > The second patch is to ensure that a driver will not > accidentally/incorrectly change the RU/CU state with a write. > This is incomplete and a bit ugly, but good enough for these drivers. > > The third patch adds support for some kind of receive buffers "flexible > mode". The Intel documentation as I read it claims that no such mode exist > for receive, but the fact that those (working with real hardware I > expect) drivers use it contradicts that... > This _definitely_ is necessary to support these drivers. > > And the last patch expands received data shorter than 60 bytes so no > short-frame detection is incorrectly triggered, and of course also > throws away all short-frame detection code since it makes no sense. > It was also wrong since size is without CRC and thus the short frame > limit is 60, not 64. And related to that (but without a patch), I think > that the > >> } else if ((size > MAX_ETH_FRAME_SIZE + 4) && !(s->configuration[18] & 8)) { >> > check is wrong, too, and the + 4 should not be there... > Back to the patch, e.g. the rtl8139 driver also expands those frames > (and I just copied the code for that). > This too _definitely_ is necessary to support these drivers. > > Hope this is interesting to someone and maybe we can even get these > merged... > > Thanks, > Reimar Döffinger > Hi, this is interesting to me. Maybe you want to try a newer version of eepro100.c. The latest version is in http://repo.or.cz/w/qemu/ar7.git, http://repo.or.cz/w/qemu/ar7.git?a=blob;f=hw/eepro100.c It has some really important improvements. I want to get it ready for inclusion in the official QEMU by the end of August. Regards Stefan Weil