From owner-freebsd-current@FreeBSD.ORG Tue Jun 17 20:41:31 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 99AFE37B401 for ; Tue, 17 Jun 2003 20:41:30 -0700 (PDT) Received: from ion.gank.org (ion.gank.org [198.78.66.164]) by mx1.FreeBSD.org (Postfix) with ESMTP id 90E9843F93 for ; Tue, 17 Jun 2003 20:41:27 -0700 (PDT) (envelope-from craig@xfoil.gank.org) Received: from localhost (ion.gank.org [198.78.66.164]) by ion.gank.org (GankMail) with ESMTP id E93AF2BC5A; Tue, 17 Jun 2003 22:41:26 -0500 (CDT) Received: from ion.gank.org ([198.78.66.164]) by localhost (ion.gank.org [198.78.66.164]) (amavisd-new, port 10024) with LMTP id 65876-06; Tue, 17 Jun 2003 22:41:26 -0500 (CDT) Received: from darth-laptop.auir.gank.org (dsl081-113-221.dfw1.dsl.speakeasy.net [64.81.113.221]) by ion.gank.org (GankMail) with ESMTP id 4C01E2BBB7; Tue, 17 Jun 2003 22:41:25 -0500 (CDT) Date: Tue, 17 Jun 2003 22:41:06 -0500 From: Craig Boston To: "M. Warner Losh" Message-Id: <20030617224106.59f01a41.craig@xfoil.gank.org> In-Reply-To: <20030617.163134.40573463.imp@bsdimp.com> References: <20030615211800.1a8c1ece.craig@xfoil.gank.org> <20030617.072124.84361707.imp@bsdimp.com> <1055887859.52524.60.camel@owen1492.uf.corelab.com> <20030617.163134.40573463.imp@bsdimp.com> X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i386-portbld-freebsd5.1) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit cc: current@freebsd.org Subject: Re: Multiple cardbus devices? (RFI) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jun 2003 03:41:31 -0000 > : xl0: <3Com 3c575B Fast Etherlink XL> port 0x1000-0x107f mem > : 0x88000000-0x8800007f,0x88000080-0x880000ff irq 11 at device 0.0 on > : cardbus0 > > That's not 4k! :-( Ok, if I'm reading this right: rman_reserve_resource: request: [0x88000080, 0x880000ff], length 0x80, flags 12288, device xl0 considering [0x54000000, 0xffffffff] truncated region: [0x88001000, 0x88001080]; size 0x81 (requested 0x80) candidate region: [0x88001080, 0x88001000], size 0x81 splitting region in three parts: [0x54000000, 0x88000fff]; [0x88001000, 0x880010 7f]; [0x88001080, 0xffffffff] xl0: using memory mapped I/O rman_reserve_resource: request: [0x88000000, 0x8800007f], length 0x80, flags 12288, device xl0 considering [0x54000000, 0x88000fff] truncated region: [0x88000000, 0x88000080]; size 0x81 (requested 0x80) candidate region: [0x88000080, 0x88000000], size 0x81 splitting region in three parts: [0x54000000, 0x87ffffff]; [0x88000000, 0x880000 7f]; [0x88000080, 0x88000fff] It looks like the patch is indeed working and changing the alignment of stuff, but xl0 is getting handed 88001000-88001080 for the second memory range but lying about it in dmesg (and doesn't appreciate having its memory split up). I tried moving the alignment flags thing to cardbus_alloc_resources() in cardbus_cis.c. That gave me pretty much the same results as my previous hack -- each separate device starts out on a 4k boundary (though the sizes are correct now). It works fine for a while but eventually both devices just stop working. Putting heavy load on the NIC seems to make it happen much sooner. So far I haven't managed to find any clues as to why it behaves that way. Forcing xl0 to use the I/O port range instead of memory mapped I/O seems to make it last longer before it dies, but it still eventually gives up and starts timing out. Craig