History log of /freebsd-10-stable/sys/dev/eisa/
Revision Date Author Comments
256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


227843 22-Nov-2011 marius

- There's no need to overwrite the default device method with the default
one. Interestingly, these are actually the default for quite some time
(bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9)
since r52045) but even recently added device drivers do this unnecessarily.
Discussed with: jhb, marcel
- While at it, use DEVMETHOD_END.
Discussed with: jhb
- Also while at it, use __FBSDID.


194020 11-Jun-2009 avg

strict kobj signatures: fix assortment of bus_read_ivar impls

Reviewed by: imp, current@
Approved by: jhb (mentor)


148612 01-Aug-2005 imp

Make the eisa probe messages just like all the others in the system.
Make the eisa no match printf closer to pci.


143759 17-Mar-2005 imp

Now that the Adaptec 2842 has its own probe routine, no need to have
a comment saying its probe routine needs to be fixed.


143758 17-Mar-2005 imp

Style(9) pass before some planned larger changes.
o return (foo);
o if (a == NULL) in preference to if (!a)
o () and {} reduction
o minor indentation fixes


139749 06-Jan-2005 imp

Start each of the license/copyright comments with /*-, minor shuffle of lines


133887 16-Aug-2004 gibbs

Remove outb to "prime" the EISA ID registers of each slot. This was
only required to support probing of the Adaptec 284X VLB SCSI controller
which becomes visible in EISA space if you perform these writes. 284X
probing is moving to an ISA attachment.


133059 03-Aug-2004 njl

Use the slot, not an otherwise unused index variable as the probe offset.
This passed testing because the variable happened to be 0 in most cases.

Compile warning found by: David Syphers <dsyphers AT u.washington.edu>


133044 03-Aug-2004 njl

Change EISA probing to be less invasive. Instead of probing all slots
unconditionally, stop after the first one (system board) if no EISA hardware
is detected. This fixes a boot hang (i.e. Thinkpad) when ACPI is disabled.
Also, split the probe code into a separate function and do some style cleanup.

Note that the Adaptec 2842 VLB controller probe is broken by this change
and will fail to probe. It should be fixed separately.


130275 09-Jun-2004 imp

When adding files to the repo, it is very important to not forget
the cvs add function.


130274 09-Jun-2004 imp

Step 1 in moving EISA devices to kobj/newbus. Use kobj methods for
all of the interface between the driver and the bus. This will enable
us to stop special casing eisa bus attachments in modules and treat them
like we treat all other busses.

In the longer run, we need to eliminate much (all?) of these interfaces
and switch to using the standard bus_alloc_resource(), but that's not
done right now.

# I've not updated the modules to include eisa, etc, just yet

Tested on: Compaq Proliant 3000/333 purchased for eisa work


119418 24-Aug-2003 obrien

Use __FBSDID().
Also some minor style cleanups.


114216 29-Apr-2003 kan

Deprecate machine/limits.h in favor of new sys/limits.h.
Change all in-tree consumers to include <sys/limits.h>

Discussed on: standards@
Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>


106229 31-Oct-2002 peter

Add tunable "hw.eisa_slots" to allow overriding the default number
of slots (10).


104015 26-Sep-2002 jhb

Argh, isa(4), eisa(4) and mca(4) now attach to legacy(4) instead of
nexus(4) in the case of machines w/o equivalent bridges on a PCI bus.

Reported by: winter
Pointy hat to: jhb


102177 20-Aug-2002 mux

- Use the __BUS_ACCESSOR macro for EISA_ACCESSOR instead
of reimplementing it.
- #undef EISA_ACCESSOR after use like we do for other accessors.

Reviewed by: tmm


94275 09-Apr-2002 phk

GC various bits and pieces of USERCONFIG from all over the place.


92739 20-Mar-2002 alfred

Remove __P.


72228 09-Feb-2001 joerg

Unbreak EISA. The PCI-EISA bridge bus is named `eisab', not `isab'.
This mistake seems to have been benign until very recently, probably
until msmith's PCI code reshuffle which cleaned up a lot of things.

Still, my AIC7770 doesn't work again, but it at least probes the
EISA bus now.


71999 04-Feb-2001 phk

Mechanical change to use <sys/queue.h> macro API instead of
fondling implementation details.

Created with: sed(1)
Reviewed by: md5(1)


69781 08-Dec-2000 dwmalone

Convert more malloc+bzero to malloc+M_ZERO.

Submitted by: josh@zipperup.org
Submitted by: Robert Drehmel <robd@gmx.net>


60938 26-May-2000 jake

Back out the previous change to the queue(3) interface.
It was not discussed and should probably not happen.

Requested by: msmith and others


60833 23-May-2000 jake

Change the way that the queue(3) structures are declared; don't assume that
the type argument to *_HEAD and *_ENTRY is a struct.

Suggested by: phk
Reviewed by: phk
Approved by: mdodd


55953 14-Jan-2000 peter

Pre 4.0 tidy up.

Collect together the components of several drivers and export eisa from
the i386-only area (It's not, it's on some alphas too). The code hasn't
been updated to work on the Alpha yet, but that can come later.

Repository copies were done a while ago.
Moving these now keeps them in consistant place across the 4.x series
as the newbusification progresses.

Submitted by: mdodd


54073 03-Dec-1999 mdodd

Remove the 'ivars' arguement to device_add_child() and
device_add_child_ordered(). 'ivars' may now be set using the
device_set_ivars() function.

This makes it easier for us to change how arbitrary data structures are
associated with a device_t. Eventually we won't be modifying device_t
to add additional pointers for ivars, softc data etc.

Despite my best efforts I've probably forgotten something so let me know
if this breaks anything. I've been running with this change for months
and its been quite involved actually isolating all the changes from
the rest of the local changes in my tree.

Reviewed by: peter, dfr


52120 11-Oct-1999 peter

Delete unneeded #include

Submitted by: phk


50477 28-Aug-1999 peter

$Id$ -> $FreeBSD$


49382 02-Aug-1999 mdodd

I'm not sure how this wasn't in the last commit but anyhow...
'int irq' -> 'struct irq_node *irq'


49360 01-Aug-1999 mdodd

Move the specification of EDGE/LEVEL triggered interrupts to
eisa_add_intr() which now takes an additional arguement (one of
EISA_TRIGGER_LEVEL or EISA_TRIGGER_EDGE).

The flag RR_SHAREABLE has no effect when passed to
bus_alloc_resource(dev, SYS_RES_IRQ, ...) in an EISA device context as
the eisa_alloc_resource() call (bus_alloc_resource method) now deals
with this flag directly, depending on the device ivars.

This change does nothing more than move all the 'shared = inb(foo + iobsse)'
nonesense to the device probe methods rather than the device attach.

Also, print out 'edge' or 'level' in the IRQ announcement message.

Reviewed by: dfr


49281 30-Jul-1999 mdodd

Restore the pre-new_bus behavior of printing out the reserved resources
during device announcement. (irq, ioport, maddr)

Reviewed by: dfr, peter


49195 29-Jul-1999 mdodd

Alter the behavior of sys/kern/subr_bus.c:device_print_child()

- device_print_child() either lets the BUS_PRINT_CHILD
method produce the entire device announcement message or
it prints "foo0: not found\n"

Alter sys/kern/subr_bus.c:bus_generic_print_child() to take on
the previous behavior of device_print_child() (printing the
"foo0: <FooDevice 1.1>" bit of the announce message.)

Provide bus_print_child_header() and bus_print_child_footer()
to actually print the output for bus_generic_print_child().
These functions should be used whenever possible (unless you can
just use bus_generic_print_child())

The BUS_PRINT_CHILD method now returns int instead of void.

Modify everything else that defines or uses a BUS_PRINT_CHILD
method to comply with the above changes.

- Devices are 'on' a bus, not 'at' it.
- If a custom BUS_PRINT_CHILD method does the same thing
as bus_generic_print_child(), use bus_generic_print_child()
- Use device_get_nameunit() instead of both
device_get_name() and device_get_unit()
- All BUS_PRINT_CHILD methods return the number of
characters output.

Reviewed by: dfr, peter


48754 11-Jul-1999 dfr

Add a hook for a bus to detect child devices which didn't find drivers.
This allows the bus to print an informative message about unknown devices.

Submitted by: Matthew N. Dodd <winter@jurai.net>


48100 22-Jun-1999 peter

Handle suspend/resume methods

Obtained from: Warner Losh <imp@freebsd.org>


47451 24-May-1999 peter

Fix a [start,end] vs [start,count] botch that corrupted the resource
manager and prevented IOPort allocation beyond the first EISA slot from
working. subr_rman.c should have trapped this on the way into the system
rather than tripping over the wreckage.

Head banged into wall repeatedly by: "Matthew N. Dodd" <winter@jurai.net>


47308 18-May-1999 peter

Don't detect an EISA bus unless we see a "card" there somewhere. An EISA
motherboard will have a card for the "motherboard" on slot 0.
eisa0: <EISA bus> on motherboard
mainboard0: <ASU5101 (System Board)> at slot 0 on eisa0
This should stop the probe "detecting" an EISA bus everywhere that has
a 'controller eisa0' line regardless of whether it's really there.


46743 08-May-1999 dfr

Move the declaration of the interrupt type from the driver structure
to the BUS_SETUP_INTR call.


46601 06-May-1999 peter

Use consistant function definitions which also silences a warning.


45818 19-Apr-1999 peter

GC some now unused (and #if 0) code.


45807 19-Apr-1999 peter

EISA can (or will) be a child of the i386 nexus on non-PCI systems.


45804 19-Apr-1999 peter

Set the bus description for EISA, like it is for ISA.


45791 18-Apr-1999 peter

Implement an EISA new-bus framework. The old driver probe mechanism
had a quirk that made a shim rather hard to implement properly and it was
just easier to convert the drivers in one go. The changes to the
buslogic driver go beyond just this - the whole driver was new-bus'ed
including pci and isa. I have only tested the EISA part of this so far.

Submitted by: Doug Rabson <dfr@nlsystems.com>


42654 14-Jan-1999 jdp

Replace includes of <sys/kernel.h> with includes of
<sys/linker_set.h> in those files that use only the linker set
definitions.


41514 04-Dec-1998 archie

Examine all occurrences of sprintf(), strcat(), and str[n]cpy()
for possible buffer overflow problems. Replaced most sprintf()'s
with snprintf(); for others cases, added terminating NUL bytes where
appropriate, replaced constants like "16" with sizeof(), etc.

These changes include several bug fixes, but most changes are for
maintainability's sake. Any instance where it wasn't "immediately
obvious" that a buffer overflow could not occur was made safer.

Reviewed by: Bruce Evans <bde@zeta.org.au>
Reviewed by: Matthew Dillon <dillon@apollo.backplane.com>
Reviewed by: Mike Spengler <mks@networkcs.com>


36041 14-May-1998 gibbs

Fix list corruption and memory leak that could occur when
releasing EISA irqs.


33181 09-Feb-1998 eivind

Staticize.


31016 07-Nov-1997 phk

Remove a bunch of variables which were unused both in GENERIC and LINT.

Found by: -Wunused


30813 28-Oct-1997 bde

Removed unused #includes.


29674 21-Sep-1997 gibbs

Add shared EISA interrupt support.
Clean up the match routines so that they return const char *


28551 21-Aug-1997 bde

#include <machine/limits.h> explicitly in the few places that it is required.


28509 21-Aug-1997 fsmp

Add several casts and include several header files to eliminate compiler
warnings.


27534 20-Jul-1997 bde

Removed unused #includes.


23855 13-Mar-1997 joerg

Various stylistic improvements regarding num_eisa_slots & co.:

. properly declare the variable in in a .h file, as opposed to
using a private extern declaration in userconfig.c;
. move the definition of EISA_SLOTS and therefore the inclusion of
opt_eisa.h into eisaconf.c.


23801 12-Mar-1997 joerg

Since i don't see that anybody is implementing a more correct EISA
probing anytime soon, make EISA_SLOTS a fully supported option. It's
required for the HP NetServer LC series machines.

Next stop: make dset(8) aware of it as well.


22975 22-Feb-1997 peter

Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not
ready for it yet.


21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


20450 14-Dec-1996 joerg

Add a small hack to UserConfig that allows to override the number of
EISA slots to probe. This is mainly intended to allow installing the
system on an HP Netserver with an on-board AIC7xxx EISA SCSI
controller, that is sitting on EISA slot # 11.

Documentation updates explaining this hack will follow shortly.

Note that this can go away again as soon as the EISA device probing
is more intelligent about the address space clash with the PCI address
space.

2.2 candidate.

Not objected by: freebsd-core :)


18233 10-Sep-1996 bde

Removed more devconf leftovers.


18158 08-Sep-1996 phk

Various cleanups for remanents of devconf.


18084 06-Sep-1996 phk

Remove devconf, it never grew up to be of any use.


17971 31-Aug-1996 bde

Don't depend in the kernel on the gcc feature of doing arithmetic on
pointers of type `void *'. Warn about this in future.


16322 12-Jun-1996 gpalmer

Clean up -Wunused warnings.

Reviewed by: bde


15329 20-Apr-1996 gibbs

Turn on SCB paging for aic7770 chips rev E or greater.

Update my copyrights.


15114 07-Apr-1996 bde

Removed unused declaration of bootverbose.


14450 10-Mar-1996 gibbs

aha1742.c:
Cleanse the SCSI subsystem of its internally defined types
u_int32, u_int16, u_int8, int32, int16, int8.
Use the system defined *_t types instead.

eisaconf.c:
Cosmetic formatting chagnes.


14258 26-Feb-1996 gibbs

3c5x9.c:
The eisaconf probe for the 3Com 3c579 and the 3c509 when in eisa
configuration mode.

aha1742.c aic7770.c bt74x.c:
Only call eisa_registerdev after the probe is successfully.

eisaconf.c:
Increase kdc->kdc_datalen during the eisa_reg* functions instead of
in the eisa_add* functions since eisa_registerdev has already been
called and we have a kdc to manipulate.


13807 31-Jan-1996 gibbs

Free the externalizing buffer.


13804 31-Jan-1996 gibbs

aha1742.c aic7770.c bt74x.c
- Call eisa_registerdev as soon as we have a device match. This allows the
"eisa_add_*" routines to tweak kdc_datalen as the kdc grows and shrinks.

eisaconf.c
- externalize the linked lists that hold our ioaddrs and maddrs.


13765 30-Jan-1996 mpp

Fix a bunch of spelling errors in the comment fields of
a bunch of system include files.


13691 29-Jan-1996 gibbs

Another pass through eisaconf. Ioaddrs and Maddrs are link lists now.
The Bt driver is the only one that actually registers multiple addresses.

Probe output is formatted to 80 columns.


13179 03-Jan-1996 gibbs

The long awaited stability patch set for the aic7xxx driver:

aic7770.c:
Simplify the initialization of adapters by pulling all card specific
initialization to the card specific modules.

eisaconf.c:
outb 0x80 instead of 0xc80. The top byte is truncated anyway, and 0x80
was what was intended.


12721 10-Dec-1995 phk

Staticize and cleanup.
Make debug variable sysctl aware in 1742.


12530 29-Nov-1995 bde

Don't staticize again (twice).

Cleaned up includes.


12513 29-Nov-1995 phk

Staticize again.


12453 21-Nov-1995 bde

Completed function declarations and/or added prototypes.


12429 20-Nov-1995 phk

Mega commit for sysctl.
Convert the remaining sysctl stuff to the new way of doing things.
the devconf stuff is the reason for the large number of files.
Cleaned up some compiler warnings while I were there.


12177 10-Nov-1995 gibbs

Modify the kdc_description for eisa0 to include the system board ID.

Add the mainboard_drv into the eisa driver linker set so that you can
compile eisa0 into your kernel without any other eisa devices.


12175 09-Nov-1995 gibbs

Convert Adaptec 1742 driver to new eisaconf interface.


12157 09-Nov-1995 gibbs

Second pass on this. Sentinal device node was an uneeded complication.
Handle kdc registration correctly. Catch ISA devices that use eisa
registration and output probe information accordingly.

lsdev will have to be updated to handle EISA devices correctly.

aic7770.c:
Set kdc_isa0 as the parent for 284X cards since its a VL card.


12122 06-Nov-1995 gibbs

Probe all slots even if an EISA main board isn't found. This catches
cards like the Adaptec 284x that use EISA ID registers for identification
even when in stalled in non-EISA systems.

Use one format throught the files.

-Wall fixes.


12090 05-Nov-1995 gibbs

This is a totally new implementation of eisaconf. It will hopefully
be the beginning of our move to a more dynamic (configuration manager)
based setup for all drivers. Everything seems to work except for
some devconf problems. Only the aic7xxx driver will be using this
interface until it is reviewed, revised and accepted as a good configuration
interface.

Adapt aic7770.c to use new eisaconf.

eisadevs.c is replaced by a linker set.


8876 30-May-1995 rgrimes

Remove trailing whitespace.


8012 23-Apr-1995 julian

files for the eisa specific autoconfiguration..
don't expect this to work yet.. but at least they're here..
(hey this cvs stuff is fun!)

activate with a line exactly like the isa line in the config file,
(but specifying eisa :)
patches to come..