CodingBox Q&A Ask question

QSFP28とQSFP-DDのコーディング: SFF-8472のA0h/A2hを離れるとIDブロックはどこにあるのか

Asked Active Viewed 74 AI translation from English
4

インテグレーター向けにモジュールの再コーディングを少量バッチでやっていて、これまで作業台にあるものはすべてSFP形状でした。A0hの256バイトを読み(前半にシリアルID)、A2hを読んで診断値としきい値を取得し、識別ブロックを書き込んで完了、という具合です。今回100Gと400Gの部品を持った客が現れて、私のリグは明らかに手に負えなくなっています。

  • 再コーディング対象のモジュール: QSFP28のトレイ1つ、QSFP-DDが数個、OSFPのサンプルが1個
  • 現在のプログラマ: 素のI2C、A0hとA2hの読み書きのみ、ページ選択機能は一切なし
  • 先方のホストはポートを光らせる前にベンダー名、パーツナンバー、シリアルをチェックする

メモリレイアウトについての自分用メモですが、これが本当に確認してほしい部分です:

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

試したこと:

  • 自分のSFPプロファイルでQSFP28をダンプすると、下位半分とそのとき選択されていた何らかのページが返ってくる
  • 同じモジュールを立て続けに2回ダンプして、どのバイトが勝手に変わるか見てみた

このマップは合っていますか。そしてメモリがページ化・バンク化された状態で、ベンダーコーディングのために実際に書き込む必要があるのはどのフィールドでしょうか。

Comments 5

マップは実質的に合っています。あなたのリグに欠けているのは、SFF-8636ではアドレスが1つしかなく、上位128バイトが窓になっているという点です。バイト7Fhにページ番号を書き込んでから上位半分を読むと、そのページが得られます。必須なのはページ00hで、そこに識別ブロックが入っているので、コーディングのためにそれ以外へ行く必要はほとんどありません。CMISはその上にさらにバンクを重ねていて、7Ehがバンクを、7Fhがページを選択し、下位128バイトは固定で常に読み出せます。ページ選択がないと、あなたのツールはモジュールがたまたま留まっていたページを渡し続けることになり、それはまさにあなたが説明した挙動です。

ベンダーコーディングで重要なフィールドはどこでも同じです。ベンダー名、パーツナンバー、リビジョン、シリアル、OUI、そしてチェックサムです。チェックサムを1つ間違えると、hexダンプ上ではすべての文字列が完璧に見えても、うるさいホストはモジュールを弾きます。もう1つ備えておくべきこと。一部のモジュールはベンダー機能をメーカーパスワードとホストパスワードの背後で保護している一方、単純な読み取りは開いたままなので、書き込めない部品でも普通にダンプできてしまいます。

4 KazakhstanrackhubKZ Show original (English) AI translation

最初の試みでまさにチェックサムにやられました。文字列は動作確認済みのモジュールとバイト単位で一致していたのに、ホストはそれでも部品を拒否しました。ページ00hだけで識別ブロックとして十分だとわかったのはありがたいです。作業の範囲を小さく保てます。

率直にまとめると、私のプログラマはこれを全くできません。読み取りの前にバイト7Fhを書き込む手段が一切ないからです。1件の注文のために自作リグにページ選択を後付けするより、ボードを買う方がましです。CMISのバンクをきちんと扱える製品は市場に何かあるのでしょうか、それともそれはデータシート上の機能にすぎないのでしょうか。

2 ChinasfpnodeCN Show original (English) AI translation

市販のボードは確かにそれを謳っています。SFPTotal Plus X、Reveltronics製品(REVELPROG-IS)、EDGEのプログラマ、そしてFlexoptixはいずれもQSFP-DDとOSFPを機能一覧に載せていて、ベンダーコードデータベースもおまけに付いてきます。SFPTotalはCisco、Huawei、HPEを含めて25,000コード以上を謳っています。

それがあなたの作業台にある特定の部品とどこまで一致するかは別の話で、私の言葉も鵜呑みにはしないでください。可能なら、購入を決める前に客先のQSFP-DDのサンプルをボードの前に持ってきてください。データシート上のフォームファクタへの対応と、手元にあるその特定のモジュールへの対応は同じではなく、バンク化された部品でこそその差が表面化します。

3 South Koreawaverunner63KR Show original (English) AI translation

対照的に、素のSFPの作業は相変わらず原始的なままです。256バイトのダンプのうち本当に意味があるのは最初の128バイトだけで、残りはメーカー予約領域です。Catalyst 3560、HP J8692A、EX4200-24Fに受け付けさせるために、人々は何年も前から汎用CWDM部品にGLC-LXやGLC-BX-D/GLC-BX-Uのイメージを書き込んできました。そのための自作プログラマの回路図も出回っていて、私が作ったのはserp-0.3で、Finisar FCMJ-8521-3、HP J4858CやJ4859C、D-Link DEM-310GTのダンプがよくある参照元でした。

毛色は違いますが、GPONスティックが作業台に載る場合に備えて知っておく価値はあります。そちらは外部から一切コーディングしません。Nokia G-010S-Aの親戚にあたるFS GPON-ONU-34-20BIでは、スティック自体にシェルがあります。ファイバを挿した状態で192.168.1.10にONTUSERとして応答するので、uciでシリアルとMACを設定し、内部からsfp_i2cでEEPROMのベンダー文字列を書き換えます。

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