Commit Graph

130 Commits

Author SHA1 Message Date
Warner Losh
923a651ddf Remove debug printfs and Debugger() calls.
Add support for memory mapping

This should allow pccard that need memory mapping to work, but I don't
have one to test against.
1999-10-25 23:17:24 +00:00
Warner Losh
4f76d87b21 Massive rewrite of pccard to convert it to newbus.
o Gut the compatibility interface, you now must attach with newbus.
o Unit numbers from pccardd are now ignored.  This may change the units
  assigned to a card.  It now uses the first available unit.
o kill old skeleton code that is now obsolete.
o Use newbus attachment code.
o cleanup interfile dependencies some.
o kill list of devices per slot.  we use the device tree for what we need.
o Remove now obsolete code.
o The ep driver (and maybe ed) may need some config file tweaks to
  allow it to attach.  See config files that were committed for examples
  on how to do this.

Drivers to be commited shortly.

This is an interrum fix until the new pccard.  ed, ep and sio will be
supported by me with this release, although others are welcome to try
to support other devices before new pccard is working.

I plan on doing minimal further work on this code base.  Be careful
when upgrading, since this code is known to work on my laptop and
those of a couple others as well, but your milage may vary.

BUGS TO BE FIXED:

o system memory isn't allocated yet, it will be soon.
o No devices actually have a pccard newbus attach in the tree.

BUGS THAT MIGHT BE FIXED:

o card removal, including suspend, usually hangs the system.

Many thanks to Peter Wemm and Doug Rabson for helping me to fill in
the missing bits of New Bus understanding at FreeBSD Con '99.
1999-10-25 02:41:58 +00:00
Warner Losh
35c0baa6b7 Remove name field from controller information. Fix name setting in
pc98 case that I missed before.  Attempt to get the irq for the PCIC
first from the loader env var and second from the config system.  I've
been able to boot my laptop with a kernel that hardwired the irq to
10.  This should allow boot -c to finally start working for pcic irq,
but I've not tested that.  Add $FreeBSD$ to slot.h.
1999-10-16 05:11:46 +00:00
Warner Losh
b5137699ae Reorganize the attachement point for pcic (it was unattached and
floating before).  Attach pccard devices to pcic, one per slot
(although this may change to one per pcic).  pcic is now attached to
isa (to act as a bridge) and pccard is attached to pcic, cbb and
pc98ic (the last two are card bus bridge and the pc98ic version of
pcic, neither of which are in the tree yet).  Move pccard compat code
into pccard/pccard_compat.c.

THIS REQUIRES A CONFIG FILE CHANGE.  You must change your pcic/card
entries to be:
# PCCARD (PCMCIA) support
controller	pcic0	at isa?
controller	pcic1	at isa?
controller	card0

The old system was upside down and this corrects that problem.  It
will make it easier to add support for YENTA pccard/card bus bridges.

Much more cleanup needs to happen before newbus devices can have
pccard attachments.  My previous commit's comments were premature.
1999-10-15 17:29:21 +00:00
Warner Losh
58a49816c7 *** empty log message *** 1999-09-26 21:52:43 +00:00
Warner Losh
b99d6b5edc Kludge together support for the old pccard system with newbus. This
will allow newbus based drivers to have pccard attachments.  Also
start printing out probe messages for pccards stating the resources
used and regularize many of the pccard printfs.

Reviewed by: Peter Wemm.
1999-09-06 06:34:44 +00:00
Bill Fumerola
a444756625 (1) Fix a spelling mistake in a comment.
(2) Add braces to avoid ambigious if/if/else

Reviewed by:	bde
1999-08-17 22:13:06 +00:00
Warner Losh
0226bd1a3e o Add additional printfs for error cases when we can't attach the device.
o Add field to dev_desc for the size of the io port range.  This isn't
  used yet in the committed sources, but will make the transition easier
  in the future.

If you build this into your kernel, you will need to rebuild pccardd.
1999-08-01 18:12:51 +00:00
Peter Wemm
6a2648e613 Operator precedence (nit: in #if 0 code) bug.
PR:		11413
Submitted by:	Christopher Peterson <cpeterso@cs.washington.edu>
1999-05-02 21:45:31 +00:00
Peter Wemm
e91896117b Well folks, this is it - The second stage of the removal for build support
for LKM's..
1999-04-17 08:36:07 +00:00
Nate Williams
efc7b6fd9d - Made the setting of the machdep.pccard.pcic_irq from the boot config file
actually work.

Reviewed by:	"Sean O'Connell" <sean@stat.Duke.EDU>, msmith
1999-03-26 00:20:25 +00:00
Warner Losh
841c7bb674 Remove static delcarations from {,un}register_pcic_intr declarations
in the not APIC_IO case.  This should silence the warnings when
building pcic.c as well as the undefined functions when the kernel
links.

Noticed by: several people in -current and me building the kernel
1999-03-12 18:45:47 +00:00
Roger Hardiman
6fe7bbc584 Updated to use new APIC (SMP) safe interrupt register/unregister
functions.
Posted for review to -smp and -mobile and -hackers with no objections.

Reviewed by:	Nate
1999-03-10 15:00:54 +00:00
Guido van Rooij
05440e6882 On second thought: do previous fux in pcic.c better.
Now we just untimeout the call to inserted() if it exists.
1999-02-14 20:41:01 +00:00
Guido van Rooij
a1f7e1b4c5 Somehow, it is possible to get a pcicintr() when in the resume process.
This will trigger inserted()) to be called twice which confuses pccardd.
Add code to not process pcicitr())'s when in the middle of a resume
process. The real insertion of cards and the emulated one in the suspend/resume
code really do not mix up.
1999-02-14 20:16:15 +00:00
Mike Smith
7546e83ec1 Allow the interrupt allocated to the PCIC to be tuned from the kernel
environment by setting the variable machdep.pccard.pcic_irq.  If
the IRQ is invalid, the PCIC will run in polled mode.
1999-01-29 01:18:15 +00:00
Peter Wemm
9b3df7693a Initial update pccard code for KLD module support. Module support
however is only marginally useful until the new-style bus (pci and isa)
stuff comes onboard to give us a better shot at actually pci and isa
drivers loadable (or preloadable anyway).
1999-01-19 00:18:28 +00:00
Archie Cobbs
f1d19042b0 The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static
and local variables, goto labels, and functions declared but not defined.
1998-12-07 21:58:50 +00:00
Warner Losh
6e73d499d8 Add probing support for the vadem VG365 and the Vadem VG465 pcic chips.
We do the same thing we do with all the other Vadem chips and print the
right identification for these chips.  Tested with the 365, and inferred
for the 465.

This allows the cheapo PCMCIA card that I got from necx to print the right
chip number on boot.
1998-08-25 22:46:44 +00:00
Bruce Evans
86a14a7a0a Use [u]intptr_t instead of [u_]long for casts between pointers and
integers.  Don't forget to cast to (void *) as well.
1998-08-16 01:21:52 +00:00
Bruce Evans
9a2daf9190 Changed the type of an isa/general interrupt handler to take a
`void *' arg.  Fixed or hid most of the resulting type mismatches.
Handlers can now be updated locally (except for reworking their
global declarations in isa_device.h).
1998-06-18 15:32:09 +00:00
Nate Williams
e4c50d858a - Only poll the PCIC controller for insertion/removal events if the
controller hasn't been assigned an IRQ.
1998-04-20 15:15:20 +00:00
Bruce Evans
c1087c1324 Support compiling with `gcc -ansi'. 1998-04-15 17:47:40 +00:00
Tatsumi Hosokawa
bf595ed7c2 Uninitialized pointer reference may happen on particular environment.
(for example, it kills my new laptop, Toshiba Libretto 100....)
1998-03-19 16:19:16 +00:00
Nate Williams
abacde6281 - Remove the code that cleared out the registers (previously enabled by the
option PCIC_NOCLRREGS).  This is now the default behavior since it's
  apparently required for the CLPD6832, and doesn't negatively affect
  any of my test machines.

Requested by:	Ted Faber <faber@ISI.EDU>
1997-12-02 23:23:14 +00:00
Nate Williams
b4a6741e01 - Remove PCI code from here, now that the PCI framework lives in /sys/pci. 1997-12-02 21:31:35 +00:00
Nate Williams
052492ab36 - Renamed 'card.h' to 'cardinfo.h', to avoid namespace collisions with
the card.h that config builds.

[ Repository renaming done in the background to save the card.h history ]
1997-11-18 21:04:01 +00:00
Nate Williams
40b8c3d008 MF22:
(update_intr_masks might not need to be done in 3.X, but the new generic
 interrupt code is incomplete w/regard to support for the PCCARD code, so
 to avoid any potential problems use it.  It can't hurt).

- Correctly register pcic_imask with the system interrupt code.

- Call update_intr_masks() so that pcic_imask modifications that occur
  when card interrupts are registered get updated in the system
  interrupt code.
1997-11-15 14:20:31 +00:00
Nate Williams
e7f1b188ac - Reset the pcic controller interrupt 'poll' timeout *after* we call the
interrupt routine.
1997-11-04 17:50:23 +00:00
Nate Williams
57bb328afe - More style nits (sorry, I should have done this last time). 1997-10-28 20:58:53 +00:00
Nate Williams
6a6dd364ab - Style nit. 1997-10-28 20:50:58 +00:00
Nate Williams
e7e437dbfa - Do a bunch of gratuitous changes intended to make the code easier to
follow.
 * Rename/reorder all of the pccard structures, change many of the member
   names to be descriptive, and follow more closely other 'bus' drivers
   naming schemes.
 * Rename a bunch of parameter and local variable names to be more
   consistant in the code.
 * Renamed the PCCARD 'crd' device to be the 'card' device
 * KNF and make the code consistant where it was obvious.
 * ifdef'd out some unused code
1997-10-26 04:36:24 +00:00
Nate Williams
3673dc01e7 - KNF the PCI stuff, no functional changes. 1997-10-25 21:02:44 +00:00
Nate Williams
028cec1015 - Recognize the Cirrus Logic PD6729/6730 PC-Card Controller behind the
PCI bus.

[ Re-organized the code to be easier to extend, based on Michael's patch ]

Submitted by:	Michael Reifenberger <root@totum.plaut.de>
1997-10-24 15:39:00 +00:00
Garrett Wollman
49acc834db LEarn about the TI 1131. 1997-10-17 16:34:08 +00:00
Nate Williams
9ebc881f81 - Fix braino in last commit. 1997-10-06 04:02:42 +00:00
Nate Williams
01f370b672 Modem cards send the speaker audio (dialing noises) to the host's
speaker.  Cirrus Logic PCIC chips must enable this.  There is also a Low
Power Dynamic Mode bit that claims to reduce power consumption by 30%,
so enable it and hope for the best.

PR:		4650
Submitted by:	Nick Sayer <nsayer@quack.kfu.com>
1997-10-06 03:17:36 +00:00
Nate Williams
90c752d519 - Don't start at IRQ 0 in build-freelist, but instead start at IRQ 1.
(Not sure if this makes muich difference, but you never know.)
1997-10-06 02:54:19 +00:00
Nate Williams
34d9a7896e - Style police
- Updated some comments using data from the most recent PAO release.

Obtained (partially) from:	PAO-970616
1997-10-06 02:46:38 +00:00
Justin T. Gibbs
6c951b4441 Update for new callout interface. 1997-09-21 22:02:25 +00:00
Bruce Evans
f6af917bec Oops, unremoved used #include. 1997-07-21 16:55:28 +00:00
Bruce Evans
4b9ea34eec Use soft_imask instead of SWI_MASK in the LKM version. SWI_MASK shouldn't
have been visible in LKMs, since it had the wrong value for the APIC_IO
case.

Removed unused #includes.
1997-07-21 16:50:46 +00:00
Jordan K. Hubbard
e5c3a660f5 Make this puppy compile again - add two includes. 1997-06-01 05:04:39 +00:00
Poul-Henning Kamp
0084fb021b Don't apply 5V when we want 3.3V.
Kludge around the case where the PCIC refuses to use 5V because it knows
better than us.
1997-05-22 07:29:24 +00:00
Poul-Henning Kamp
29eb228ebb Recognize, but don't actually do much with a TI PCI1130 PcCard/CardBus bridge. 1997-05-03 13:57:26 +00:00
Poul-Henning Kamp
b805b39e43 1. i82365.h: Chip identifiers should not be #ifdef PC98. Add identifier
(pt. unused) for TI PCI1130.

2. pccard.c: PCIC_RESUME_RESET is now (also) a sysctl.  (Never make it
    a #ifdef if it can be made a sysctl!)

3. pcic.c: make getb() and putb() proper member functions of struct
    pcic_slot.  Add a couple of missing casts.
1997-04-20 07:21:12 +00:00
Peter Dufault
0ddf9be1f0 Make MOD_* macros almost consistent:
Use the name argument almost the same in all LKM types.  Maintain
the current behavior for the external (e.g., modstat) name for DEV,
EXEC, and MISC types being #name ## "_mod" and SYCALL and VFS only
#name.  This is a candidate for change and I vote just the name without
the "_mod".

Change the DISPATCH macro to MOD_DISPATCH for consistency with the
other macros.

Add an LKM_ANON #define to eliminate the magic -1 and associated
signed/unsigned warnings.

Add MOD_PRIVATE to support wcd.c's poking around in the lkm structure.

Change source in tree to use the new interface.

Reviewed by:	Bruce Evans
1997-04-06 11:14:13 +00:00
Nate Williams
5d156f4397 Argh, this time get the parentheses right. This hasn't been a good day for me. 1997-02-21 05:46:57 +00:00
Nate Williams
9de5530881 Whoops, make sure we have enough parenthesis.
Pointed out by:	bde
1997-02-21 01:29:32 +00:00
Nate Williams
9b4e82f125 Try to make the BROKEN_VLSI chipset detection better, and not break
non-broken chipssets whose ID is 0x84, such as the one found in the NEC
6030H.

> The code relies on the assumption that on a genuine_broken vlsi, you
> don't get 0x84 when probing slot 1 in the normal location.  On the versa I
> do get 0x84 when probing slot 1 in the normal location.  What you get on
> genuine_broken at the normal slot 1 location is unknown to me;

Submitted by:	Chris Timmons <skynyrd@opus.cts.cwu.edu>
1997-02-18 19:20:52 +00:00
Nate Williams
bf083f9e6b One other minor include file change.
Submitted by:	bde
1997-01-14 16:29:05 +00:00
Nate Williams
d7394bb574 Include file cleanups.
Submitted by:	bde
1997-01-13 21:51:13 +00:00
Nate Williams
9f2f000c7f Initialize pcic_imask with SWI_MASK to interference from timeout routines.
Suggested by:	bde
1997-01-11 23:40:08 +00:00
Nate Williams
b1e21161bf Whoops, typo. 1997-01-11 18:32:27 +00:00
Nate Williams
cc6da87199 Update the PCIC controller's imask with individual slot IRQ's.
Assuming that the intr_mask[] was updated by changing the maskptrs (the
existing update_intr_masks() function will not work) this code was
written so the PCIC controller insertion/removal events will not
interrupt the card IRQ handler events.

Some possible scenarios:
+ Card is removed during IRQ handler:

  - PCIC card handler is allowed to interrupt
  - card removal event is called, removing the driver and data structures
  * card interrupt handler continues w/out driver, data structures, and hardware

OR (the code just committed)

  * card IRQ handler has no hardware to read/write to, but has code and
    data to run on (XXX- Assume it completes and doesn't spin forever)
  - PCIC card handler unloads the card driver

The current situation at least leaves the card interrupt handlers the
drivers and data structures to work with although the hardware can't be
guaranteed.

Reviewed by:	bde
1997-01-11 18:23:20 +00:00
Nate Williams
8b8f892696 Now that all of the IRQ's should be allocated by the time this
pccard_configure() is called (except for LKm's :( ), build a list of
unassigned interrupts for the PCCARD code to use.

Reviewed by:	bde
1997-01-11 17:54:57 +00:00
Nate Williams
22d0d81b71 - Added PCIC resume function
- Cleaned up VLSI-PCIC work-around code

Submitted by:	nate & the Nomads
1997-01-08 00:22:58 +00:00
Nate Williams
573fcfdc8b - Don't include <machine/laptops.h>. It was a kludge I should never
have imported.
1996-09-07 17:50:47 +00:00
Satoshi Asami
c9da8434ea Yet another merge. Remove support.s by deleting memcopy. Remove
autoconf.c by merging icu.h.  Fix a couple of typos.

Submitted by:	The FreeBSD(98) Development Team.
1996-09-07 02:14:47 +00:00
Poul-Henning Kamp
bfbb029d87 Remove devconf, it never grew up to be of any use. 1996-09-06 23:09:20 +00:00
Satoshi Asami
ad63a118b2 The Great PC98 Merge.
All new code is "#ifdef PC98"ed so this should make no difference to
PC/AT (and its clones) users.

Ok'd by:	core
Submitted by:	FreeBSD(98) development team
1996-06-14 11:02:28 +00:00
Nate Williams
ceff12b4c4 Adds the APM hooks into the generic pccard kernel files. With this code
in place device drivers can now register power-down/power-up routines so
that we can use common routines to power-up/power-down cards for
insert/removals, suspend/resume, etc..

Reviewed by:	phk
Submitted by:	the 'Nomads'
1996-04-23 16:03:08 +00:00
Bruce Evans
4165cacd4f Changed #includes of <i386/include/foo.h> to #includes of <machine/foo.h>. 1996-04-07 17:56:53 +00:00
Gary Palmer
8577a36957 pccard.c:
#include <i386/include/clock.h> to get sysbeep() prototype

pcic.c:
	add appropriate #ifdef around a prototype to quiet GCC because
	fn decl. is also #ifdef'd.
1996-04-06 01:16:19 +00:00
Nate Williams
2b1f32c2f9 Removed un-used code. 1996-02-21 23:31:03 +00:00
Nate Williams
4765b33331 Updated PC-CARD support to contain most of the code from the latest
Japanese BSD-Nomad release.

Reviewed by:	phk
Submitted by:	hosokawa@mt.cs.keio.ac.jp and the rest of the Nomads
1996-02-21 23:20:21 +00:00
Nate Williams
ea5ff881da Don't rely on the card 'automatically' powering up when we probe it.
On some laptops, this doesn't work (ie; IBM 75x series), so force it
to power on.

With this modification, I am able to read the tuples off 4 different
PCMCIA cards on my ThinkPad.

Reviewed by:	phk@FreeBSD.org
Obtained from:  if_zp.c
1996-01-06 07:49:43 +00:00
Bruce Evans
193f212a54 Completed function declarations and/or added prototypes and/or added
#includes to get prototypes.
1995-12-16 00:11:11 +00:00
Poul-Henning Kamp
c9c0fe135d Make the LKM version compile again.
Pointed out by: Michael Smith <msmith@atrad.adelaide.edu.au>
1995-11-21 08:27:00 +00:00
Bruce Evans
b3e24f9ce9 Changed the first (name) arg of MOD_DEV(), MOD_EXEC() and MOD_MISC()
from a string to an identifier so that it can be used to generate
declarations and strings.  It's much easier to stringize an identifier
than to identifize a string.  A uniform naming scheme must be used
for the automatically generated things to apply.  This is a feature.

Used the module identifer to generate prototypes for the module load,
unload and stat functions.  Removed the few prototypes for these that
already existed.

Used the module identifier to generate a unique struct tag in MOD_DEV().
This should probably be done for all the MOD_*() macros.

Moved the trailing semicolon from the MOD_*() macro definitions to the
macro invocations that didn't already (bogusly) have it.

Staticized the module load and unload functions.

Added function return types for the module load, unload and stat functions.

lkm/ibcs2/ibcs2.c:
Included <sys/sysproto.h> to get everything prototyped.
Cleaned up #includes.

lkm/ibcs2/ipfw.c:
Cleaned up #includes.

lkm/linux/linux.c:
The module name had to change from "linux_emulator" to "linux_mod" to
be automatically generated.
Cleaned up #includes.

lkm/syscons/*/*_saver.c:
Completed delcarations of function pointers.

sys/i386/isa/atapi.c:
The module name had to change from "atapi" to "atapi_mod" to be
automatically generated.

sys/i386/isa/wcd.c:
Used the fixed MOD_DEV().  This module has two devices and expanded the
macro in the source instead of fixing it.
The module names had to change from "wcd" and "rwcd" to "wcd_mod" and
"rwcd_mod" to be automatically generated.

sys/pccard/pcic.c:
The module name had to change from "pcic" to "pcic_mod" to be
automatically generated.
1995-11-14 07:35:57 +00:00
Bruce Evans
cc286f2399 Fixed the type of yet another timeout function.
Fixed the type of pcic_unload().

Replaced nosys() by lkm_nullcmd() in pcic_mod() and in a misplaced
comment about the lkm interface.
1995-11-13 08:39:44 +00:00
Poul-Henning Kamp
fd24fbdf21 Clean up the ident style.
Remove the APM stuff
Add support for VA469

Submitted by: Janic.Thaillandier@ratp.fr
1995-11-09 20:44:36 +00:00
Bruce Evans
de3a4845ee Fixed the type of a timeout function and an interrupt mask variable. 1995-11-09 08:58:20 +00:00
Poul-Henning Kamp
688444459d Fix a missing arg to untimeout. 1995-10-23 12:05:24 +00:00
Poul-Henning Kamp
b59d7f4673 A mixed bag of changes, relating to getting the state in "lsdev" right,
and pccard support to work sensibly.  Better by far, but still not good.
1995-10-21 00:55:36 +00:00
Poul-Henning Kamp
d19e0556a0 Make LKM entry consisten with tradition: pcic_mod(). 1995-10-15 16:59:36 +00:00
Poul-Henning Kamp
14a288e58b PCCARD support. 1995-10-10 09:52:55 +00:00
Poul-Henning Kamp
872fd9222e Missed these changes to the pccard stuff. Sorry Martin! 1995-09-20 07:23:51 +00:00
Poul-Henning Kamp
f673a8d884 Shut warnings.
Add selwake calls.
remove some trash.
1995-08-25 09:47:06 +00:00
Poul-Henning Kamp
0d2966d3f2 Andrew McRae's pcmcia/pccard code, the kernel part.
This is still very green, but I have managed to get my modem working.
Lots of work still to do, but now at least we can commit it. /phk

Reviewed by:	phk
Submitted by:	Andrew McRae <andrew@mega.com.au>
1995-08-24 08:56:20 +00:00