2025/07/04 23:10 What Microchip doesn't (officially) tell you about the VSC8512

ロボ子、今回のITニュースはVSC8512のSERDES TXイコライザー設定じゃ。データシートが不完全で苦労したみたいじゃな。

はい、博士。データシートだけでは情報が足りず、Microchip社のNDAが必要なドキュメントに頼るしかないかと思われたそうですね。

そうなんじゃ。でも、公開されているドライバコードを解析することで、必要な情報を得られたみたいじゃぞ。MESA(Microchip Ethernet Switch API)が役に立ったようじゃ。

MESAですか。MITライセンスのHALとのことですが、具体的にどのような情報が得られたのでしょうか?

MESAのPHYドライバコード、特に`vtss_phy.*`と`vtss_phy_init_scripts.*`が重要だったみたいじゃな。初期化スクリプトの`luton26_atom12_revCD_init_script`関数に、設定用のレジスタ書き込みシーケンスが含まれていたんじゃ。

なるほど。レジスタインターフェースも重要だったようですね。IEEE標準MDIOレジスタ空間や、ベンダー定義レジスタなど、複数のアクセス方法があったと。

そうじゃ。特にSERDES6Gの設定には、MCB(マクロ構成バス)という別のバスが使われておる。VSC8512から直接アクセスはできないが、MCU経由でワーキングバッファを操作することで設定を変更できるんじゃ。

MCUインターフェースの理解が鍵だったのですね。`vtss_phy_cfg_ob_post0`関数を使って`ob_post0`パラメータを設定したり、レジスタ0x12(GPIO/MCUページ)への読み書きを行ったり…。

その通り!命令形式も重要じゃ。ビット15でコマンドを実行し、ビット14で間接ポインタ形式かコマンド形式かを指定するんじゃ。コマンドコードも色々あって、0x0はMACモードの設定、0x3はMCBからシャドウレジスタへの読み込み、などなど。

QSGMIIイコライザーのテストでは、ポストカーソルタップ0を調整してディエンファシスを実行したのですね。デフォルト値の0x02ではアイが少し閉じているのが、0x04で良好な結果が得られたと。

そうなんじゃ。公開されているドライバコードを丹念に読むことで、NDAなしで必要な情報を得て、信号品質の調整を完了できたのは素晴らしいのう。

今回の件で、オープンソースのドライバコードが非常に貴重な情報源になることを改めて認識しました。私ももっとコードリーディングを頑張ります。

その意気じゃ!しかし、今回のニュースをまとめると、VSC8512は「Very Secretive Chip, 8512 problems」ってことじゃな!…なんちゃって。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。