たとえば、複数のM.2 NVMe PCIeキャリアカードを使用したいとします。ASUS Hyper M.2 x16カードv2中HP Z240タワーワークステーション。 C236 PCHおよびSkylake E3-1200V5 CPUをサポートPCIe分岐x16 PCIeスロットはCPUで駆動されます。 (引用する:Intel 100シリーズ/C230シリーズチップセットデータシートボリューム1、血。二十二。Intel Xeon E3-1200V5データシートボリューム1、血。 24.) CPU PCIe を分割 1x8 + 2x4 モードに設定すると、x16 スロットで 3 つの M.2 NVMe ドライブを使用できます。 (E3 CPUは4x4分岐を実行できないため、上記のAsusなどのクワッドキャリアカードのM.2スロットの1つは空でなければなりません。)
残念ながら、Z240のBIOS設定にはPCIeパーティションを構成するオプションは含まれていません。もっと悪いようですHPの始めてもいいです。デュアルBIOSBIOSの修正を防ぐどのPCIe分岐が可能です。。
これIntelビデオからPCIeブランチを紹介します。指摘する(02:34)
CPU PCI Expressバスの構成は、初期化前にBIOSによって静的に決定されます。 BIOSはCPUの存在検出ピン(CFG [5]およびCFG [6]と呼ばれます)をチェックして設定を決定します。
おそらく、これはBIOS設定に分岐設定オプションが含まれていない場合でも機能します。しかし、このアプローチを使用するには、物理CPUボードへの接続にアクセスして変更する必要がありますが、私はこれを避けたいと思います。
構成分岐オプションを含む他のBIOSは、CFG [5]とCFG [6]よりもはるかに優先されます。私は彼らがこれを行う方法についての文書を見つけることができず、あなたが知っているどんなリンクでも教えてくれてありがとう。
この時点で私は疑問に思います:マシンがLinuxで起動した後にCFG [5]とCFG [6]を上書きする方法はありますか? (この場合、M.2ドライブのいずれかから起動できない可能性があることを認識していますが、これはこのシステムの要件ではありません。)これらのプロセスには次の手順が含まれることを願っています。ワームリセットx16、x8、およびx4 PCIeコントローラおよび/または機能レベルのリセットPEGルートポート10、11、および12。(引用:Intel Xeon E3-1200V5データシートボリューム2.) たぶん後に続くプログラムの実行?
提供できるヒント、コツ、ガイドラインに感謝します!
答え1
これが可能かどうかはわかりませんが、さらなる研究のためのいくつかの方法を提案できます。
接続した動画は以前の世代のIntelプロセッサ用であるように見えるため(動画の日付は2010年でSkylakeは2015年にリリース)、Skylakeプロセッサの構成が異なる可能性が高いです。つまり、設定がBIOSによって行われ、BIOSがCFGパッドの値を読み取ってから、それを実行するようにPCIeコントローラ構成レジスタを設定することを意味します(選択した場合は、CFGパッドの値を完全に無視できます)。
一般に、このタイプの設定レジスタの詳細は、Intel BIOS 作成者ガイド/UEFI ファームウェア作成者ガイドにのみ文書化されており、Intel はほとんどの CPU に対してこれらの設定レジスタを公開していません。一部のCPU構成レジスタにはBIOSの「ロック」オプションも含まれているため、CPUがリセットされるまでその内容を変更(または読み取ることもできません)します。その場合、HPファームウェアはこれを防ぐためにこれを行うことができます。必要なものを確認してください。レジスタはCPUの「システム管理モード」でのみアクセスできます。
これを行う場合は、SkyLakeファームウェア(たとえば、他の製造元の)コードを見つけて、必要な設定を実行しようとします。ファームウェアを分解し、ブランチをアクティブにするようにCPUを設定する方法を確認してから、同じレジスタに書き込みを試すことができます(Linuxカーネルモードで、または可能であればGRUBを使用して)。
Corebootなどのオープンソースファームウェアの実装で役に立つコードを見つけることもできます。
HTH、幸運!