Table of Contents
Marconi (formally Fore) PCA-200E PC nic -- Centos 6.5
Work done on Centos 6.5, see this page for Ubuntu 12.04:- PCA-200E PC nic -- Ubuntu 12.04
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
This page has been accessed for:-
Today: 1
Yesterday: 0
Until now: 446