From owner-freebsd-sparc64@FreeBSD.ORG Thu Apr 14 19:27:53 2005 Return-Path: Delivered-To: freebsd-sparc64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7DFD616A4CE for ; Thu, 14 Apr 2005 19:27:53 +0000 (GMT) Received: from mail26.sea5.speakeasy.net (mail26.sea5.speakeasy.net [69.17.117.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id F414F43D39 for ; Thu, 14 Apr 2005 19:27:52 +0000 (GMT) (envelope-from jmg@hydrogen.funkthat.com) Received: (qmail 29431 invoked from network); 14 Apr 2005 19:27:52 -0000 Received: from gate.funkthat.com (HELO hydrogen.funkthat.com) ([69.17.45.168]) (envelope-sender ) by mail26.sea5.speakeasy.net (qmail-ldap-1.03) with SMTP for ; 14 Apr 2005 19:27:52 -0000 Received: from hydrogen.funkthat.com (ktuxox@localhost.funkthat.com [127.0.0.1])j3EJRoGH071130; Thu, 14 Apr 2005 12:27:51 -0700 (PDT) (envelope-from jmg@hydrogen.funkthat.com) Received: (from jmg@localhost) by hydrogen.funkthat.com (8.12.10/8.12.10/Submit) id j3EJRoRh071129; Thu, 14 Apr 2005 12:27:50 -0700 (PDT) Date: Thu, 14 Apr 2005 12:27:49 -0700 From: John-Mark Gurney To: Pyun YongHyeon Message-ID: <20050414192749.GO56487@funkthat.com> Mail-Followup-To: Pyun YongHyeon , freebsd-sparc64@freebsd.org References: <20050414092608.GB2855@michelle.rndsoft.co.kr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050414092608.GB2855@michelle.rndsoft.co.kr> User-Agent: Mutt/1.4.1i X-Operating-System: FreeBSD 4.2-RELEASE i386 X-PGP-Fingerprint: B7 EC EF F8 AE ED A7 31 96 7A 22 B3 D8 56 36 F4 X-Files: The truth is out there X-URL: http://resnet.uoregon.edu/~gurney_j/ X-Resume: http://resnet.uoregon.edu/~gurney_j/resume.html cc: freebsd-sparc64@freebsd.org Subject: Re: em(4) patch X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: John-Mark Gurney List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Apr 2005 19:27:53 -0000 Pyun YongHyeon wrote this message on Thu, Apr 14, 2005 at 18:26 +0900: > I have a initial patch that make em(4) work on sparc64. > The patch seems to work but it may have uncovered bugs in it. > The chagnges are wierd, I recently had one probe, but never tried to use it... > . outl/inl -> bus_space_read/bus_space_write > . 64bit IO BAR check(Obtained from OpenBSD) > . add suspend/resume code(not tested) > . printf -> device_printf > . fix memory/resource leakages > . always honor IFF_OACTIVE flag I made this mistake before myself.. Make sure you read the comment describing OACTIVE.. you only set OACTIVE when the TX queue is full, and clear it when it is not full.. not always set it when the board is transmitting: define IFF_OACTIVE 0x400 /* tx hardware queue is full */ > . don't blidnly call RX/TX handlers > . remove EM_MAX_INTR loops > . create TX dmamap at device initialization > . enable PCI memory write and invalidate > . EM_MMBA -> PCIR_BAR(0) > . TX/RX descriptor alignment is 16 not PAGE_SIZE > . TX/RX descriptor length should be multiple of 128 not 4096. You should probably use a define for this... > . don't create MCLBYTES*8 size TX buffers if we are not use JUMBO frame > . use bus_dmamap_load_mbuf_sg() for loading RX buffers. > . always print watchdog timeout message(Obtained from OpenBSD) > . don't count twice in some statistics(Obtained from OpenBSD) > > I have tested 82545GM chipset based card on Ultra60(SMP). VLAN and > POLLING were not tested at all so it may have bugs. JUMBO frame support > needs more coding and cleanups since sparc64 does not allow non-aligned > memory access. So don't try to use JUMBO frame at this time. > If you want to test em(4) on SMP with ofw_console you need additional > patch. Alternatively you can use sc(4) or serial console. > I'd like to hear success/failure. I think you should put back the while(!IFQ_DRV_IS_EMPTY, loop.. It prevents an unnessary lock/unlock if both queues are empty... Also, I have work in progress to make non-aligned packets better... I committed part of it as the m_copyup change... On a -current, you should just be able to apply the following change: http://perforce.freebsd.org/fileDiffView.cgi?FSPC=//depot/user/jmg/arm/src/sys/netinet/ip%5finput.c&REV=3&ACT=edit I'll try the patch when I get home... -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not."