upnatom join:2006-12-30 Mississauga, ON 4 edits
19 recommendations |
upnatom
Member
2018-Dec-21 10:07 pm
[Internet] Bypassing the HH3K up to 2.5Gbps using a BCM57810S NICJOIN OUR DISCORD SERVER FOR SUPPORT GOING FORWARDARCHIVED 2020/10/26 - NO UPDATES OR SUPPORT BY OPUSE AT YOUR OWN RISK - I take no responsibility and assume no liability for any of the following contentThanks to marcm , jamend , and file for being generous enough to purchase various hardware for testing and spurring on the development. The following should guarantee up to 2.5Gbps throughput to the GPON SFP ONT on confirmed modules. Don't be shy, share your success story! And get added to the gracious list of testers belowInternational ForumsOrange France ( https://lafibre.info/remplacer-livebox/guide-de-connexion-fibre-directement-sur-un-routeur-voire-meme-en-2gbps): Wax Google Fiber: Berzerker Hong Kong Broadband Network: TheBlueKing Anone21f1 Deutsche Telekom ( https://www.onlinekosten.de/forum/showthread.php?t=153872): KernelMaker TELUS: Baud1200 TechwithShae wtfuzz vrath tywtyw2002 Hardware ( Any of the following adapters - x8 PCIe): Dell N20KJ (Recommended replacement fan: Noctua NF-A4x10 FLX ex. A, B, C) • Tested by: marcm JAMESMTL Luxman1988 Viper359 Ryntanna tr4q3r drcroutons pommedks Jeff1462001 sinykk Hitman247m Baud1200 brasi1 wtfuzz zadigre drkrool hughjass210 alexstoev AOD Dell Y40PH (Recommended replacement fan: Noctua NF-A4x10 FLX ex. A, B, C) • Tested by: upnatom fizzik77 fegauthier TheBlueKing mrdindon Broadcom BCM957810A1006G• Tested by: upnatom CoinTos kefran shizhengj5 vkbell vigor5000 beemac xetal FrAllard einto hardmike TechwithShae sarah_gg_uwu HFXLAN Slither13 bolmsted5 xtlee QLogic QLE3442-CU• Untested HP 530SFP+• Tested by: file Gone t90rak TechwithShae zinc khronik Mar16 GossamerS techwitch alexm KernelMaker HP 530FLR SFP+ (Warning: Non-standard PCIe - DIY HPE FlexibleLOM to PCIe adapter) • Tested by: tywtyw2002 Lenovo 94Y5180• Untested 10Gtek 57810S-10G-2S-X8• Tested by: Berzerker H!Fiber BCM-57810-2S• Tested by: hgarca089 Anone21f1 Silicom PE310G2SPT10-XR-HT / PE310G2SPT10-SR-HT / HITACHI GQ-CN7821-R (Not recommended for Nokia G-010S-A - ie. Harder to mod) • Tested by: upnatom Dell 0MT09V• Tested by: zazik8 Gigabyte GC-MLBZ1 / NEC NE3304-149• Untested FYI. Broadcom (10/40/100 Gb NIC assets only) = Qlogic (2014) = Cavium (2016) = Marvell (2018) GPON SFP ONT [Intel® FALC™ ONT GPONSFP PEF98035 Chipset PEF98035ETV13 S LLC5]:Huawei MA5671A (Additional Discussion: OpenWRT Forum) • Datasheet: » www.huawei.com/ucmf/grou ··· 5752.pdf• SSH: sshpass -p admin123 ssh root@192.168.1.10 (Modern SSH & legacy algos » www.openssh.com/legacy.html) • Serial TTL: TX Pin 2 RX Pin 7 asc0=0 115,200 N 8 1 • minishell Commands: otop
gtop
dmesg
capture_omci_message
arp
capture_gtop_log
get_gtop_log
passwd
reboot
lanpsg
get_vlanA
get_vlanB
show_version.sh
display_version
display_log
mac_learning
Gtop_Help
LAN_port_out
LAN_port_in
IQM_dump
GTC_dump
GPE_arbiter_dump
Configuration
GEM_port
TMU_dump
TMU_EPT_dump
TMU_SBOT_dump
MERGE_dump
Upstream_flow
GPE_capability
GPE_status
GPE_ipv6_Reduction_hash
GPE_ACL_LANE0
GPE_ACL_LANE2
GPE_VLAN_Start_ID
GPE_US_GEM_port
GPE_DS_MC_IPV6
GPE_FID_assignment
GPE_L4_filter
GPE_short_forward_hash
GPE_short_frd_ipv4_mc
GPE_short_frd_MAC_mc
GPE_extended_VLAN
GPE_VLAN_treatment
GPE_LAN_port_General
GPE_LAN_port_Access_Ctr
GPE_LAN_port_OAM
GPE_bridge_port
GPE_LAN_port
GPE_PCP_decoding
GPE_PCP_encoding
GPE_redirection
GPE_bridge
GPE_Counter
OCTRLG_table_dump
GTC_alarms
GTC_counters
Meter
OCTRLG_dump
ICTRLG_dump
FSQM_dump
EIM_dump
SSB_dump
Status
GPE_info
Alloc_ID
TMU_EQT_dump
TMU_SBIT_dump
TMU_TBST_dump
Bridge_port_counter
Version
FW_perfmeter
GPE_exception
GPE_ipv6_Reduction
GPE_ACL_LANE1
GPE_ACL_LANE3
GPE_DS_GEM_port
GPE_DS_MC_IPV4
GPE_tagging_filter
GPE_FID_hash
GPE_learning_limitation
GPE_short_forwardipv4
GPE_short_forwardMAC
GPE_VLAN
GPE_VLAN_rule
GPE_cop_dump
GPE_LAN_port_VLAN
GPE_LAN_port_Trf_Mgmt
GPE_constants
GPE_PMapper
GPE_policer
GPE_DSCP_decoding
GPE_DSCP_encoding
GPE_activity
GPE_MAC_filter
GPE_ethertype_exception
ICTRLG_table_dump
BWM_trace
FW_detailed_status
FW_status
set
quit
Disable Dying Gasp: set nDyingGaspEnable disable • Tested by: upnatom marcm JAMESMTL CoinTos Luxman1988 kefran shizhengj5 Viper359 Ryntanna vkbell drcroutons pommedks sinykk Hitman247m FrAllard dduong sarah_gg_uwu drkrool bolmsted5 TheBlueKing Anone21f1 mrdindon • Rooting [Self-owned] • Enable LuCI pages [Self-owned] (Skip ONTUSER access)
Alcatel-Lucent G-010S-P (OEM: Source Photonics) • Datasheet: »www.sourcephotonics.com/ ··· TDFO.pdf • SSH: sshpass -p SUGAR2A041 ssh ONTUSER@192.168.1.10 (Modern SSH & legacy algos »www.openssh.com/legacy.html) • Serial TTL: TX Pin 2 RX Pin 7 asc0=0 115,200 N 8 1 • Disable Dying Gasp: fw_setenv nDyingGaspEnable 0 • Enable LuCI pages [Self-owned] • Tested by: upnatom file Gone marcm fizzik77 tr4q3r Mar16 xtlee
Alcatel-Lucent O-010S-P • Untested
Nokia G-010S-A (Troubles w/ linking, Still unresolved! --- Further explaination by rsaxvc6 --- NIC HACK: short to ground w/ solder example / conductive paint example) • Try to request a changeout to a Huawei or Alcatel-Lucent splitter if possible • SSH: sshpass -p SUGAR2A041 ssh ONTUSER@192.168.1.10 (Modern SSH & legacy algos »www.openssh.com/legacy.html) • Serial TTL: TX Pin 3 RX Pin 6 asc0=0 115,200 N 8 1 • HTTP: user: adminadmin password: ALC#FGU • Disable Dying Gasp: uci set gpon.gtc.nDyingGaspEnable='0'; uci commit gpon • Solder short tested by: fegauthier jamend albert134 Jeff1462001 xetal Baud1200 TechwithShae einto zinc wtfuzz Slither13 sylvain613 rajeshs hughjass210 Wax GossamerS techwitch alexm tywtyw2002 alexstoev • Conductive paint short tested by (Search AliExpress, it's under $3):
Software:
• eDiag (Necessary to add 2.5G capability mask) • Linux (2.5G SGMII patch available below) or FreeBSD (2.5G SGMII patch available)
How-to block the SMBus:
If you're having issues with POST you may need to physically block the SMBus signals due to a non formal standard that has diverged throughout the years. The process is described in the following discussion:
»Re: [Internet] Bypassing the HH3K up to 2.5Gbps using a BCM57810S NIC
How-to disable PXE:
If you're having issues with POST you may need to disable PXE boot. The process is described in the following discussion:
»Re: Yes, you CAN bypass the HomeHub 3000!!
How-to enable 2.5G capability via DOS eDiag: (NOTE: Not necessary if you used UEFI eDiag)
1. Download eDiag from 1 of the following sources:
B57BCMCD_T7.6.2.3.zip /dos/Diag/NX2_Ev/
B57BCMCD_T7.6.4.1.zip /dos/Diag/NX2_Ev/
B57BCMCD_T7.12b.4.1.zip /dos/Diag/NX2_Ev/
2. Download Rufus from the following source: »rufus.ie/
3. Create a MS-DOS bootable USB using rufus as explained at »www.howtogeek.com/136987 ··· b-drive/
4. Copy all the contents where ediag.exe resides, including ediag.exe itself onto a bootable USB
5. Boot from USB (Read your motherboard manual)
6. Execute eDiag in engineering mode using the following command:
ediag.exe -b10eng
7. Execute the following commands (Please read and verify beforehand, don't do these commands blindly. Refer to the attached images.):
device 1
nvm cfg
7
35=70
36=70
56=6
59=6
save
exit
For context, the mask value of 35/36=70 means 1G, 2.5G, and 10G or 0x10 | 0x20 | 0x40 = 0x70, while 56/59=6 defaults the link speed to 2.5G rather than 10G. I'd recommend to default the link speed only on a single port, ie. the port in which the GPON SFP ONT will be connected to.
Verify after saving by running nvm cfg again. Repeat for the above steps for device 2, ie. port 2 keeping in mind that you may want to hold off on modifying the default link speed, ie. 56/59=6.
How-to identify port X via DOS eDiag: (NOTE: Not necessary if you used UEFI eDiag):
1. Execute steps 1 to 5 from How-to enable 2.5G capability via DOS eDiag (above)
2. Choose a device ie. port, load the driver, and turn on/off (1/0) the led, eg. turn port 0 (device 1) led on
device 1
driver load
led override 0 TRAFFIC 1
How-to enable 2.5G capability via UEFI eDiag (NOTE: Not necessary if you used DOS eDiag):
1. Download eDiag from 1 of the following sources:
B57BCMCD_T7.6.2.3.zip /UEFI/uefi_ediag/x64
B57BCMCD_T7.6.4.1.zip /UEFI/uefi_ediag/x64
B57BCMCD_T7.12b.4.1.zip /UEFI/uefi_ediag/x64
CDR-X9_1.31_for_Intel_X9_platform.iso /Broadcom/UEFI/uefi_ediag/x64/
2. Copy all the contents where the eDiag_x64.efi resides, including eDiag_x64.efi itself onto a bootable media [USB, HDD, etc.]
3. Boot and launch an EFI shell (Read your motherboard manual)
4. Change the directory path to your bootable media
5. Execute eDiag in engineering mode using the following command:
ediag_x64.efi -b10eng
6. Execute the following commands (Please read and verify beforehand, don't do these commands blindly. Refer to the attached images.):
device 1
nvm cfg
7
35=70
36=70
56=6
59=6
save
exit
For context: the mask value of 35/36=70 means 1G, 2.5G, and 10G or 0x10 | 0x20 | 0x40 = 0x70; While 56/59=6 defaults the link speed to 2.5G rather than 10G. I'd recommend to default the link speed only on a single port, ie. the port in which the GPON SFP ONT will be connected to.
Verify after saving by running nvm cfg again. Repeat for the above steps for device 2, ie. port 2 keeping in mind that you may want to hold off on modifying the default link speed, ie. 56/59=6.
How-to identify port X via UEFI eDiag (NOTE: Not necessary if you used DOS eDiag):
1. Execute steps 1 to 5 from How-to enable 2.5G capability via UEFI eDiag (above)
2. Choose a device ie. port, load the driver, and turn on/off (1/0) the led, eg. turn port 0 (device 1) led on
device 1
driver load
led override 0 TRAFFIC 1
Don't use 192.168.1.0/24 subnet for your local network!
Pre-built Kernel Modules (After applying the nvram changes via eDiag how-to):
FreeBSD/pfSense/OPNsense Installlation (See attachments)
# PC
fetch https://www.dslreports.com/r0/download/2438557~f64f10e38577eb4aaf1c98d62ac9cd46/if_bxe.ko.zip
unzip if_bxe.ko.zip
shasum -a 256 -c CHECKSUM.SHA256
# PC -> pfSense
scp if_bxe.ko root@pfSense.localdomain:/boot/kernel/
ssh root@pfSense.localdomain
# PC -> OPNsense
scp if_bxe.ko rootOPNsense.localdomain:/boot/kernel/
ssh root@OPNsense.localdomain
# pfSense/OPNsense/etc
chmod 555 /boot/kernel/if_bxe.ko
chflags schg /boot/kernel/if_bxe.ko
echo 'if_bxe_load="YES"' >> /boot/loader.conf.local
Updating
# pfSense/OPNsense/etc
chflags noschg /boot/kernel/if_bxe.ko
# Same procedure as installing
FreeBSD 13.1/OPNsense 22.7 by upnatom (Same instructions above) FreeBSD 12.x/pfSense 2.5.x/pfSense 2.6.x/OPNsense 20.7.x/OPNsense 21.x.x by upnatom (Same instructions above) Proxmox by JAMESMTL (Match with your release version) Proxmox 6.3-6 by mrdindon Untangle 14.x/15.x by JAMESMTL (Match with your kernel version) Untangle 15.1 by sasquatch743 Untangle 16.1 by sasquatch743 VyOS by JAMESMTL (Match with your release version) IPFire by JAMESMTL (Match with your release version)
VMware ESXi 6.5/6.7 by upnatom VyOS 1.3.0-rc1 by indigo11 VMware ESXi 6.7 by upnatom (Use driver attached to this post)
Disable Secure Boot
Create and pass VLAN 4095 (Trunk/Virtual Guest Tagging)
Community Build Guides (NOTE: Not necessary if using pre-built modules. After applying the nvram changes via eDiag how-to):
Debian Stretch and Buster additions by JAMESMTL Debian Stretch by JAMESMTL Debian Buster by JAMESMTL DKMS by zinc
Proxmox by JAMESMTL
Proxmox 5.4 or 6 by JAMESMTL Proxmox 5.4, 6.0, 6.2 by JAMESMTL FreeBSD pfSense by upnatom (Download and use patch file from this post. Also keep TSO and LRO offloading disabled and disable CSUM if VM) pfSense 2.5 by upnatom
Untangle by JAMESMTL Untangle by JAMESMTL
VyOS by JAMESMTL VyOS 1.3 by JAMESMTL IPFire by JAMESMTL OPNSense by fegauthier FreeBSD 13.1/OPNsense 22.7 by upnatom OpenWRT by upnatom (Fix here docs add single quotes around EOF and EOD)
Community Setup Guides:
pfSense Bell Aliant IPTV https://www.idscomm.ca/blog/bell-fibe-internet-iptv-with-pfsense
BNX2X WarpCore 2.5G SGMII Linux kernel patch: [bnx2x_warpcore_2_5g_sgmii.patch] Updated: 2018-12-18
The following patch is in the process of being submitted upstream. Please be patient with the process, you'll be building your own driver for awhile.
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
index 98d4c5a3ff21..86367c0e368f 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
@@ -151,6 +151,7 @@ typedef int (*read_sfp_module_eeprom_func_p)(struct bnx2x_phy *phy,
#define SFP_EEPROM_CON_TYPE_ADDR 0x2
#define SFP_EEPROM_CON_TYPE_VAL_UNKNOWN 0x0
+ #define SFP_EEPROM_CON_TYPE_VAL_SC 0x1
#define SFP_EEPROM_CON_TYPE_VAL_LC 0x7
#define SFP_EEPROM_CON_TYPE_VAL_COPPER 0x21
#define SFP_EEPROM_CON_TYPE_VAL_RJ45 0x22
@@ -4210,6 +4211,16 @@ static void bnx2x_warpcore_set_sgmii_speed(struct bnx2x_phy *phy,
0x1000);
DP(NETIF_MSG_LINK, "set SGMII AUTONEG\n");
} else {
+ /* Note that 2.5G works only when used with 1G advertisment */
+ if (fiber_mode && (phy->req_line_speed == SPEED_2500) &&
+ (phy->speed_cap_mask &
+ (PORT_HW_CFG_SPEED_CAPABILITY_D0_1G |
+ PORT_HW_CFG_SPEED_CAPABILITY_D0_2_5G))) {
+ bnx2x_cl45_write(bp, phy, MDIO_WC_DEVAD,
+ MDIO_WC_REG_SERDESDIGITAL_MISC1,
+ 0x6010);
+ }
+
bnx2x_cl45_read(bp, phy, MDIO_WC_DEVAD,
MDIO_WC_REG_COMBO_IEEE0_MIICTRL, &val16);
val16 &= 0xcebf;
@@ -4220,6 +4231,7 @@ static void bnx2x_warpcore_set_sgmii_speed(struct bnx2x_phy *phy,
val16 |= 0x2000;
break;
case SPEED_1000:
+ case SPEED_2500:
val16 |= 0x0040;
break;
default:
@@ -8173,6 +8185,7 @@ static int bnx2x_get_edc_mode(struct bnx2x_phy *phy,
break;
}
case SFP_EEPROM_CON_TYPE_VAL_UNKNOWN:
+ case SFP_EEPROM_CON_TYPE_VAL_SC:
case SFP_EEPROM_CON_TYPE_VAL_LC:
case SFP_EEPROM_CON_TYPE_VAL_RJ45:
check_limiting_mode = 1;
@@ -8183,7 +8196,8 @@ static int bnx2x_get_edc_mode(struct bnx2x_phy *phy,
(val[SFP_EEPROM_1G_COMP_CODE_ADDR] != 0)) {
DP(NETIF_MSG_LINK, "1G SFP module detected\n");
phy->media_type = ETH_PHY_SFP_1G_FIBER;
- if (phy->req_line_speed != SPEED_1000) {
+ if ((phy->req_line_speed != SPEED_1000) &&
+ (phy->req_line_speed != SPEED_2500)) {
u8 gport = params->port;
phy->req_line_speed = SPEED_1000;
if (!CHIP_IS_E1x(bp)) {
@@ -11734,6 +11748,7 @@ static const struct bnx2x_phy phy_warpcore = {
SUPPORTED_100baseT_Full |
SUPPORTED_1000baseT_Full |
SUPPORTED_1000baseKX_Full |
+ SUPPORTED_2500baseX_Full |
SUPPORTED_10000baseT_Full |
SUPPORTED_10000baseKR_Full |
SUPPORTED_20000baseKR2_Full |
@@ -12267,6 +12282,7 @@ static int bnx2x_populate_int_phy(struct bnx2x *bp, u32 shmem_base, u8 port,
break;
case PORT_HW_CFG_NET_SERDES_IF_SFI:
phy->supported &= (SUPPORTED_1000baseT_Full |
+ SUPPORTED_2500baseX_Full |
SUPPORTED_10000baseT_Full |
SUPPORTED_FIBRE |
SUPPORTED_Pause |
How-to patch and build the BNX2X kernel module on Debian:
The reason Debian was chosen is because it's the base of the most popular Linux based router and firewall solutions, ie. VyOS and Untangle.
1. Download patch above
2. Add non-free to /etc/apt/sources.list explained at »wiki.debian.org/SourcesList and required for the bnx2x firmware
3. Execute the following commands:
apt update
apt install firmware-bnx2x
apt install build-essential libncurses5-dev bison flex
apt install linux-headers-$(uname -r)
apt-get source linux-image-$(uname -r)
cd linux-$(uname -r)
cp /usr/src/linux-headers-$(uname -r)/.config .
cp /usr/src/linux-headers-$(uname -r)/Module.symvers .
patch -p1 < ~/bnx2x_warpcore_2_5g_sgmii.patch
make modules_prepare
make M=drivers/net/ethernet/broadcom/bnx2x
strip --strip-debug drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
cp drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/broadcom/bnx2x/
update-initramfs -u -k all
reboot
How-to check your current interface settings and switch to 2.5Gbps if need be:
ethtool <ifname>
ethtool -s <ifname> speed 2500
How-to dump your SFP eeprom:
ethtool -m <ifname>
ethtool -m <ifname> hex on
How-to debug BNX2X:
1a. modprobe bnx2x debug=0x4102034
OR
1b. Add bnx2x.debug=0x4102034 to your kernel command line
vi /etc/default/grub
GRUB_CMDLINE_LINUX="bnx2x.debug=0x4102034"
update-grub
How to verify the interface speed between the NIC and ONU/T:
Hauwei MA5671A minishell
lanpsg
Alcatel-Lucent G-010S-P / Nokia G-010S-A
onu lanpsg 0
Long Form: lan_port_status_get
Short Form: lanpsg
Input Parameter
- uint32_t pport
Output Parameter
- enum onu_errorcode errorcode
- uint32_t pport
- enum lan_mode_interface mode
LAN_MODE_OFF = 0
LAN_MODE_GPHY = 1
LAN_MODE_EPHY = 2
LAN_MODE_SGMII = 3
LAN_MODE_SGMII_FAST = 4
LAN_MODE_RGMII_MAC = 5
LAN_MODE_RMII_MAC = 6
LAN_MODE_RMII_PHY = 7
LAN_MODE_GMII_MAC = 8
LAN_MODE_GMII_PHY = 9
LAN_MODE_MII_MAC = 10
LAN_MODE_MII_PHY = 11
LAN_MODE_TMII_MAC = 12
LAN_MODE_TMII_PHY = 13
LAN_MODE_TBI_SERDES = 14
LAN_MODE_TBI_AUTODETECT = 15
- uint32_t enable
- enum lan_phy_status link_status
LAN_PHY_STATUS_OFF = 0
LAN_PHY_STATUS_DOWN = 1
LAN_PHY_STATUS_10_UP = 2
LAN_PHY_STATUS_100_UP = 3
LAN_PHY_STATUS_1000_UP = 4
LAN_PHY_STATUS_2500_UP = 5
LAN_PHY_STATUS_NONE = 6
LAN_PHY_STATUS_UNKNOWN = 255
- enum lan_mode_duplex phy_duplex
LAN_PHY_MODE_DUPLEX_AUTO = 0
LAN_PHY_MODE_DUPLEX_FULL = 1
LAN_PHY_MODE_DUPLEX_HALF = 2
LAN_PHY_MODE_DUPLEX_UNKNOWN = 3
ARCHIVED 2020/10/26 - NO UPDATES OR SUPPORT BY OP
The objective is reliability and security for self-hosted services.
ATTENTION: For those who OWN AND OPERATE THEIR GPON ONU stick.
The I2C bus SFP MOD-DEF(1) pin 5 and MOD-DEF(2) pin 4 allow for some special commands on chip address 0x51 ie. soft eeprom via sfp_i2c daemon.
Hauwei MA5671A
0x79 - Enable/Disable serial console (Doesn't work) 0xE3 - Set sfp_a2_info environment variable ie. SFF-8472 A2h (Contains Serial Number, MAC Address, LOID Password) 0xE5 - Reboot (Kills PID 1) 0xE6 - Change ToD 0x80 (On Page 0x62) - Enable/Disable VLAN trunking
Alcatel-Lucent G-010S-P
0xE3 - Set sfp_a2_info environment variable ie. SFF-8472 A2h (Contains Serial Number, MAC Address, LOID Password) 0xE5 - Reboot (Kills PID 1) 0xE6 - Change ToD
Examples:
Enable VLAN trunking:
i2cset -y 0 0x51 0x7F 0x62
i2cset -y 0 0x51 0x80 1
Reboot
i2cset -y 0 0x51 0xE5 1
|
|
|
Anonfbc92
Anon
2018-Dec-22 7:55 am
Re: [Internet] Bypassing the HH3K at 1.5Gbps+ using a BCM57810S NICTechnical this NIC is compatible ? |
|
1 recommendation |
Anone0c2b
Anon
2018-Dec-22 8:04 am
All Broadcom BCM57810S based is compatible ? |
|
marcm join:2018-05-03 York, ON
1 recommendation |
marcm
Member
2018-Dec-22 11:12 am
said by Anone0c2b :All Broadcom BCM57810S based is compatible ? It should, but we only know for sure with the few that we tested with. It's potentially anything that uses the warpcore chipset, but there will never be any guarantee. Also, as mentioned in the original post, we only know for sure that it works with the Huawei SFP. Several people have had issues getting the Alcatel/Nokia SFP to work at all, so unless you have the Huawei SFP or don't mind it not working, you may want to hold off on purchasing a card. That being said, with the SFP connected directly to eth0 on a BCM57810S (Dell N20KJ): # ethtool eth0
Settings for eth0:
Supported ports: [ FIBRE ]
Supported link modes: 1000baseT/Full
2500baseX/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: No
Advertised link modes: 2500baseX/Full
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 2500Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 1
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: g
Wake-on: d
Current message level: 0x00000000 (0)
Link detected: yes
# nice -n -20 speedtest-cli
Retrieving speedtest.net configuration...
Testing from Bell Canada (xx.xx.xxx.xxx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Bell Mobility (Toronto, ON) [7.54 km]: 2.866 ms
Testing download speed................................................................................
Download: 1441.57 Mbit/s
Testing upload speed......................................................................................................
Upload: 854.16 Mbit/s
|
|
upnatom join:2006-12-30 Mississauga, ON 1 edit |
to Anone0c2b
The 3 listed are the ones that were tested and used to develop the patch. They all have the same PCB and have a "BCM957810A1006G" silkscreen, albeit the Dell branded versions populate the additional components needed for the fan such as power, control, etc. There are Chinese adapters that advertise as a BCM57810S, such as the 10Gtek Broadcom BCM57810S, but they have not been verified. If someone is willing to purchase and test, it would be of great assistance.
I would also add that Windows support will never exist as the source code for the driver is not available. We're using these adapters with open source solutions as we can patch the driver code. |
|
|
JAMESMTL
Premium Member
2018-Dec-22 2:04 pm
well done |
|
|
to upnatom
Good job guys! I guess if I had waited a few weeks I coulda saved myself some money... :P |
|
upnatom join:2006-12-30 Mississauga, ON 4 edits |
Thanks. said by PimpChicken:Good job guys! I guess if I had waited a few weeks I coulda saved myself some money... :P The patch itself is very simple, but that simplicity only came after a lot of despair. I knew in theory it was possible, but it took far too long to get the right sequence and magic numbers. I was poking registers for weeks because there literally is no documentation, except for the driver itself and some offshoot broadcom open switch repos. I had given up and only took another stab at it this week because I was off. A fresh look and 3 days later we're here I love this comment by file in our group chat said by file:[Tues Dec 18th 2018 @ 18:27] down the rabbit hole... Just moments after I posted I was back on it, and it perfectly sums up the past endeavour. Thurs Nov 22nd 2018 was our previous discussions, just over a month hiatus. Sorry, we couldn't figure it out earlier. |
|
|
Anon5f420
Anon
2018-Dec-22 4:31 pm
So logically, ClearOS should be compatible with its driver? |
|
|
to upnatom
Brilliant work guys. I needed a 10G switch eventually so I don’t regret the ES-16-XG, but this certainly reduces the cost barrier for most people! |
|
upnatom join:2006-12-30 Mississauga, ON
1 recommendation |
to Anon5f420
said by Anon5f420 :So logically, ClearOS should be compatible with its driver? Yes. The patch is for Linux and thereby any distro using the Linux kernel. You just need to apply the patch and build the module. » www.clearos.com/resource ··· _modulesI will soon post a patch for FreeBSD's bxe and how-to. Therefore it would apply to pfSense, etc. |
|
upnatom |
to gaspimp
said by gaspimp:Brilliant work guys. I needed a 10G switch eventually so I don’t regret the ES-16-XG, but this certainly reduces the cost barrier for most people! The entry cost is also less than a 1G media converter and you get an unused 10G port if you want to link up to a switch. The caveat is that you need to know computing, there will be no hand holding here. |
|
|
upnatom 4 edits
1 recommendation |
BXE WarpCore 2.5G SGMII FreeBSD patch: [bxe_warpcore_2_5g_sgmii.patch] Updated: 2018-12-18 Index: bxe_elink.c
===================================================================
--- bxe_elink.c (revision 342398)
+++ bxe_elink.c (working copy)
@@ -884,6 +884,7 @@
#define ELINK_SFP_EEPROM_CON_TYPE_ADDR 0x2
#define ELINK_SFP_EEPROM_CON_TYPE_VAL_UNKNOWN 0x0
+ #define ELINK_SFP_EEPROM_CON_TYPE_VAL_SC 0x1
#define ELINK_SFP_EEPROM_CON_TYPE_VAL_LC 0x7
#define ELINK_SFP_EEPROM_CON_TYPE_VAL_COPPER 0x21
#define ELINK_SFP_EEPROM_CON_TYPE_VAL_RJ45 0x22
@@ -5044,6 +5045,16 @@
0x1000);
ELINK_DEBUG_P0(sc, "set SGMII AUTONEG\n");
} else {
+ /* Note that 2.5G works only when used with 1G advertisement */
+ if (fiber_mode && (phy->req_line_speed == ELINK_SPEED_2500) &&
+ (phy->speed_cap_mask &
+ (PORT_HW_CFG_SPEED_CAPABILITY_D0_1G |
+ PORT_HW_CFG_SPEED_CAPABILITY_D0_2_5G))) {
+ elink_cl45_write(sc, phy, MDIO_WC_DEVAD,
+ MDIO_WC_REG_SERDESDIGITAL_MISC1,
+ 0x6010);
+ }
+
elink_cl45_read(sc, phy, MDIO_WC_DEVAD,
MDIO_WC_REG_COMBO_IEEE0_MIICTRL, &val16);
val16 &= 0xcebf;
@@ -5054,6 +5065,7 @@
val16 |= 0x2000;
break;
case ELINK_SPEED_1000:
+ case ELINK_SPEED_2500:
val16 |= 0x0040;
break;
default:
@@ -9071,6 +9083,7 @@
break;
}
case ELINK_SFP_EEPROM_CON_TYPE_VAL_UNKNOWN:
+ case ELINK_SFP_EEPROM_CON_TYPE_VAL_SC:
case ELINK_SFP_EEPROM_CON_TYPE_VAL_LC:
case ELINK_SFP_EEPROM_CON_TYPE_VAL_RJ45:
check_limiting_mode = 1;
@@ -9084,7 +9097,8 @@
(val[ELINK_SFP_EEPROM_1G_COMP_CODE_ADDR] != 0)) {
ELINK_DEBUG_P0(sc, "1G SFP module detected\n");
phy->media_type = ELINK_ETH_PHY_SFP_1G_FIBER;
- if (phy->req_line_speed != ELINK_SPEED_1000) {
+ if ((phy->req_line_speed != ELINK_SPEED_1000) &&
+ (phy->req_line_speed != ELINK_SPEED_2500)) {
uint8_t gport = params->port;
phy->req_line_speed = ELINK_SPEED_1000;
if (!CHIP_IS_E1x(sc)) {
@@ -12532,6 +12546,7 @@
ELINK_SUPPORTED_100baseT_Full |
ELINK_SUPPORTED_1000baseT_Full |
ELINK_SUPPORTED_1000baseKX_Full |
+ ELINK_SUPPORTED_2500baseX_Full |
ELINK_SUPPORTED_10000baseT_Full |
ELINK_SUPPORTED_10000baseKR_Full |
ELINK_SUPPORTED_20000baseKR2_Full |
@@ -13069,6 +13084,7 @@
break;
case PORT_HW_CFG_NET_SERDES_IF_SFI:
phy->supported &= (ELINK_SUPPORTED_1000baseT_Full |
+ ELINK_SUPPORTED_2500baseX_Full |
ELINK_SUPPORTED_10000baseT_Full |
ELINK_SUPPORTED_FIBRE |
ELINK_SUPPORTED_Pause |
How-to enable 2.5G capability via UEFI eDiag:Follow the necessary steps outlined in the first post. How-to patch and build the BXE module on FreeBSD:cd /usr/src/sys/dev/bxe
patch < ~/bxe_warpcore_2_5g_sgmii.patch
cd /usr/src/sys/modules/bxe
make
echo 'if_bxe_load="YES"' >> /boot/loader.conf.local
reboot
How-to check your current interface settings, check your media options, and switch to 2.5Gbps if need be:ifconfig -v <ifname>
ifconfig -m <ifname>
ifconfig <ifname> media 2500baseX mediaopt full-duplex
How-to dump your SFP eeprom:ifconfig -vvvvvv <ifname>
|
|
|
Anon81ed2
Anon
2018-Dec-22 10:45 pm
Question, on dois copié/collé le patch dans un fichier text ? |
|
upnatom join:2006-12-30 Mississauga, ON |
upnatom
Member
2018-Dec-22 10:51 pm
said by Anon81ed2 :Question, on dois copié/collé le patch dans un fichier text ? My french is terrible copié/collé Linux file name: bnx2x_warpcore_2_5g_sgmii.patch FreeBSD file name: bxe_warpcore_2_5g_sgmii.patch |
|
singerie3anon are muted join:2008-10-12 Montreal, QC |
to upnatom
Thank you very much for all your work ! |
|
upnatom join:2006-12-30 Mississauga, ON |
FYI I've updated the Linux and FreeBSD patches to the most recent revision. |
|
|
JAMESMTL
Premium Member
2018-Dec-24 11:00 pm
I'm going give this a shot in the new year. ordered a dell N20KJ.
I hope to get this nic running passthru on an esxi box to a ubuntu vm
thanks for updating the post with the nic fw config. I looked QUICKLY at the ediag docs and noticed there was a linux cli. Am i to assume the core settings are one of the restrictions that require ediag to be run efi shell? |
|
upnatom join:2006-12-30 Mississauga, ON |
upnatom
Member
2018-Dec-24 11:37 pm
said by JAMESMTL:I'm going give this a shot in the new year. ordered a dell N20KJ.
I hope to get this nic running passthru on an esxi box to a ubuntu vm
thanks for updating the post with the nic fw config. I looked QUICKLY at the ediag docs and noticed there was a linux cli. Am i to assume the core settings are one of the restrictions that require ediag to be run efi shell? As it is a 1 time operation, we did not want to put in the effort to get the linux version to compile on recent kernels when the efi version just works, but we lazily tried and moved on quickly. I used ESXI with passthru to get the shots. It was as simple as plugging in a USB with all the ediag_x64.efi bits, creating a VM with no OS, adding a USB controller, adding the USB device, changing the boot options to EFI, checking Force BIOS setup, booting up, selecting shell, changing the drive/directory fs0: (USB), and running ediag_x64.efi -b10eng. |
|
|
JAMESMTL
Premium Member
2018-Dec-25 12:57 am
that's good to hear. i'll let you know how it goes once the card comes in.
originally i was going to get another x520 for another pc so the timing of all your work was spot on.
i still can't believe all the work you put into this. Thanks
edit: so how warm do these broadcoms run? warmer than intel but cooler than chelsio? |
|
jamend join:2008-03-27 Montreal, QC |
jamend
Member
2018-Dec-25 2:49 pm
They run cool but they have an annoying little fan, unlike the x520. |
|
upnatom join:2006-12-30 Mississauga, ON |
to JAMESMTL
Are you in Montreal like jamend ? If so, I'm curious to know what SFP module Bell had set you up with.. We're trying to debug issues with jamend Nokia G-010S-A.. Trying to get my hands on 1 myself, but I can't find any available for purchase online. The Broadcom doesn't seem to run too hot, it's passively cooled. I sent my Dell to jamend , so I can't remember if there was any real difference. |
|
|
JAMESMTL
Premium Member
2018-Dec-25 4:53 pm
just off island but within greater montreal. I've got a huawei though |
|
|
to upnatom
Will be ordering a NIC to test this out as well.
I originally had a Huawei SFP module, then got switched over to an Alcatel module, now I ended up with a Nokia module. I'm assuming the Alcatel and Nokia modules are the same, as they both are able to operate on the same splitter, but they both seem to have different dimensions. |
|
upnatom join:2006-12-30 Mississauga, ON |
upnatom
Member
2018-Dec-25 11:54 pm
said by gobiyoga:Will be ordering a NIC to test this out as well.
I originally had a Huawei SFP module, then got switched over to an Alcatel module, now I ended up with a Nokia module. I'm assuming the Alcatel and Nokia modules are the same, as they both are able to operate on the same splitter, but they both seem to have different dimensions. I'm still struggling with jamend and it's good to know that the Nokia is being deployed elsewhere. You'll be doing us a huge benefit by testing. It's hard to diagnose the problem without the hardware in hand but with more eyes looking it may be trivial. |
|
|
to gobiyoga
said by gobiyoga:Will be ordering a NIC to test this out as well.
I originally had a Huawei SFP module, then got switched over to an Alcatel module, now I ended up with a Nokia module. I'm assuming the Alcatel and Nokia modules are the same, as they both are able to operate on the same splitter, but they both seem to have different dimensions. I'm curious as to why you were switched over to Alcatel then Nokia, I thought all of GTA was huawei only. |
|
|
Anon7aac4
Anon
2018-Dec-27 3:45 am
said by HKPolice:said by gobiyoga:Will be ordering a NIC to test this out as well.
I originally had a Huawei SFP module, then got switched over to an Alcatel module, now I ended up with a Nokia module. I'm assuming the Alcatel and Nokia modules are the same, as they both are able to operate on the same splitter, but they both seem to have different dimensions. I'm curious as to why you were switched over to Alcatel then Nokia, I thought all of GTA was huawei only. Ca rien a voir, j'avais un ONT Alcatel avent d'être switcher sur du Huawei |
|
|
to upnatom
BTW, both Alcatel and Huawei SFPs share the same hardware with minor differences. In fact they're so similar, I've been able to run a Huawei firmware on an Alcatel The only diffrence is that the Alcatel has a physical EEPROM chip (24LC16) to store SFP MSA settings (serial number, nominal bit rate, ...). This chip is connected to both the GPON SoC and I2C pins on the SFP connector. This way, settings can be read by the SFP host while the SoC is still booting. On the Huawei one, U-Boot environment variables are used to store MSA settings and an I2C slave driver is loaded on boot to simulate an EEPROM device. |
|
jamend join:2008-03-27 Montreal, QC |
jamend
Member
2018-Dec-27 6:33 pm
Here is the Nokia G-010S-A for comparison, with physical EEPROM. I got it working in a TP-Link MC220L but not on BCM57810S. |
|
upnatom join:2006-12-30 Mississauga, ON 4 edits |
to sibisties
Thanks for clarifying the Alcatel. I expected as much since the silkscreen and traces were identical to the Huawei's by the gold fingers from the pictures floating on the net. I am aware of the inner workings of the Huawei as I have dissected it. As you maybe aware there are a variety of sgmii modes the Falcon can be put into. With the Huawei, it's default mode is auto TBI, which works well with the patch, and any TBI mode shall. Also, with the Huawei, the driver does timeout on hotplug because it relies on the eeprom being accessible during module detection, but since it's a soft implementation, it's not accessible in the allocated time frame. It's not a problem as the driver will link 30-50 seconds afterwards once the module has loaded. The Nokia does share the same hardware, but in a different package and PCB layout. It's throwing a TX fault with the driver, so I'm trying to determine what sgmii mode the firmware is setup to use, if it's even using sgmii... It's nothing firmware wouldn't be able to fix, I assume. It's just very difficult without the hardware in hand. EDIT: And that has got me thinking more.. since the Nokia has a physical eeprom and succeeds instantaneously on module detect/init it maybe trying to acquire a link much too early on while OpenWRT boots. I've instructed jamend to add a similar delay as to the timeout the Huawei incurs; he'll owe you his gratitude if it works. |
|