Register a domain and help support LQ
Go Back > Forums > Linux Forums > Linux - Hardware
User Name
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?


LinkBack Search this Thread
Old 05-12-2013, 07:10 PM   #1
LQ Newbie
Registered: Dec 2006
Location: Great NW
Distribution: Gentoo
Posts: 15

Rep: Reputation: 0
Silicom Dual Port 1 Gig Fiber Bypass cards?

I have a server that has two dual port Silicom 1Gig Fiber bypass cards in it that I would like to use. They are recognized by the igb driver just fine:

(from lspci -k)
08:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
Subsystem: Silicom Ltd. Device 0301
Kernel driver in use: igb
08:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
Subsystem: Silicom Ltd. Device 0301
Kernel driver in use: igb

And I enabled staging drivers and the bpctl_mod and Bypass modules, which found the cards bypass:

[ 201.233759] bpctl_mod: module is from the staging directory, the quality is unknown, you have been warned.
[ 201.234004] Silicom Bypass-SD Control driver v9.0.4
[ 201.234798] PEG2BPFI6 found, firmware version: 0xa8
[ 201.261095] PEG2BPFI6 found, firmware version: 0xa8
[ 415.859024] bypass: module is from the staging directory, the quality is unknown, you have been warned.
[ 415.859176]

But I am unable to get the cards out of "bypass" mode so that I may use them. A friend said I should have had a /proc/bypass variable created when the bypass module loaded, but none was created.

Has anyone worked with this card? (I saw that there is also a command utility for bpctl, but can't find the source code.)

I am running:
Linux bertha 3.9.0-gentoo #4 SMP Fri May 10 09:22:48 PDT 2013 x86_64 Intel(R) Xeon(R) CPU X 000 @ 3.33GHz GenuineIntel GNU/Linux

Thanks for any leads on how this might work.

Old 05-15-2013, 09:13 AM   #2
Senior Member
Registered: Sep 2009
Location: Philly, PA
Distribution: Kubuntu x64, RHEL, Fedora Core, FreeBSD, Windows x64
Posts: 1,328
Blog Entries: 33

Rep: Reputation: 329Reputation: 329Reputation: 329Reputation: 329
I guess I'll take a crack at this though I don't have experience with your hardware nor this module so it is best you read the sources for better understanding.

Here's the Silicom driver in the Linux Kernel sources: drivers/staging/silicom

In the file bp_mod.c:7339 you have the BP_PROC_DIR defined as "bypass". bp_mod.c:7410 bp_proc_create(void) is what creates the proc directory structure.

Your friend is partially right. It's not a variable or file that is being created in /proc but a directory tree.
ls -l /proc | grep bypass
There should be a /proc/bypass directory.

bp_proc.c is what contains the code that creates the device commands in the proc directory. Here's a list of commands that should be found within the /proc/bypass directory (they should be files located there) as listed in bp_proc.c:44.
#define BYPASS_INFO_ENTRY_SD     "bypass_info"
#define BYPASS_SLAVE_ENTRY_SD    "bypass_slave"
#define BYPASS_CAPS_ENTRY_SD     "bypass_caps"
#define WD_SET_CAPS_ENTRY_SD     "wd_set_caps"
#define BYPASS_ENTRY_SD          "bypass"
#define BYPASS_CHANGE_ENTRY_SD   "bypass_change"
#define BYPASS_WD_ENTRY_SD       "bypass_wd"
#define WD_EXPIRE_TIME_ENTRY_SD  "wd_expire_time"
#define RESET_BYPASS_WD_ENTRY_SD "reset_bypass_wd"
#define DIS_BYPASS_ENTRY_SD      "dis_bypass"
#define BYPASS_PWUP_ENTRY_SD     "bypass_pwup"
#define BYPASS_PWOFF_ENTRY_SD     "bypass_pwoff"
#define STD_NIC_ENTRY_SD         "std_nic"
#define STD_NIC_ENTRY_SD         "std_nic"
#define TAP_ENTRY_SD             "tap"
#define TAP_CHANGE_ENTRY_SD      "tap_change"
#define DIS_TAP_ENTRY_SD         "dis_tap"
#define TAP_PWUP_ENTRY_SD        "tap_pwup"
#define TWO_PORT_LINK_ENTRY_SD   "two_port_link"
#define WD_EXP_MODE_ENTRY_SD     "wd_exp_mode"
#define WD_AUTORESET_ENTRY_SD    "wd_autoreset"
#define TPL_ENTRY_SD             "tpl"
#define WAIT_AT_PWUP_ENTRY_SD    "wait_at_pwup"
#define HW_RESET_ENTRY_SD        "hw_reset"
#define DISC_ENTRY_SD             "disc"
#define DISC_CHANGE_ENTRY_SD      "disc_change"
#define DIS_DISC_ENTRY_SD         "dis_disc"
#define DISC_PWUP_ENTRY_SD        "disc_pwup"
So if you list the /proc/bypass directory you should see a file for each one of those commands.

The README mentions the binary utility /bin/bpctl. Here's the manufacturer website on Dual Port Gigabit Bypass Adapters. The drivers and documentation is behind a login gateway. I recommend creating an account there to get access to them directly from the manufacturer because it is likely they have the /bin/bpctl binary there.

It's a start. I'll keep looking and see if I can find more info. Do an lsmod in your system and see if the module is loaded. If not compile the module from source and insmod it.


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
PCMCIA Silicom dual serial port problem Camiel Linux - Hardware 1 10-16-2010 11:29 PM
IPCop not finding all ports on Intel PRO/1000 MT Dual port cards sabens Linux - Hardware 1 01-12-2009 09:33 PM
Bypass port block security ramesh.mimit Linux - Security 3 12-25-2008 01:12 PM
120 gig HD Running XP - Need DUAL BOOT Caprice_SS Fedora 11 12-08-2003 07:48 PM
Fiber Port Types? troyzeng Linux - Hardware 0 10-08-2003 03:59 AM

All times are GMT -5. The time now is 08:08 AM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration