1.182; christos
A cardflash NE2000 from Michael Francini
1.181; perry
support Corega PCCL-11 -- from Christopher SEKIYA in PR 20932
1.180; ichiro
add product TOSHIBA PA2673U CBIDE2 (IODATA OEM)
1.179; kanaoka
Add SMC 8041TX 10/100 Ether PC Card.
0 in a problem that is being discussed. That means that the test for
product != 0 may cause problems. Looking at pccarddevs (which i
should have done earlier) we see:
product BONDWELL B236 0x0000 Game Card Joystick
product CONTEC CNETPC 0x0000 Contec C-NET(PC)C
product IBM MICRODRIVE 0x0000 IBM Microdrive
product RAYTHEON WLAN 0x0000 WLAN Adapter
product SOCKET EA_ETHER 0x0000 Socket Communications EA
product TDK LAK_CD011WL 0x0000 TDK LAK-CD011WL
so use only the vendor field for the end sentinel.
or stg driver. They are,
Macnica mPS110, PANASONIC(KME) KXLC004, Qlogic Fast SCSI,
Workbit Ultra Ninja-16, (ID based)
Future Domain SCSI2GO, IBM SCSI PCMCIA card, I-O DATA CBSC16,
Macnica mPS100, Newmedia BASICS-SCSI, RATOC REX-5536, RATOC REX-5536AM,
RATOC REX-5536M, RATOC REX5572, Workbit NinjaSCSI-3
(CIS based)
Note: We need vendor IDs WORKBIT2 and IODATA3 which is -1, since some
cards does not have IDs in the CIS and fails to be probed without
this fake vendor IDs.
o Change the strings of RATOC REX_R280 from REX-R280 to REX-R280/REX-9530.
This reminds us that REX-R280 and REX-R9530 have same ID (same product).
Reviewed by: imp
Approved by: re
Obtained from: /etc/defaults/pccard.conf,
List of CIS tupples by Toshihiko ARAI and PAO project:
http://www.linkclub.or.jp/~clover/cis/
Change suggestion by: HASEGAWA Tomoki <thasegawa@mta.biglobe.ne.jp>
for I-O DATA CBSC16 entry
o Use 32-bit unsigned types for things that really are 32-bit quantities,
not bus_addr_t. These are not the same as a bus_addr_t, so don't use
that here. Harmless on i386, introduced problems on sparc64.
Submitted by: jhb
o Always release the resources on device detach.
o Attach resources the same with driver added as we do we do in the insert
case (maybe this should be a routine).
o signal the wakeup of the thread on resume instead of trying to force an
interrupt.
o Minor debug hacks.
o use 0xffffffff instead of -1 for uint32_t items.
o Don't complain when we're asked to detach no cards. This is normal.
o Eliminate the now worthless second parameter to card_detach_card.
o minor style(9)isms
Some of these patches may be from: iwasaki-san, jhb, iadowse
the card.
o Add comments about how we're doing the CIS activation.
o Add location and pnp info functions.
o Add better code to hopefully deal with ata cards better (and other drivers
that allocate resources that we didn't preallocate from the CIS). OLDCARD
used to allow it, but NEWCARD was pickier. I'm not 100% sure this works,
but it doesn't break anything.
give us slightly better error checking than before and interpret what
default bits mean better. See the NetBSD CVS tree for the authors of
these changes (revs 1.10 .. 1.17).
reprobe code working. This bogusness was thrust upon me.
o Don't delete the device if no drivers attach. I had thrust this bogusness
upon others.
These two changes make kldload of a pccard driver work again.
In this installment, we learn that it is bad to access registers that
are only defined for mfc cards in the interrupt handler when we do not
in fact have a mfc card. For MFC cards, we'll only call the ISR if
the this card interrupted bit is set. For non mfc cards (which are
basically 90% of pccards in use), we always call the ISR and avoid
touching the suspect registers. We always pacify the bit in the MFC
case on the off chance that will help in the itnerrupt handler not
being registed.
Don't set the CCR_OPTION register when registering/deregistering
interrupts unless the card is a MFC card. This makes a lot of cards
work that didn't work before. These bits are only defined for MFC
cards.
Remove COOKIE_FOR_WARNER kludges that phk introduced.
Add more debug info.
Annoy the purists by committing two minor style nits at the same time.
Many thanks to phk. He tracked this problem down to what was screwing
things up, so fixing it became trivially easy once the problem was
understood.
in the .h file. Make it static __inline to make sure that it doesn't
wind up defined in any files.
Also, fix a typo that said null_do_attach instead of null_do_probe.
1.93; henning; MA401RA wi card
1.92; millert; elsa XI-325 wi card
1.91; fgsch; gemplus cpr400 smartcard reader
1.90; mickey; Nokia c110/c111 is prism2 card
1.89-1.86 (similar to what we do already)
allows us to properly parse cards with attribute memory based CIS that
before wouldn't parse correctly, sometimes with a panic. This allows
me to get my 3C562 modem/ethernet card to fail to attach due to
problems in the ep and sio drivers rather than due to problems in the
CIS parsing code :-).
We weren't setting the address to jump to for the function entries.
This caused us to only work when the addional entries were after the
first ones. On the 3C562/3C563 card this was not the case.
We were also mapping Attribute memory when common memory was asked for
in the target of the LONGLINK_{A,C} or LONGLINK_MFC.
My IBM Home And Away Modem/LAN card still fails for reasons unknown.
o Call bus_generic_setup_intr and check its return value. Don't setup
func until we successfully get the interrupt from our parent.
o Add comments about some maybe questionable stuff so I can check later
to make sure that it really is that way.
pccard layer and rename them PCMCIA_CARD and PCMCIA_CARD2 respectively
(note, this is being done with an eye towards NetBSD integreation so
it is easier to keep lists of cards between us and them in sync).
Use this in the an and wi drivers.
Briefly, the significant changes include:
* Way better resource management in pccbb, pccard and cardbus.
* pccard hot-removal now appears to work.
* support pre-fetchable memory in cardbus.
* update cardbus to support new pci bus interface functions.
* Fix CIS reading to no longer use rman_get_virtual().
What's not there, but in the works:
* pccard needs to do interrupt properly and not read the ISR on single
function cards.
* real resource management for pccard
* a complete implementation of CIS parsing
* need to look into how to correctly use mutex in pccbb
This is the first part of a two-part update to NEWCARD. Changes in this
commit are non-functional, and includes the following:
* indentation and other changes to meet style(9).
* other minor style consistancy changes
* addition of comments
* renaming of device_t variables to be consistant across all of NEWCARD.
(note that not all style violations are fixed in this commit -- those that
aren't will be clobbered by the next commit.)
we need to delete the info from the list as well as zero out the res
pointer we saved in the code.
Also made a few style(9) changes while I was at it. Don't use if
(ptr) or if (!ptr), but compare against NULL. Compare against NULL
rather than 0. Don't have useless blocks.
There are likely other problems as well, but at least the wi based
wireless card with memory listed in its cis doesn't panic the system
when the card is inserted.
pccard in the kernel for those drivers with pccard attachments. This
makes the compat layer a little larger by introducing some inlines,
but should almost make it possible to have independent attachments.
The pccard_match function are the only one left, which I will take
care of shortly.
o 1.111 imp Sync with FreeBSD.
o 1.110 nonaka Add Roland SCP-55
o 1.109 ichiro add NANOSPEED ROOT-RZ2000 WLAN Card
o 1.108 ichiro add EMTAC A2424i 11Mbps WLAN Card
o 1.107 haya Add IO Data CBIDE2 ata interface card.
o 1.106 jhawk s/NULL}/NULL }/
o 1.105 thorpej " " -> "&sp" in two entries, per Rafal Boni.
o 1.104 thorpej Add SMC 2632W. From Rafal Boni, kern/11775.
o 1.103 drochner add IBM microdrive
o 1.102 soren Typo.
o 1.101 hubertf Add ELSA WaveLAN card & a noname clone(?)
o 1.100 toddpw Socket Comm. PC Card Ethernet, and tidy up naming.
o 1.99 msaitoh MELCO LPC2-TX, Telecom Device TCD-HPC100,
MACNICA ME1-JEIDA
o 1.98 imp Sort BAY into numerical order. (already in FreeBSD)
The pccard_function_init() call creates a bunch of inactive resources
that are persistant and configured on demand. When the child driver
"allocates" a resource it is connected up to one of these. When the
child releases the resource, we should not delete our copy, just
deactivate it again. Otherwise there is nothing to recreate it again
after several probe functions have run and done an alloc/release cycle.
INVARIANTS shows 0xdeadc0de without this.
More work is needed to do a sweep though the pccard_function_disable()
call to actually delete the resources for real. Right now, we leak
memory on eject (at best), so Dont Do That(TM) yet. This affects
16 bit pccards on a cardbus bridge only. This will be fixed soon, but
for now it gets the cards working.
Reviewed by: imp
to conform to style(9), plus one other convention that I use:
o Declare variables at the start of the function, rather than in blocks
when it doesn't help understanding (mine).
o 80 column limit.
o BSD style statement continuation, rather than "gnu" style.