Auteur Sujet: Openwrt 22.03.xx - module bnx2x pour le support du 2Gbps  (Lu 3022 fois)

0 Membres et 1 Invité sur ce sujet

Fuli10

  • Abonné Bbox fibre
  • *
  • Messages: 1 033
  • Conflans Sainte Honorine (78)
Openwrt 22.03.xx - module bnx2x pour le support du 2Gbps
« le: 20 octobre 2022 à 23:00:38 »
Bonjour

Je reprend dans un sujet à part juste la petite partie décrite ici. Il s'agit de builder le driver du BCM57810S supportant la vitesse 2.5Gbps retourné par le module (après avoir modifié la configuration du port).

Je le mets également à jours avec les packages pour les différentes version d'openwrt.

Voilà comment builder le driver bnx2x en incluant le supporte du 2.5Gbps pour les modules FS.com .


git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt

git checkout v22.03.2 -b v22.03.2

wget https://downloads.openwrt.org/releases/22.03.2/targets/x86/64/feeds.buildinfo -O feeds.conf.default
./scripts/feeds update -a
./scripts/feeds install -a

wget https://downloads.openwrt.org/releases/22.03.2/targets/x86/64/config.buildinfo -O .config
make menuconfig

Puis je compile tout une première fois:
make -j $(($(nproc)+1)) download world

Après, j'applique le patch. Je n'ai pas chercher à savoir sur quel version du code j'applique le patch: je l'applique partout:
find -name "bnx2x_link.c"
./build_dir/toolchain-x86_64_gcc-11.2.0_musl/linux-5.10.146/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
./build_dir/target-x86_64_musl/linux-x86_64/linux-5.10.146/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c

cd ./build_dir/toolchain-x86_64_gcc-11.2.0_musl/linux-5.10.146/
patch -p0 < ~/patch/bnx2x_warpcore+8727_2_5g_sgmii.patch

cd ./build_dir/target-x86_64_musl/linux-x86_64/linux-5.10.146/
patch -p0 < ~/patch/bnx2x_warpcore+8727_2_5g_sgmii.patch
Cela a appliqué le patch, puis je rebuild de nouveau avec un simple make world. Et HOP, un package bnx2x qui tiens les 2Gbits.
Pour le patch, il ne me reste plus que ça (je n'ai pas refais la comparaison avec 22.03.2, je laisse ce que j'avais comme diff sur 22.03.0):
diff bnx2x_link.c bnx2x_link2.c
153a154
> #define SFP_EEPROM_CON_TYPE_VAL_SC 0x1
4212a4214,4223
> /* 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);
> }
>
4222a4234
> case SPEED_2500:
8174a8187
> case SFP_EEPROM_CON_TYPE_VAL_SC:
8185c8198,8199
< if (phy->req_line_speed != SPEED_1000) {
---
> if ((phy->req_line_speed != SPEED_1000) &&
> (phy->req_line_speed != SPEED_2500)) {
9238a9253
> (phy->req_line_speed == SPEED_2500) ||
9247a9263,9278
> if ((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_read_and_write(bp, phy,
> MDIO_AN_DEVAD,
> MDIO_AN_REG_8727_MISC_CTRL2,
> ~(1<<5));
> bnx2x_cl45_write(bp, phy,
> MDIO_AN_DEVAD,
> MDIO_AN_REG_8727_MISC_CTRL1, 0x0010);
> } else {
> bnx2x_cl45_write(bp, phy,
> MDIO_AN_DEVAD,
> MDIO_AN_REG_8727_MISC_CTRL1, 0x001C);
> }
9269c9300
< MDIO_AN_DEVAD, MDIO_AN_REG_8727_MISC_CTRL, 0);
---
> MDIO_AN_DEVAD, MDIO_AN_REG_8727_MISC_CTRL2, 0);
9277c9308
< MDIO_AN_DEVAD, MDIO_AN_REG_8727_MISC_CTRL,
---
> MDIO_AN_DEVAD, MDIO_AN_REG_8727_MISC_CTRL2,
9279a9311,9313
> MDIO_AN_DEVAD, MDIO_AN_REG_8727_MISC_CTRL1,
> 0x001C);
> bnx2x_cl45_write(bp, phy,
9567a9602,9606
> } else if ((link_status & (1<<1)) && (!(link_status & (1<<14)))) {
> link_up = 1;
> vars->line_speed = SPEED_2500;
> DP(NETIF_MSG_LINK, "port %x: External link up in 2.5G\n",
>    params->port);
9599c9638,9639
<     (phy->req_line_speed == SPEED_1000)) {
---
>     ((phy->req_line_speed == SPEED_1000) ||
>      (phy->req_line_speed == SPEED_2500))) {
11722a11763
>    SUPPORTED_2500baseX_Full |
11908a11950
>    SUPPORTED_2500baseX_Full |
12255a12298
>    SUPPORTED_2500baseX_Full |

Et voilà le résultat:
$ iperf3 -R -4  -c bouygues.testdebit.info -p 9219 -C bbr
Connecting to host bouygues.testdebit.info, port 9219
Reverse mode, remote host bouygues.testdebit.info is sending
[  5] local AAAA port 58218 connected to 89.84.1.186 port 9219
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   245 MBytes  2.06 Gbits/sec                 
[  5]   1.00-2.00   sec   253 MBytes  2.13 Gbits/sec                 
[  5]   2.00-3.00   sec   254 MBytes  2.13 Gbits/sec                 
[  5]   3.00-4.00   sec   256 MBytes  2.15 Gbits/sec                 
[  5]   4.00-5.00   sec   259 MBytes  2.17 Gbits/sec                 
[  5]   5.00-6.00   sec   257 MBytes  2.16 Gbits/sec                 
[  5]   6.00-7.00   sec   260 MBytes  2.18 Gbits/sec                 
[  5]   7.00-8.00   sec   260 MBytes  2.18 Gbits/sec                 
[  5]   8.00-9.00   sec   258 MBytes  2.16 Gbits/sec                 
[  5]   9.00-10.00  sec   259 MBytes  2.17 Gbits/sec                 
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  2.51 GBytes  2.16 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  2.50 GBytes  2.15 Gbits/sec                  receiver

iperf Done.
Du coup je joins les fichier résultat.


Fuli10

  • Abonné Bbox fibre
  • *
  • Messages: 1 033
  • Conflans Sainte Honorine (78)
Openwrt 22.03.xx - module bnx2x pour le support du 2Gbps
« Réponse #1 le: 20 octobre 2022 à 23:01:29 »
Module compilé pour openwrt 22.03.0

Fuli10

  • Abonné Bbox fibre
  • *
  • Messages: 1 033
  • Conflans Sainte Honorine (78)
Openwrt 22.03.xx - module bnx2x pour le support du 2Gbps
« Réponse #2 le: 20 octobre 2022 à 23:03:00 »
Module compilé pour openwrt 22.03.2 (la version .1 est à peine restée quelques jours).

ochbob

  • Abonné Orange Fibre
  • *
  • Messages: 254
  • Beauzelle (31)
Openwrt 22.03.xx - module bnx2x pour le support du 2Gbps
« Réponse #3 le: 19 décembre 2022 à 16:17:29 »
Merci pour la synthèse ;)

ochbob

  • Abonné Orange Fibre
  • *
  • Messages: 254
  • Beauzelle (31)
Openwrt 22.03.xx - module bnx2x pour le support du 2Gbps
« Réponse #4 le: 28 décembre 2022 à 09:49:07 »
ipk compilé avec le patch 'txfault' (le dernier en date, les autres sont dépréciés)

https://github.com/JAMESMTL/snippets/tree/master/bnx2x/patches

Installé sur mon routeur en 22.03.2, RAS, je le mets là pour ceux qui veulent.




Fuli10

  • Abonné Bbox fibre
  • *
  • Messages: 1 033
  • Conflans Sainte Honorine (78)
Openwrt 22.03.xx - module bnx2x pour le support du 2Gbps
« Réponse #5 le: 19 janvier 2023 à 22:35:56 »
Module compilé pour openwrt 22.03.3
J'ai utilisé le patch posté par @ochbob (très peu de différences avec ce que j'avais mais sûrement un bug "connu" de corrigé en plus).

gaiusbaltar

  • Abonné Orange Fibre
  • *
  • Messages: 25
Openwrt 22.03.xx - module bnx2x pour le support du 2Gbps
« Réponse #6 le: 22 avril 2023 à 21:55:13 »
Si jamais vous êtes sur la version plus ancienne 21.02.1 avec le kernel 5.4.154 voici le module compilé et testé fonctionnel à 2.5g sur BMC57810 avec GPON FS .

Fuli10

  • Abonné Bbox fibre
  • *
  • Messages: 1 033
  • Conflans Sainte Honorine (78)
Openwrt 23.05.xx - module bnx2x pour le support du 2Gbps
« Réponse #7 le: 13 décembre 2024 à 22:00:30 »
Bonsoir.
Je suis passé chez Bouygues hier. Cela m'a donné l'occasion de ressortir mon vieil ONU et la vieille BCM avec son patch pour tenir 2Gbps.
Du coup je vais continuer à partager ici le module patché cette fois pour openwrt 23.05.5 (x86/64).
Je viens de le tester et j'ai bien mes 1.9Gbps avec ce patch. Dommage qu'il n'y ai pas une intégration plus propre , officielle et plus rependue du support des 2.5Gbps.
Je voudrais bien son support avec un connectX-4 plus moderne et qui consomme moins (+support de l'ASPM).
Si j'active l'ASPM avec le BCM, même si la carte prétend supporter ce mode L1, ça fait planter tout le système. Pas top.
Bref. Voilà le module

ochbob

  • Abonné Orange Fibre
  • *
  • Messages: 254
  • Beauzelle (31)
Openwrt 22.03.xx - module bnx2x pour le support du 2Gbps
« Réponse #8 le: 14 février 2025 à 11:14:01 »
Merci Fuli, ça me motivera ptet a upgrade ma 22.03.3  ::)