Date: Thu, 12 Oct 1995 23:12:56 -0700 From: "Justin T. Gibbs" <gibbs@freefall.FreeBSD.org> To: Julian Elischer <julian@ref.tfs.com> Cc: terry@lambert.org (Terry Lambert), jhay@mikom.csir.co.za, hackers@FreeBSD.ORG Subject: Re: IPX now available Message-ID: <199510130612.XAA05319@aslan.cdrom.com> In-Reply-To: Your message of "Thu, 12 Oct 1995 22:20:41 PDT." <199510130520.WAA06691@ref.tfs.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>> A loadable kernel component is code that when loaded sets itself up as
>> if it had always been there, and if unloaded, removes itself as if it
>> had never been there.
>[..]
>>
>> Probe includes:
>> a) determination of IRQ(s) used by a single device instance before
>> attach.
>BSD4.3 did this on VME and DEC busses
>It's harder when the system is already going and interrupts are in use..
>
>> b) determination of DRQ(s) used by a single device instance before
>> attach.
>this one gets really difficult.
>> c) determination of I/O address range(s) used by a single device
>> instance before attach.
>[.....]
>ok, well it's all true..
>and I'm slowely moving in that direction
>but you see there's the JOB I keep having to do...
>
>julian
Actually, I'd rather not have to have all of the IRQ, DRQ, ports, etc
determined during probe. Look at EISA or PCI devices... the probe is
a non-intrusive determination if a card is present and what driver may
be apporpriate for that device. The IRQ, DRQ, and port range determination
should only happen after we know that we have something worth talking to
(ie the probe is successfull). This works so long as we allow attaches
to fail (which they could for other reasons like insufficient memory).
I'd rather design the system to look like:
probe ()
{
minimum to determin presence of hardware
}
attach()
{
Determin port Addresses
if (!reserve port address) {
return some error code
}
Determine IRQ
if (!Map IRQ Handler) {
release port address
return some error code
}
Register other resources...
Setup the card for work
Enable interrupts
return success
}
The new EISA code will follow this approach.
--
Justin T. Gibbs
===========================================
Software Developer - Walnut Creek CDROM
FreeBSD: Turning PCs into workstations
===========================================
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199510130612.XAA05319>
