CodingBox Q&A Ask question

Kodowanie QSFP28 i QSFP-DD: gdzie mieszka blok ID, gdy opuszczasz SFF-8472 A0h/A2h

Asked Active Viewed 74 AI translation from English
4

Robię małe partie przekodowywania modułów dla integratorów, i do tej pory wszystko na moim stanowisku miało kształt SFP: czytasz 256 bajtów pod A0h z serial ID w pierwszej połowie, czytasz A2h dla diagnostyki i progów, wpisujesz blok identyfikacji, gotowe. Teraz pojawił się klient z częściami 100G i 400G i mój zestaw wyraźnie sobie nie radzi.

  • moduły do przekodowania: tacka QSFP28, kilka QSFP-DD i jedna próbka OSFP
  • obecny programator: zwykłe I2C, czyta i zapisuje A0h i A2h, bez żadnego wyboru strony
  • hosty po drugiej stronie sprawdzają vendor name, part number i serial, zanim zaświecą port

Moje robocze notatki o tym, jak ułożona jest pamięć, i to właśnie chcę zweryfikować:

SFP/SFP+/SFP28 (SFF-8472): A0h 256B, serial ID in first 128B; A2h 256B diagnostics + thresholds, optional 128B pages
QSFP+/QSFP28 (SFF-8636): single A0h, 128B pages selected by byte 7Fh, page 00h mandatory
XFP (INF-8077i): byte 7Fh picks the active table, with serial ID in table 01h and user EEPROM in 02h
OSFP/QSFP-DD/SFP-DD (CMIS 5.x): lower 128B fixed, upper memory by bank and page via 7Eh and 7Fh

Co już próbowałem:

  • zrzucenie QSFP28 moim profilem SFP, co daje mi dolną połowę plus jakąkolwiek stronę, jaka akurat była wybrana
  • wzięcie dwóch dumpów tego samego modułu jeden po drugim, żeby zobaczyć, które bajty ruszają się same

Czy ta mapa jest poprawna, i które pola faktycznie muszę wpisać do kodowania producenta, gdy pamięć jest stronicowana i bankowana?

Comments 5

Mapa jest poprawna co do istoty. Czego brakuje twojemu zestawowi, to że na SFF-8636 jest tylko jeden adres, a górne 128 bajtów to okno: wpisujesz numer strony do bajtu 7Fh, potem czytasz górną połowę i dostajesz tę stronę. Page 00h jest obowiązkowa i trzyma blok identyfikacji, więc do kodowania rzadko trzeba iść gdziekolwiek indziej. CMIS dokłada na to bank - 7Eh wybiera bank, 7Fh stronę, a dolne 128 bajtów zostaje stałe i zawsze do odczytu. Bez wyboru strony twoje narzędzie ciągle oddaje ci tę stronę, na jakiej moduł akurat był zaparkowany, co jest dokładnie zachowaniem, jakie opisałeś.

Pola, które mają znaczenie dla kodowania producenta, są wszędzie takie same: vendor name, part number, rewizja, serial, OUI i sumy kontrolne. Pomyl się w sumie kontrolnej, a wybredny host wyrzuci moduł, nawet jeśli każdy string wygląda idealnie w hex dumpie. Jeszcze jedno, na co warto być gotowym: niektóre moduły chronią funkcje producenta hasłami producenta i hosta, podczas gdy zwykłe odczyty zostają otwarte, więc spokojnie zrzucisz część, której nie zapiszesz.

4 KazakhstanrackhubKZ Show original (English) AI translation

Sumy kontrolne to dokładnie to, co ugryzło mnie przy pierwszej próbie - stringi zgadzały się bajt w bajt ze znanym dobrym modułem, a host i tak odmówił części. Dobrze wiedzieć, że page 00h wystarcza do bloku identyfikacji, to trzyma zakres roboty małym.

Uczciwe podsumowanie jest więc takie, że mój programator w ogóle nie umie tego zrobić, bo nie ma sposobu, żeby zapisać bajt 7Fh przed odczytem. Wolałbym kupić płytkę, niż doczepiać wybór strony do domowej roboty zestawu dla jednego zamówienia. Czy coś na rynku obsługuje banki CMIS jak trzeba, czy to bardziej funkcja z karty katalogowej niż rzeczywistość?

2 ChinasfpnodeCN Show original (English) AI translation

Komercyjne płytki faktycznie to reklamują - SFPTotal Plus X, sprzęt Reveltronics (REVELPROG-IS), programatory EDGE i Flexoptix, wszystkie mają QSFP-DD i OSFP na liście funkcji, i dorzucają też bazę kodów producentów. SFPTotal deklaruje ponad 25 000 kodów, łącznie z Cisco, Huawei i HPE.

Ile z tego zgadza się z konkretnymi częściami na twoim stanowisku, to inne pytanie, i ja też bym na moje słowo nie polegał. Jeśli możesz, postaw próbkę QSFP-DD klienta przed płytką, zanim zdecydujesz się na zakup. Wsparcie dla form factora w karcie katalogowej to nie to samo co wsparcie dla konkretnego modułu w twojej ręce, i to właśnie przy bankowanych częściach ta luka się pokazuje.

3 South Koreawaverunner63KR Show original (English) AI translation

Dla kontrastu, zwykła robota SFP jest tak prymitywna, jak zawsze była: naprawdę liczy się tylko pierwszych 128 bajtów z 256-bajtowego dumpa, reszta to rezerwa producenta, i ludzie od lat wpisują obrazy GLC-LX albo GLC-BX-D/GLC-BX-U w generyczne części CWDM, żeby zaakceptował je Catalyst 3560, HP J8692A albo EX4200-24F. Krążyły do tego schematy domowej roboty programatorów, serp-0.3 to ten, który ja zbudowałem, a dumpy z Finisar FCMJ-8521-3, HP J4858C czy J4859C albo D-Link DEM-310GT były zwykłymi punktami odniesienia.

Inne zwierzę, ale warto wiedzieć na wypadek, gdyby na twoim stanowisku wylądowały patyczki GPON: tam wcale nie kodujesz z zewnątrz. Na FS GPON-ONU-34-20BI, który jest krewnym Nokia G-010S-A, dostajesz powłokę na samym patyczku - z podłączonym włóknem odpowiada pod 192.168.1.10 jako ONTUSER - ustawiasz serial i MAC przez uci i przepisujesz stringi producenta w EEPROM od środka przez sfp_i2c.

2 Türkiyelinknerd83TR Show original (English) AI translation
Log in to comment. Log in