Hi,
I am trying to get an isdn card to work under Linux on my machine
and after a few days of looking at the code I am stumped,
The isdn card is marked as the following:
Fritz!Card PCI , AVM ISDN controller.
I am running Slackware ,
uname -a shows:
Linux gadi 2.2.7 #9 Sat May 15 19:07:12 GMT 1999 i686 unknown
At first I could not get the hisax driver to load,
I would get the following in /usr/adm/messages;
May 19 19:23:09 gadi kernel: HiSax: AVM driver Rev. 2.7
May 19 19:23:09 gadi kernel: AVM A1: Byte at f4c0 is ff
May 19 19:23:09 gadi kernel: AVM A1: Byte at f4c3 is ff
May 19 19:23:09 gadi kernel: AVM A1: Byte at f4c2 is ff
May 19 19:23:09 gadi kernel: AVM A1: Byte at f4c0 is ff
May 19 19:23:09 gadi kernel: HiSax: AVM A1 config irq:10 cfg:0xF4C0
May 19 19:23:09 gadi kernel: HiSax: isac:0xF0C0/0xECC0
May 19 19:23:09 gadi kernel: HiSax: hscx A:0xE0C0/0xDCC0 hscx
B:0xE8C0/0xE4C0
May 19 19:23:09 gadi kernel: AVM A1: ISAC version : 2085 V2.3
May 19 19:23:09 gadi kernel: AVM A1: HSCX version A: ??? B: ???
May 19 19:23:09 gadi kernel: TESTING:verA= 15 verB=15 cs=c1a99800
May 19 19:23:09 gadi kernel: ISDN-subsystem unloaded
-------------------------------------------------------------------------
So I made the following change in :
/usr/src/linux-2.2.7/drivers/isdn/hisax/avm_a1.c
__initfunc(int
setup_avm_a1(struct IsdnCard *card))
{
u_char val;
struct IsdnCardState *cs = card->cs;
long flags;
char tmp[64];
printk(KERN_INFO "The card is at: %x\n", cs);
printk(KERN_INFO "I am setting it to 0xdcc0\n" );
cs = 0xdcc0; // THIS IS the change
Note: The values displayed in cs before setting it to 0xdcc0 seem
to be random and the driver exits with message
-------------------------------------------------------------------------
now I get something like this:
May 19 20:33:38 gadi kernel: HiSax: Driver for Siemens chip set ISDN
cards
May 19 20:33:38 gadi kernel: HiSax: Version 2.8
May 19 20:33:38 gadi kernel: HiSax: Revisions 2.18/2.7/2.5/2.13/2.7
May 19 20:33:38 gadi kernel: HiSax: Card 1 Protocol EDSS1 Id=HiSax (0)
May 19 20:33:38 gadi kernel: The card is at: c1a89800
May 19 20:33:38 gadi kernel: I am setting it to 0xdcc0
May 19 20:33:38 gadi kernel: HiSax: AVM driver Rev. 2.7
-------------------------------------------------------------------------
This is my /etc/conf.modules:
alias net-pf-4 off
alias net-pf-5 off
keep
path[pcmcia]=/lib/modules/`uname -r`
alias parport_lowlevel parport_pc
options parport_pc io=0x378 irq=7
options hisax irq=10 io=0xdcc0 mem=0xfedff000 type=5 protocol=2
-------------------------------------------------------------------------
After booting I do the following:
modprobe hisax
I get:
isdn: Device or resource busy
-------------------------------------------------------------------------
I then check with lsmod and get:
gadi:/etc/rc.d# lsmod
Module Size Used by
hisax 93612 14 (uninitialized)
isdn 82264 15 [hisax]
smbfs 24584 0 (unused)
ne 5984 1
8390 5944 0 [ne]
soundcore 2088 0 (unused)
ppp 18900 0 (unused)
slhc 4128 1 [isdn ppp]
lp 4780 0 (unused)
parport_pc 4988 1
parport_probe 2848 0
parport 6416 1 [lp parport_pc parport_probe]
-------------------------------------------------------------------------
Here is what I believe is the relevent part for /proc/pci:
It seems that linux is identifying the card correctly since
IRQ 10 I/O 0xdcc0 and memory at 0xfedffc00 is also what is reported
by Windows NT and Windows 98 on the same machine.
Medium devsel. Fast back-to-back capable.
Bus 0, device 11, function 0:
Network controller: AVM A1 (Fritz) (rev 2).
Medium devsel. Fast back-to-back capable. IRQ 10.
Non-prefetchable 32 bit memory at 0xfedffc00 [0xfedffc00].
I/O at 0xdcc0 [0xdcc1].
Bus 0, device 14, function 0:
-------------------------------------------------------------------------
Anybody know what to do?
Thank Ghiora