From owner-freebsd-emulation@FreeBSD.ORG Wed May 3 03:46:14 2006 Return-Path: X-Original-To: freebsd-emulation@freebsd.org Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 79E0816A408 for ; Wed, 3 May 2006 03:46:14 +0000 (UTC) (envelope-from garrison@mail.ru) Received: from umail.ru (umail.mtu.ru [195.34.32.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id A32B743D4C for ; Wed, 3 May 2006 03:46:10 +0000 (GMT) (envelope-from garrison@mail.ru) Received: from [85.140.125.85] (HELO skyserv) by umail.ru (CommuniGate Pro SMTP 4.2b6) with ESMTP-TLS id 666373538; Wed, 03 May 2006 07:46:08 +0400 Received: from localhost ([127.0.0.1]) by skyserv with esmtp (Exim 4.61) (envelope-from ) id 1Fb8JT-0002Nv-Rk; Wed, 03 May 2006 07:46:07 +0400 Message-ID: <4458277F.4010902@mail.ru> Date: Wed, 03 May 2006 07:46:07 +0400 From: Igor Kovalenko User-Agent: Mail/News 1.5 (X11/20060319) MIME-Version: 1.0 To: Igor Kovalenko , freebsd-emulation@freebsd.org, qemu-l@jelal.kn-bremen.de References: <20060427203718.GA15953@saturn.kn-bremen.de> <445241DE.9020909@mail.ru> <20060428221142.GA11504@saturn.kn-bremen.de> <44530C50.6040902@mail.ru> <20060430004646.GA70632@saturn.kn-bremen.de> In-Reply-To: <20060430004646.GA70632@saturn.kn-bremen.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Subject: Re: playing with qemu's 8139 nic and FreeBSD (loopback mode missing?) X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 May 2006 03:46:14 -0000 Juergen Lock wrote: > On Sat, Apr 29, 2006 at 10:48:48AM +0400, Igor Kovalenko wrote: >> Juergen Lock wrote: >>> On Fri, Apr 28, 2006 at 08:25:02PM +0400, Igor Kovalenko wrote: >>>> Juergen Lock wrote: >>>>> I played with >>>>> qemu -monitor stdio -m 256 -cdrom 6.1-RC1-i386-disc1.iso -usb -soundhw es1370 -kernel-kqemu -net nic,model=rtl8139 -net user >>>>> and got it as far as >>>>> re0: diagnostic failed, failed to receive packet in loopback mode >>>>> (followed by a panic :) with the (experimental) patches below. >>>>> >>>>> Anyone in the mood to implement loopback mode for this nic? >>>>> >>>>> Hmm actually... I just found the original posting in the archive, >>>>> is C+ mode implemented now? If not re is probably not what I want, >>>> The rtl8139 is set up with PCI rev ID 0x20 which should be enough for OS driver >>>> to detect C+ mode features. C+ mode is OK, tested with Linux driver. >>> Cool, so I want FreeBSD's re driver. That one checks TxConfig >>> tho, as changed in my patch (inside #if 0). And when changed, >>> it still doesn't work as mentioned above because the driver expects >>> loopback mode to be working. >>>>> but the rl driver that it attaches without that #if 0'd (now) hunk >>>>> below doesnt seem to be able to get data thru either and I get >>>>> rl0: watchdog timeout >>>>> in dmesg, which usually means the driver doesnt receive interrupts. >>>>> >>>>> What the heck, I'll append a log of a run just doing in fixit->cdrom: >>>>> ifconfig rl0 10.0.2.15 >>>>> and then exiting (which is enough to trigger the watchdog timeout...) >>>>> >>>> I'm too lasy to test with fresh freebsd installation :) >>> No need to install FreeBSD, you can get away by just using >>> fixit mode of an install iso, i.e. disc1. (which actually is >>> what I did above. :) >>> >>> You can look at 6.1RC's re driver here: >>> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/re/if_re.c?annotate=1.46.2.14 >>> which includes: >>> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/pci/if_rlreg.h?annotate=1.51.2.3 >>> >>> And 6.1RC disc1 iso is e.g. here: >>> ftp://ftp.ru.freebsd.org:/pub/FreeBSD/ISO-IMAGES-i386/6.1/6.1-RC1-i386-disc1.iso >>> >>> >> Thanks, that iso pointer made it. >> > :) > >> Please try the following on top of your patch, at least ping should now work: > > Thanks, that seems to get the rl driver going. Now to fix C+ mode > (re driver) change the #if 0 in my patch to #if 1... > > I believe freebsd re driver is somewhat broken, e.g. it does not follow documented procedure to detect hardware features (e.g. 8139 c+ mode) and in tries to use 8169 registers (e.g. 0xda) on 8139 hardware etc. Therefore some action from driver people is needed; I can provide a patch which enables board timer in rtl8139 emulation (and thus enables hardware timeout events) if you need it. -- Kind regards, Igor V. Kovalenko