Commit Graph

30 Commits

Author SHA1 Message Date
christos 4251568ad8 Fix multi-function card memory problems:
- centralize pcmcia function allocation and free'ing.
- free the cfe too, not just the pf in the multifunction card case.
- don't free pointers while walking the list, because free() will
  fill the memory with deadbeef, thus killing list walking.
2002-08-15 10:37:02 +00:00
lukem 06de426449 SIMPLEQ rototill:
- implement SIMPLEQ_REMOVE(head, elm, type, field).  whilst it's O(n),
  this mirrors the functionality of SLIST_REMOVE() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE()
- remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD().
  this mirrors the functionality of SLIST_REMOVE_HEAD() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD()
- remove notes about SIMPLEQ not supporting arbitrary element removal
- use SIMPLEQ_FOREACH() instead of home-grown for loops
- use SIMPLEQ_EMPTY() appropriately
- use SIMPLEQ_*() instead of accessing sqh_first,sqh_last,sqe_next directly
- reorder manual page; be consistent about how the types are listed
- other minor cleanups
2002-06-01 23:50:52 +00:00
tsutsui b87a051ec8 Call malloc(9) with M_ZERO flag instead of memset() after malloc(). 2002-01-12 16:17:05 +00:00
lukem 2565646230 don't need <sys/types.h> when including <sys/param.h> 2001-11-15 09:47:59 +00:00
lukem ab5d9d2b0c add RCSIDs 2001-11-13 07:24:43 +00:00
bouyer b495351fbf Commit changes I posted to tech-kern on Oct 14, which makes the ethernet part
of my Xircom RealPort Ethernet 10/100 + Modem (REM56G) work.
The modem part is still not usable (this would need some PCMCIA magic that
I don't know how to do; see my message to tech-kern on Oct 07).
Change to pcmcia_cis.c from OpenBSD.
I checked that this doesn't break a 3com 3C562D (ethernet+modem) which I
also have.
2001-10-25 20:20:24 +00:00
itohy 0f210a885d Add simple boundary check on CIS parsing.
I have a weird PC-card-style appliance (I'm not sure I may call it a PC card)
whose ``CIS'' reads zeros forever, which caused kernel panic.

For your interest, it is a cooling fan to be inserted to a PC card slot.
2001-09-24 14:19:10 +00:00
thorpej 4953d4e85f bzero -> memset 2001-07-07 16:51:47 +00:00
jmc 95cc3bf342 Turn off PCMCIACISDEBUG by default. This should get set with options in a config file 2001-05-13 04:24:28 +00:00
toshii d85c2b7e17 Change place of tuple.{memt,memh} initialization. 2001-03-27 18:09:31 +00:00
martin abd28c6cc2 Stopgap fix for PR 9984: sprinkle some (small) delays at appropriate
places into the CIS reading code.

The card in question has IO8 only enabled in its CIS info and is apparently
not able to keep up with quick reads. It words fine in a pcmcia slot but
panics(!) the kernel in a TI 1250 cardbus slot. This may be a failure of
the pci cardbus code when initializing this bridge. When finding (and
fixing) that, we should back this change out.

The card I am testing with is not broken, I have multiple versions of it
(AVM Fritz! pcmcia ISDN card), all work fine on windows and all cause
us to panic because of bogus CIS info read.

XXX - panicing because of bogus CIS data is probably another error.
2001-02-10 23:22:10 +00:00
haya 8130f0ec5d Add a cis decoding function which decodes some CISTPL_FUNCE tuples for
disk and network functions.
2000-10-17 10:13:46 +00:00
jun ceafcbd834 apply Kenji Aoyama <aoyama@nk.mcu.or.jp>'s patch
on port-hpcmips-ja@jp.netbsd.org Mon, 10 Jul 2000 21:21:47 +0900

FIX:
  Can't read CIS tuple chain:some TDK CF Flash memory card.
2000-07-14 08:02:12 +00:00
enami 91026fe7f2 Cosmetic changes. 2000-02-21 03:26:41 +00:00
chopps d8595b9af3 map common memory 8 bit for cis scan when following longlinks. 2000-02-10 09:01:52 +00:00
chopps b5064330de The cfe is initialized to the default entry, when a table entry value
is present don't OR in the flags with the defaults, replace them.
2000-01-25 06:36:17 +00:00
enami b7868a436d Don't overwrite cfe->flags. 2000-01-20 08:47:59 +00:00
cgd d447117750 Some additional sanity checks to keep this code from bursting into
flame if presented with bad CIS data (e.g. because of a memory space
conflict):
* more sanity checking on LONGLINK_MFC CIS tuples (exact length check, sanity
  check on size vs. size of array we allocated for them), to avoid various
  missteps which could cause this code to complete trash the kernel stack.
* clear the entire contents of the state structure before processing, so
  things like uninitted pointers will actually have a known value!
* be more careful with CISTPL_CFTABLE_ENTRY: check to see that the current
  state's default_entry isn't NULL before dereferencing it.
2000-01-14 23:09:53 +00:00
enami 8567277ae0 Print range of all iospaces or all memspaces if their length aren't zero. 1999-11-07 07:44:21 +00:00
bad 54b747eb16 In pcmcia_pars_cis_tuple(): in the PCMCIA_TPCE_FS_MEMSPACE_TABLE case
there is one more memspace in the table then the PCMCIA_TPCE_MS_COUNT
mask produces.
1999-07-11 00:34:37 +00:00
bad c95ed3d2e5 In pcmcia_print_cis(): When printing io and mem spaces don't append trailing
0s if length or hostaddr are zero, instead DTRT.
1999-07-11 00:26:29 +00:00
marc 9ada0bf40f check for end of tuple while reading cfe data 1998-12-29 09:03:15 +00:00
msaitoh 7734e0ef29 fix version string (from PC Card Standard, April 1998 (Release 6.1)) 1998-08-22 23:41:48 +00:00
nathanw a461703d7f Use PCMCIA_FUNCTION definitions.
Initialize function ID in new pcmcia_function structures to
PCMCIA_FUNCTION_UNSPEC, not PCMCIA_FUNCTION_MULTIFUNCTION (0).
1998-08-13 15:03:06 +00:00
christos e3bc291504 Add a devlist2h.awk so that we don't sprinkle the same constants over
each device driver file and use it.
1998-07-19 17:28:15 +00:00
marc d663cd1216 better MFC parsing (for 3c56[23]D), and make sure the pf is zeroed out before using it (for adaptec 1460b) 1998-07-01 07:13:41 +00:00
msaitoh 34b0df807a add some information from "PC Card standard March 1997" 1998-05-29 16:21:28 +00:00
christos 83449d8960 - fix pcmcia_scan_cis to return:
-1 error
	 0 desired tuple not found
	 1 desired tuple found
1998-03-09 21:54:13 +00:00
enami 4e304b8dd7 Make `manufacturer' and `product' 32bit wide so that they can contain
both 16bit id values found in card CIS and special value to indicate
that no value found in CIS.  Use that special value for the card that
doesn't have id values.  Test that value in ne2000_match().
1997-10-19 14:00:32 +00:00
thorpej c66b8643d1 Pull marc-pcmcia branch down from trunk. 1997-10-16 23:27:16 +00:00