9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] Advice on balky cardbus (#Y)?
@ 2004-07-07  9:13 David Eckhardt
  0 siblings, 0 replies; only message in thread
From: David Eckhardt @ 2004-07-07  9:13 UTC (permalink / raw)
  To: 9fans

This is an old laptop (Samsung "SENS 810", 133 MHz Pentium,
40 meg RAM), but I got *two* of them for the same low,
low price of zero...  having spare parts makes the deal
more attractive.

Windows and Linux both see an i82365-compatible device at
port 0xfcfc (Linux claims it's a PnP device, for whatever
that's worth).

PCI enumeration on this machine seems to go a little
weird, with the Cardbus bridge (a Cirrus PD6729)
turning up a gajillion times, though I have worked
around that with judicious use of "*pcimaxdno=3".

Because it seemed faster than building a kernel,
I used a hex editor to ram 1013/1100 into the
"variant" array in devpccard.c.  The result is:

  #Y0: No interrupt?
  i8259enable: irq 0 shared but not level
  intrenable: couldn't enable irq 0, tbdf 0xC001800 for cardbus
  #Y0: Ricoh 476 PCI/Cardbus bridge, 0000FCFD intl 0

(it's not a Ricoh, that's just the array slot where
I rammed in my vid/did).

#Y contains only one file, cb0ctl, which contains
"slot 0: SlotEmpty" no matter which slot I put my
3c589 Ethernet card into, so it seems like not having
a valid IRQ for the bridge is a show-stopper.

If I "*pcihinv=1" I get this:
bus dev type vid  did intl memory
0   0/0 06 00 00 8086 1235   0
0   1/0 06 80 00 8086 1234   0
0   2/0 03 00 00 1013 0038 255 0:fc000000 16777216 1:fd000000 16777216
0   3/0 06 05 00 1013 1100 255

>From glancing at the code it seems as if the 255
is causing #Y to "inherit" the IRQ of 0 from the
parent bus, and of course 0 isn't the wisest choice.

Suggestions?  Is it possible to override the IRQ
information obtained by the PCI bus scan, or is
that just not possible?  What Linux says is

  Cirrus PD6729 PCI-to-PCMCIA at bus 0 slot 3, port 0xfcfc, 2 sockets
  ...
  ISA irqs (default): 3,4,5,7,8,10,11,12 polling interval = 1000 ms

which makes it seem as if it's relying on fallback code
for devices which can't be assigned an IRQ...

Dave Eckhardt

P.S. http://www.linux.com/howtos/PCMCIA-HOWTO-2.shtml
mumbles something about

  The Cirrus PD6729 PCI controller has the fast_pci flag,
  which should be set if the PCI bus speed is greater than
  25 MHz.

Does that mean that the Cardbus driver would need to be
taught to recognize the 6729 and how to set this flag?


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-07-07  9:13 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-07-07  9:13 [9fans] Advice on balky cardbus (#Y)? David Eckhardt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).