Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 07 Jul 2001 15:02:26 -0600
From:      Warner Losh <imp@harmony.village.org>
To:        Mike Smith <msmith@FreeBSD.ORG>
Cc:        Makoto MATSUSHITA <matusita@jp.FreeBSD.org>, sos@freebsd.dk, current@FreeBSD.ORG
Subject:   Re: Problems with ata probing twice. 
Message-ID:  <200107072102.f67L2QJ72605@harmony.village.org>
In-Reply-To: Your message of "Sat, 07 Jul 2001 13:04:28 PDT." <200107072004.f67K4S701211@mass.dis.org> 
References:  <200107072004.f67K4S701211@mass.dis.org>  

next in thread | previous in thread | raw e-mail | index | archive | help
In message <200107072004.f67K4S701211@mass.dis.org> Mike Smith writes:
: > 
: > sos> Well, sortof, the ata driver doesn't allow for sharing irq14&15 
: > sos> since lots of boards doesn't work that way. However if you need
: > sos> it you can try to add the shared flag in the driver and see if 
: > sos> it works on yours. Hmm, maybe I should make this tunable...
: > 
: > It this patch OK? I've tested a kernel with this patch and it works.
: > 
: > This patch simply adds a new kernel MIB (hw.ata.shareable in this
: > patch, but I have no idea about its name), and if this MIB value is
: > non-zero, ata driver doesn't drop RF_SHAREABLE bit for BUS_ALLOC_RESOURCE().
: 
: No.  This is utterly bogus.
: 
: There is absolutely no reason for the ata driver not to simply set 
: RF_SHAREABLE and be done with it.  It's up to the driver's parent (isa, 
: pci, etc) to decide whether the interrupt is in fact shareable or not.
: 
: The ata driver itself can share interrupts just fine, and it should 
: reflect this in its interrupt allocation.

Actually, there is a reason.  Ata is special like pcic is special.
Both of them can have multiple interrupt routing methods.  When ata is
connected directly to the south bridge, it can route ISA interrupts,
even though it is a pci device.  In this case, it is unsafe to share
interrupts between the ata device and anything else.  Even though it
looks like a pci device, the interrupt routing is ISA.

Cardbus bridges in laptops have the same problems.  And it is looking
like we can't just use the pcibios to route the interrupts on some
older machines so we have to have some way to say "use isa interrupts
for this device."  That's a big pain for cardbus bridges because many
of them would really like to be pci devices so you can relocate memory
out of the ISA hole, etc.

But for almost any other device, what you say is true.

Warner

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107072102.f67L2QJ72605>