CodingBox Q&A Ask question

Codificare QSFP28 e QSFP-DD: dove vive il blocco ID una volta lasciato SFF-8472 A0h/A2h

Asked Active Viewed 74 AI translation from English
4

Faccio piccoli lotti di ricodifica moduli per integratori, e fino ad ora tutto sul mio banco aveva la forma SFP: leggi i 256 byte ad A0h con l'ID seriale nella prima metà, leggi A2h per diagnostica e soglie, scrivi il blocco identificazione, fatto. Ora è arrivato un cliente con parti 100G e 400G e il mio rig è chiaramente fuori dalla sua profondità.

  • moduli da ricodificare: un vassoio di QSFP28, alcuni QSFP-DD e un campione OSFP
  • programmatore attuale: I2C semplice, legge e scrive A0h e A2h, nessuna selezione di pagina
  • gli host dall'altra parte controllano vendor name, part number e seriale prima di accendere la porta

Le mie note di lavoro su come è organizzata la memoria, che è davvero quello che voglio far controllare:

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

Cosa ho provato:

  • dumpare un QSFP28 con il mio profilo SFP, che mi restituisce la metà inferiore più qualunque pagina fosse selezionata per caso
  • fare due dump dello stesso modulo uno dopo l'altro per vedere quali byte si muovono da soli

Questa mappa è corretta, e quali campi devo effettivamente scrivere per la codifica vendor una volta che la memoria è paginata e bancata?

Comments 5

La mappa è giusta nella sostanza. Quello che manca al tuo rig è che su SFF-8636 c'è un solo indirizzo e i 128 byte superiori sono una finestra: scrivi il numero di pagina nel byte 7Fh, poi leggi la metà superiore e ottieni quella pagina. La pagina 00h è quella obbligatoria e contiene il blocco identificazione, quindi per la codifica raramente devi andare altrove. CMIS ci mette sopra un bank - 7Eh seleziona il bank, 7Fh la pagina, e i 128 byte inferiori restano fissi e sempre leggibili. Senza selezione di pagina il tuo strumento continua a darti qualunque pagina su cui il modulo era parcheggiato, che è esattamente il comportamento che hai descritto.

I campi che contano per la codifica vendor sono gli stessi ovunque: vendor name, part number, revisione, seriale, l'OUI e i checksum. Sbaglia un checksum e un host pignolo butta fuori il modulo anche se ogni stringa sembra perfetta in un dump esadecimale. Un'altra cosa a cui essere pronti: alcuni moduli proteggono le funzioni vendor dietro password manufacturer e host mentre le letture semplici restano aperte, quindi puoi tranquillamente dumpare un pezzo che non puoi scrivere.

4 KazakhstanrackhubKZ Show original (English) AI translation

I checksum sono esattamente quello che mi ha morso al primo tentativo - le stringhe corrispondevano byte per byte a un modulo di funzionamento noto e l'host ha comunque rifiutato il pezzo. Buono a sapersi che la pagina 00h basta per il blocco identificazione, questo tiene piccolo l'ambito del lavoro.

Il riassunto onesto allora è che il mio programmatore non può proprio farlo, perché non ha modo di scrivere il byte 7Fh prima di una lettura. Preferirei comprare una scheda piuttosto che imbullonare la selezione di pagina su un rig fatto in casa per un solo ordine. C'è qualcosa sul mercato che gestisce bene i bank CMIS, o è più una caratteristica da datasheet?

2 ChinasfpnodeCN Show original (English) AI translation

Le schede commerciali lo pubblicizzano davvero - SFPTotal Plus X, l'attrezzatura Reveltronics (REVELPROG-IS), i programmatori EDGE e Flexoptix mettono tutti QSFP-DD e OSFP nella lista delle funzionalità, e ci buttano dentro anche un database di codici vendor. SFPTotal dichiara oltre 25.000 codici, Cisco, Huawei e HPE inclusi.

Quanto di questo corrisponda ai pezzi specifici sul tuo banco è un'altra domanda, e non mi fiderei nemmeno della mia parola su questo. Se puoi, metti un campione del QSFP-DD del cliente davanti alla scheda prima di impegnarti nell'acquisto. Il supporto per un form factor su un datasheet non è la stessa cosa del supporto per il modulo particolare che hai in mano, ed è nei pezzi bancati che quel divario si vede.

3 South Koreawaverunner63KR Show original (English) AI translation

Per contrasto, il lavoro SFP semplice è rozzo come lo è sempre stato: contano davvero solo i primi 128 byte del dump da 256 byte, il resto è riservato al produttore, e la gente scrive immagini GLC-LX o GLC-BX-D/GLC-BX-U su parti CWDM generiche da anni per farle accettare da un Catalyst 3560, un HP J8692A o un EX4200-24F. Per quello circolavano schemi di programmatori fatti in casa, serp-0.3 è quello che ho costruito io, e i dump da un Finisar FCMJ-8521-3, un HP J4858C o J4859C o un D-Link DEM-310GT erano i punti di riferimento abituali.

Animale diverso, ma da sapere nel caso ti finiscano sul banco degli stick GPON: lì non codifichi affatto dall'esterno. Su un FS GPON-ONU-34-20BI, che è un parente del Nokia G-010S-A, ottieni una shell sullo stick stesso - con la fibra attaccata risponde su 192.168.1.10 come ONTUSER - imposti seriale e MAC con uci, e riscrivi le stringhe vendor dell'EEPROM dall'interno con sfp_i2c.

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