From owner-freebsd-hackers Mon May 27 6:11:12 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from dignus.com (sdsl-64-32-254-102.dsl.iad.megapath.net [64.32.254.102]) by hub.freebsd.org (Postfix) with ESMTP id D62AE37B404 for ; Mon, 27 May 2002 06:11:04 -0700 (PDT) Received: from lakes.dignus.com (lakes.dignus.com [10.0.0.3]) by dignus.com (8.11.6/8.11.3) with ESMTP id g4RD5jh20059; Mon, 27 May 2002 09:05:45 -0400 (EDT) (envelope-from rivers@dignus.com) Received: (from rivers@localhost) by lakes.dignus.com (8.11.6/8.11.3) id g4RD6Vs84653; Mon, 27 May 2002 09:06:31 -0400 (EDT) (envelope-from rivers) Date: Mon, 27 May 2002 09:06:31 -0400 (EDT) From: Thomas David Rivers Message-Id: <200205271306.g4RD6Vs84653@lakes.dignus.com> To: imp@village.org, rivers@dignus.com Subject: Re: more info on pccard insertion hang... Cc: freebsd-hackers@freebsd.org In-Reply-To: <20020526.221029.14977685.imp@village.org> Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG "M. Warner Losh" wrote: > > In message: <200205270214.g4R2Ef483353@lakes.dignus.com> > Thomas David Rivers writes: > : Warner - any ideas? > : pci_write_config(..., bcr,2); <<<< hangs > > Interesting.... > > So this pretty much confirms what I'd expect. We establish the > interrupt handler, then turn on the interrupts, then hang. I suspect > that there's an interrupt in the bridge that isn't being acked. Maybe > there's something in the pcic_pci_intr that should do that it isn't. > > There's also one thing that I've been thinking about in the back of my > mind that you might want to check. I read in the mindshare books that > the we're supposed to mask one of the interrupts while we're powering > the card up. Maybe that's left over and we're not clearing it > properly. > > Does adding > for (i = 0; i < 0x40) sp->getb(sp, i); > at the end pcic_pci_intr do anything for you? The PCIC_STAT_CHG > should do that, but I'm not sure why it isn't. I added: { int i; for(i=0;i<0x40;i++) { sp->getb(sp,i); } } to the end of pcic_pci_intr() - but that didn't change anything... got the same hang in exactly the same place... - Dave Rivers - -- rivers@dignus.com Work: (919) 676-0847 Get your mainframe programming tools at http://www.dignus.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message