However, I still cannot get the pccard interrupts to work correctly. I’m
going to contact the card vendors to get more information about how it
is configured to handle these interrupts.
You can try changing the IRQ mode with the ‘ss -pn’ option, where ‘n’ is
between 0 and 3. You will have to use this in conjunction with the ‘ss -m’
option as follows:
devp-pccard -l3 ss -m -pn
Previously, Dave Edwards wrote in qdn.public.ddk.network:
Hi Hugh,
I’ve tried this, but it does not appear to work.
when attaching to IRQ3, the pccard server reports:(from slogger)
Lastbus 3 - Version 210 - Hardware 0
Last bus used = 1
Cardbus controller with 1 sockets found
Irq Invalid argument
devp-pccard: Unable to alloc irq
I’ve tried different IRQ settings, these load OK but both the QNX and my
own driver fail to receive any interrupts.
The card initialised fine, and since it’s a wireless card I can see it
from other machines but it fails to receive packets, which is an
interrupt driven process.
I’ve verified that both drivers work with an SBC with a RL5C475
controller that has ISA connected interrups (non PCI routed)
On a related note, I’ve noticed that register 92 (device control) is
still set to serialised ISA and PCI interrupts. I believe that this is
probably wrong and should be set to Paralle PCI interrupts only.
On a final point, here is an excerpt from the Linux Installation notes
for the card. It might provide some light on the issue
Adaptors featuring TI controller chips include:
P111 (single rear slot)
P222 (twin rear slot)
P423 and derivative models - front/external, twin slot.
Fron Linux’s point of view only the controller chip is significant, all
models using a TI chip are expected to behave in the same way.
The PCIC type is i82365 and the necessary PCIC options are:
“irq_mode=0 pci_csc=0 poll_interval=100”
and are unfortunately set in different configuration files depending on
the distribution. Some of the major distributions are listed below with
the configuration filenames.
The effect of these options are:
to disable ISA interrupts and to use PCI interrupts only for the pcmcia
cards
to disable Card Status interrupts altogether and just poll once a second
for insertions
The reason for polling the controller for Card Status Changes is that
some drivers do not seem to be able to share interrupts, the example
that we at Elan found was the “ide_cs” module. It is the driver used for
ATA flash cards. And since doing a poll is unlikely to strain your PC,
it is easier to just always do it.
rgds
Dave Ewdards
Hugh Brown wrote:
OK, try the following:
slay devp-pccard
devp-pccard -l3 ss -m
This will assign IRQ 3 to devp-pccard and tell it to map the ISA interrupts
to the PCI bus.
Previously, Dave Edwards wrote in qdn.public.ddk.network:
Is this a CardBus controller in a desktop machine or is it a laptop?
What type of PCCard do you have in the socket? Start devp-pccard with
the ‘-vvv’ command line argument and post the output from sloginfo as
well as the output from ‘pci -v’ and ‘pidin arg’.
Hi!
It’s a desktop machine with a cardbus to PCI “card”. It’s an ELAN P111
with a TI 1211 controller that does not have it’s ISA interrupts connected.
The PCCard is a Prism based wireless card, which works fine in other
machines.
I think that the problem is that the devp-pccard server has not been
told to redirect the interrupts to the PCI bus
Here are the relevant outputs:
devp-pccard:
\
devp-pccard -vvvvv
GetStatus Socket 0 returned CardState 80 - CtlInd 0 - State 0 -
IREQRouting 0 - IFType 1
GetSocket Socket 0 returned SCIntMask 0 - Vcontrol 10 - VppLevels 0 -
VccLevel 0 - CtlInd 0 - State 80 - IREQRouting 0 - IFType 1
Socket state 80
Card Inserted
5.0V Card
Timer expired 1
Powered up 1
GetSocket Socket 0 returned SCIntMask 0 - Vcontrol 10 - VppLevels 22 -
VccLevel 2 - CtlInd 0 - State c0 - IREQRouting 0 - IFType 1
devp-pccard: Memory window req. a0000
devp-pccard: Memory window act. d4000
00000000: 0100 0300 0000 0000 ff00 1710 0400 6700 “…g.”
00000010: 5a00 0800 ff00 1d00 0500 0100 6700 5a00 “Z…g.Z.”
00000020: 0800 ff00 1510 5000 0500 0000 4200 6500 “…P…B.e.”
00000030: 6c00 6b00 6900 6e00 0000 3100 3100 4d00 “l.k.i.n…1.1.M.”
00000040: 6200 7000 7300 2000 5700 6900 7200 6500 “b.p.s. .W.i.r.e.”
00000050: 6c00 6500 7300 7300 2000 4e00 6f00 7400 “l.e.s.s. .N.o.t.”
00000060: 6500 6200 6f00 6f00 6b00 2000 4e00 6500 “e.b.o.o.k. .N.e.”
00000070: 7400 7700 6f00 7200 6b00 2000 4100 6400 “t.w.o.r.k. .A.d.”
00000080: 6100 7000 7400 6500 7200 0000 5600 6500 “a.p.t.e.r…V.e.”
00000090: 7200 7300 6900 6f00 6e00 2000 3000 3100 “r.s.i.o.n. .0.1.”
000000a0: 2e00 3000 3200 0000 0000 0000 0000 0000 “…0.2…”
000000b0: 0000 0000 0000 0000 0000 0000 0000 0000 “…”
000000c0: 0000 0000 0000 ff00 2000 0400 5600 0100 “… …V…”
000000d0: 0200 0000 2100 0200 0600 0000 2200 0200 “…!..”…"
000000e0: 0100 0700 2200 0500 0200 4000 4200 0f00 “…”…@.B…"
000000f0: 0000 2200 0500 0200 8000 8400 1e00 0000 “…”…"
LAN Node ID 00 30 bd 61 ec 09
Config Base 3e0
IRQ1 = 7f - IRQ2 = ffff
I/O 0 - Len 64 - ip 8060bb0
IRQ 5
GetSocket Socket 0 returned SCIntMask 0 - Vcontrol 10 - VppLevels 22 -
VccLevel 2 - CtlInd 0 - State c0 - IREQRouting 0 - IFType 1
GetSocket Socket 0 returned SCIntMask 0 - Vcontrol 10 - VppLevels 22 -
VccLevel 2 - CtlInd 0 - State c0 - IREQRouting 0 - IFType 1
I/O port 300
Config base 3e0 - Index 1 - Window 0 - Page 0
Base - 40102000 - p = 401023e0
Timer expired 3
GetStatus Socket 0 returned CardState c0 - CtlInd 0 - State c0 -
IREQRouting 0 - IFType 1
GetSocket Socket 0 returned SCIntMask 0 - Vcontrol 10 - VppLevels 22 -
VccLevel 2 - CtlInd 0 - State c0 - IREQRouting 0 - IFType 1
Socket state c0
Card Inserted
PCI-V:
Class = Bridge (CardBus)
Vendor ID = 104ch, Texas Instruments
Device ID = ac1eh, PCI1211 High Performance PC Card Controller
PCI index = 0h
Class Codes = 060700h
Revision ID = 0h
Bus number = 0
Device number = 11
Function num = 0
Status Reg = 210h
Command Reg = 7h
Header type = 2h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = ffeff000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 0
Secondary Bus Number = 2
Subordinate Bus Number = 2
Secondary Latency Timer = 20h
Memory Base 0 = 0h
Memory Limit 0 = 0h
Memory Base 1 = 0h
Memory Limit 1 = 0h
I/O Base 0 = 0h
I/O Limit 0 = 0h
I/O Base 1 = 0h
I/O Limit 1 = 0h
PCI Int Pin = 1
PCI Int Pin = INT A
Interrupt line = 3
Bridge Control = 7c0h
Subsystem Vendor ID = 0h
Subsystem ID = 0h
Legacy Mode Base Address = 0h
System Control = 44b020h
Retry Status = c0h
Card Control = 1h
Device Control = 66h
Buffer Control = 61h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h
pidin arg :
pid Arguments
1 /x86/boot/sys/procnto
2 /sbin/tinit -p
3 slogger -s32
12292 mqueue
5 pci-bios
6 devb-eide blk auto=partition dos exe=all cam quiet
7 devc-con -n4
8 fs-pkg -a/pkgs/base/safe-config/etc/system/package/packages
4105 pipe
1318922 pterm
45067 devc-pty -n 32
77836 devc-par -p0x378
1318925 /bin/sh
1327118 devp-pccard
536591 pterm
77840 spooler -d/dev/par1
77841 devc-ser8250 -u1 3f8,4
122898 devb-fdc cam quiet blk auto=partition,cache=100k
77843 io-audio
94228 io-net -ptcpip
131093 random -t
143382 dumper -d /var/dumps
536599 /bin/sh
413720 pwm
204825 Photon -g -lphlogin “-Sphshutdown -l”
286746 fontsleuth -d /usr/photon/font_repository
282651 /usr/photon/bin/devi-hirun kbd fd -d/dev/kbd ps2 mousedev
249884 io-graphics -g1280x1024x32 -dldevg-tnt.so -I0 -d0x10de,0x2dR60
458781 shelf
495646 bkgdmgr
495647 wmswitch
495648 saver
1364001 pidin arg
520226 XPhoton
PIN:
Sock Func Type Flags PID Base Size IRQ
1 0 Network C—I-±-------- None 0x300 64 5
1 Empty ----MF---------- None
( The problem is here, IRQ 5 is not connected to the cardbus controller!)
Dave
\