From owner-freebsd-mobile Thu Dec 4 14:33:14 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id OAA10571 for mobile-outgoing; Thu, 4 Dec 1997 14:33:14 -0800 (PST) (envelope-from owner-freebsd-mobile) Received: from ns.mt.sri.com (sri-gw.MT.net [206.127.105.141]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id OAA10554 for ; Thu, 4 Dec 1997 14:33:10 -0800 (PST) (envelope-from nate@mt.sri.com) Received: from mt.sri.com (rocky.mt.sri.com [206.127.76.100]) by ns.mt.sri.com (8.8.8/8.8.8) with SMTP id PAA19733; Thu, 4 Dec 1997 15:33:08 -0700 (MST) (envelope-from nate@rocky.mt.sri.com) Received: by mt.sri.com (SMI-8.6/SMI-SVR4) id PAA27702; Thu, 4 Dec 1997 15:33:06 -0700 Date: Thu, 4 Dec 1997 15:33:06 -0700 Message-Id: <199712042233.PAA27702@mt.sri.com> From: Nate Williams MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: "Glenn Dicus" Cc: "Mobile FreeBSD" Subject: Re: PCMCIA and ElanSC400 In-Reply-To: <199712042107.NAA20323@mail.nomadix.com> References: <199712042107.NAA20323@mail.nomadix.com> X-Mailer: VM 6.29 under 19.15 XEmacs Lucid Sender: owner-freebsd-mobile@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > : > > However, my present situation is that > : > > FreeBSD does not recognize the second slot when a card is inserted. > : > : Sounds like a VLSI board. They do things a non-standard way, and > : it's possible the VLSI work-around code doesn't work on all the > : hardware. > > Actually it's an AMD ElanSC400 Evaluation Board. The ElanSC400 > microcontroller has the following integrated capabilities: > > 486 CPU Core > 82365 register set compatible Dual PC Card (PCMCIA Vers2.1) which > is compliant with ExCA. The VLSI PCIC controller claims to be '82365 compatible' as well, but it isn't 100% compatible. I *highly* suspect this board is using the VLSI chipset, or something related to it. Do you have any documentation on the above controller? > : > > Also, a reoccurring problem has been pccardc's inability to read the > CIS, > : > > returning "no entry in database for "null" ("null")". > : > > : > It sounds like this is indicative of a pretty major problem; if pccardc > > : > can't read the CIS information, pccardd (which uses the same code) is > : > not going to be able to determine what the card is. > > > The cards are detected and identified using Windows 95. With the same board? Note that Win95 gets access to all of the necessary hardware information that we've been asking about above, and we don't have access to said documentation. It's hard to know what we're dealing with w/out docs. > : Right, something is *really* bogus. Did this ever work? What kind of > : changes are you making to the FreeBSD kernel code? Did you make any > : changes? We'd like to help, but need more information than you're > : giving us. > > > In order to use an ISA slot, with an interrupt, I had to configure the CSC > register for the ElanSC400 to map PIRQ4 to IRQ9. I did this in > "init_main.c". Hmm, this could screw up the controller ability to recognize slot insertion/removal, leading to the error you mentioned earlier. > Also, ElanSC400's PC Card controller has two modes of > operation (standard and enhanced). > > In standard mode: > > There are a total of six memory windows. Two are fixed (one for each > socket) and the remaining four can "float"(can be configured for Socket A > or B on a window-by-window basis > > Nominal 8 MHz cycle speed only > > No DMA initiators > > > In enhanced mode: > > There are a total of ten memory windows. Five are fixed for each socket > > Nominal 8 MHz cycle speed or nominal 33 MHz > > PC Cards can be configured as DMA initiators in this mode > > So, I had to set some bits in a register to enable enhanced mode. Try enabling standard mode. The 'floating' windows sounds like a better way to go, although I'm not really familiar with the code in question. > Still, however, FreeBSD does not detect slot 1 and a resource allocation > failure occurs for slot 0. See above. The slot 1 detection is a common problem, and the resource allocation problem is probably something silly. (Though, it doesn't mean it's easy to figure out. Most silly bugs are only fixe after beating your head against the wall for about 3 months, and then realizing you had an extra semi-colon on your while loop. :) Nate