QUOTE(Anime4000 @ Sep 22 2024, 04:29 PM)
aww man... haha can ignore my PM
thing is HiSGMII is Realtek Proprietary modification of overclocked SGMII, also check
2.5G BaseX supported?
My PON Stick follow this Linux SFP patch:
https://github.com/torvalds/linux/blob/cf11.../sfp-bus.c#L327Addr
0x06 Value
0x00 Unspecified 1000Base-LX
Addr
0x0c Value
0x1f (3100MBd)
If Asus detect by i2c EEPROM Vendor Name and Vendor Part Number for auto detect, then I would use HUAWEI for it's name just make RT-BE88U happy

QUOTE(blacktubi @ Sep 22 2024, 04:45 PM)
Btw GPL for RT-BE88U is available for download, not sure if you will find anything useful from there

I am not a Linux/C expert but I decided to download and poke around it
I do see 2.5G BaseX mentioned in
\asuswrt\release\src-rt-5.04behnd.4916\bcmdrivers\opensource\phy\phy_drv_dsl_serdes.c
from line 87
CODE
if (strcasecmp(config_xfi, "1000Base-X") == 0)
phy_dev->current_inter_phy_type = INTER_PHY_TYPE_1000BASE_X;
if (strcasecmp(config_xfi, "2500Base-X") == 0)
phy_dev->current_inter_phy_type = INTER_PHY_TYPE_2500BASE_X;
if (strcasecmp(config_xfi, "2.5GBase-X") == 0)
phy_dev->current_inter_phy_type = INTER_PHY_TYPE_2P5GBASE_X;
if (strcasecmp(config_xfi, "5GBase-R") == 0)
phy_dev->current_inter_phy_type = INTER_PHY_TYPE_5GBASE_R;
if (strcasecmp(config_xfi, "10GBase-R") == 0)
phy_dev->current_inter_phy_type = INTER_PHY_TYPE_10GBASE_R;
if (strcasecmp(config_xfi, "USXGMII") == 0)
phy_dev->current_inter_phy_type = INTER_PHY_TYPE_USXGMII;
It does also seem to query all i2c data, but idk what exactly it does with that
\asuswrt\release\src-rt-5.04behnd.4916\bcmdrivers\opensource\misc\bcmsfp\impl1\bcmsfp.c
CODE
dev_info(psfp->dev, "module %.*s %.*s rev %.*s sn %.*s dc %.*s\n",
(int)sizeof(eeprom.base.vendor_name), eeprom.base.vendor_name,
(int)sizeof(eeprom.base.vendor_pn), eeprom.base.vendor_pn,
(psfp->eeprom.base.phys_id == PHYS_ID_XFP) ? (int)sizeof(eeprom.base.xfp.vendor_rev) : (int)sizeof(eeprom.base.sfp.vendor_rev),
(psfp->eeprom.base.phys_id == PHYS_ID_XFP) ? eeprom.base.xfp.vendor_rev : eeprom.base.sfp.vendor_rev,
(int)sizeof(eeprom.ext.vendor_sn), eeprom.ext.vendor_sn,
(int)sizeof(eeprom.ext.datecode), eeprom.ext.datecode);