Marconi (formally Fore) PCA-200E PC nic -- Centos 6.5

Work done on Centos 6.5, see this page for Ubuntu 12.04:- FIXME

Driver and firmware

Driver fore_200e is not included in stock Centos kernel, but is available in kernel.i686 0:2.6.32-431.23.3.el6.centos.plus

This can be installed by enabling Centos Plus in the repo directory.

After a reboot, # uname -a gives:- Linux neptune.rainsbrook.xxx 2.6.32-431.23.3.el6.centos.plus.i686

lsmod shows:-

fore_200e              21189  0 
atm                    38492  1 fore_200e

But dmesg shows:-

[root@neptune ~]# dmesg | grep fore
fore200e: FORE Systems 200E-series ATM driver - version 0.3e
fore_200e 0000:01:0b.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
fore200e: device PCA-200E found at 0xcfc00000, IRQ 21
fore200e: device PCA-200E-0 self-test passed
fore_200e 0000:01:0b.0: firmware: requesting pca200e.bin
fore200e: problem loading firmware image PCA-200E
fore200e: removing device PCA-200E-0 at 0xcfc00000, IRQ 21
fore_200e 0000:01:0b.0: PCI INT A disabled
[root@neptune ~]#

Turns out that no firmware was available to load (strace is your friend to see this)

[root@neptune ~]# cp /home/andrew/Downloads/atm/pca200e-0.4/pca200e.bin /lib/firmware

[root@neptune ~]# rmmod fore_200e
[root@neptune ~]# modprobe fore_200e
[root@neptune ~]# 
[root@neptune ~]# dmesg -c
fore200e: FORE Systems 200E-series ATM driver - version 0.3e
fore_200e 0000:01:0b.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
fore200e: device PCA-200E found at 0xcfc00000, IRQ 21
fore200e: device PCA-200E-0 self-test passed
fore_200e 0000:01:0b.0: firmware: requesting pca200e.bin
fore200e: device PCA-200E-0 firmware started
fore200e: device PCA-200E-0 initialized
fore200e: device PCA-200E-0, rev. A, S/N: 2380, ESI: 00:20:48:40:09:4c
fore200e: IRQ 21 reserved for device PCA-200E-0
[root@neptune ~]# 

Card now appears to work OK!

[root@neptune ~]# cat /proc/net/atm/pca200e\:0 

 device:
   internal name:               PCA-200E-0
   PCI bus/slot/function:       1/11/0
   interrupt line:              21
   physical base address:       0xcfc00000
   virtual base address:        0xfb000000
   factory address (ESI):       00:20:48:40:09:4c
   board serial number:         2380

ATM signalling and ilmi

Now trying to initialise the card seems to work:-

[root@neptune ~]# atmsigd -u uni31+uni30  -l /var/log/atm/atmsigd.log -m user -b -d
[root@neptune ~]# ilmid -b -d -v -l /var/log/atm/ilmid.log -u 3.1

gives this on a Marconi ASX200bx switch when plugged in to port 1a1:-

asx200-01:signalling ilmi-> show 
Port        VPI  Organizational Scope
1A1           0  global
ATM Address: 0x47.0005.80.ffe100.0000.f21a.432e.00204840094c.00

asx200-01:signalling ilmi-> 

At the Linux end, you see asx version of ilmidiag

[root@neptune ~]# ilmidiag

Ilmi           Uni            VPI            VCI            Ilmi
Version        Version        Bits           Bits           State
---------------------------------------------------------------------------
4.0            3.1            0              9              Up

Remote         Remote         Remote         Remote
Port Id        Port Name      Sysname        Contact
---------------------------------------------------------------------------
0              1A1            asx200-01      Helpdesk@rainsbrook.co.uk

[root@neptune ~]#

Plugged in to port 17.1 on an ibm8265, the Linux end shows some stats:-

[root@neptune ~]# ilmidiag 

Ilmi           Uni            VPI            VCI            Ilmi           
Version        Version        Bits           Bits           State          
---------------------------------------------------------------------------
4.0            3.1            0              10             Up             

Remote         Remote         Remote         Remote         
Port Id        Port Name      Sysname        Contact        
---------------------------------------------------------------------------
1701           at1701         ibm8265_01                                   

[root@neptune ~]# 

LANE Woes

[root@neptune ~]# zeppelin -b   -e 00-20-48-40-09-4c -n BMH_MAIN -m ffff -i lec0 -F /var/log/atm/zeppelin.log Aug 25 23:47:10.450738 zeppelin:main.c: Invalid ESI format
Usage: zeppelin [-c LECS_address | -s LES_address] [-e esi] [-n VLAN_name] [-m mesg_mask] [-l listen_address | selector] [-i interface_number] [-I physical_interface_number] [-t 1516|1580|4544|9234|18190] [-1] [-2] [-p] [-F logfile] [-f Fore specific name]
[root@neptune ~]# 
[root@neptune ~]# 
[root@neptune ~]# zeppelin -b   -e 00:20:48:40:09:4c -n BMH_MAIN -m ffff -i lec0 -F /var/log/atm/zeppelin.log 
Aug 25 23:47:32.619777 zeppelin:main.c: Vlan name :'BMH_MAIN'
Aug 25 23:47:32.620076 zeppelin:main.c: Invalid interface number
Usage: zeppelin [-c LECS_address | -s LES_address] [-e esi] [-n VLAN_name] [-m mesg_mask] [-l listen_address | selector] [-i interface_number] [-I physical_interface_number] [-t 1516|1580|4544|9234|18190] [-1] [-2] [-p] [-F logfile] [-f Fore specific name]
[root@neptune ~]# 
[root@neptune ~]# 
[root@neptune ~]# zeppelin -b   -e 00:20:48:40:09:4c -n BMH_MAIN -m ffff  -F /var/log/atm/zeppelin.log 
Aug 25 23:47:42.995778 zeppelin:main.c: Vlan name :'BMH_MAIN'

System locks up at this point…. log file useless:-

[root@neptune ~]# tail -f /var/log/atm/zeppelin.log
Aug 25 23:47:42.996184 zeppelin:main.c: logfile set to /var/log/atm/zeppelin.log

rb/foreatmnic-centos.txt · Last modified: 29/03/2018 13:25 by andrew