AMI UEFIファームウェアの機能

以前の出版物 [1]の1つで、「USB 3.0でUSBフラッシュドライブが動作することを確認する方法」という一見明らかな質問を提起しました。それから、まるで彼ら自身のエゴを怖がらせるかのように、私たちの意識からこの考えを消しました。

しかし、この考えはすでに実験者の脆弱な心を傷つけました。 オペレーティングシステムが起動する前の起動段階(UEFIシェルなど)で、接続されたデバイスのUSB 3.0の可用性を確認したいという要望がありました。 最初に、小さなユーティリティCheckUSBが作成されました(ただし、これは、これまでのところ、Intelチップセットの第8バージョンの一部の実装でのみ動作するように設計されています)。

画像
図1ASUS T300LAラップトップでCheckUSBユーティリティを使用した実験

モバイルプラットフォームに近づくと、場合によっては、再起動時にラップトップのUEFIファームウェアがUSBサブシステムを完全に初期化せず、オペレーティングシステムの一部が動作しないことが判明しました。

xHCI Pre-Boot Mode   UEFI firmware
図2ASUS T300LAラップトップのUEFIファームウェア設定のXHCI Pre-Boot Modeオプション

たとえば、xHCI Pre-Boot Modeオプションの初期状態がCMOSセットアップで無効に設定されている場合、Smart Autoに置き換え、オペレーティングシステムをロードせずにCheckUSBユーティリティを実行すると、xHCIコントローラーに接続されているデバイスのリストが空であることがわかります。 これは、EHCIコントローラーが接続されたUSBデバイスのサービスに使用されることを意味します。
USB Routing to EHCI
図3Windowsが起動する前にUSBデバイスをASUS N750JKラップトップの拡張ホストコントローラーインターフェイスに接続する

そのため、Windowsを起動せずにUEFIへのブートをオンに切り替えた直後に、次の結果が得られます。

同時に、マスク値は、オペレーティングシステムがxHCIサービスへの接続を切り替える権利を持っていることを示します。

xHCIレジスタのみを表示し、RMHを使用してデバイスがEHCIサービスに切り替えられるため、デバイスのリストは空です。 ビットフィールドの説明は、記事「診断ユーティリティCheckUSB」[2]、[3]に記載されています。

オペレーティングシステムの再起動後に再起動すると、すべてのデバイスがxHCIコントローラーに正しく接続されます。
USB Routing to xHCI
図4Windows後の起動時にUSBデバイスをASUS N750JKラップトップのeXtensible Host Controller Interfaceに接続する

ポートアクセス制御ロジックは、再起動前に発生した状態を「記憶」します。

検討中のASUS N750JKプラットフォームの外部USB3ポートの数は4であることを思い出してください。

参照資料


  1. USBフラッシュドライブがUSB 3.0で機能することを確認する方法は?
  2. 診断ユーティリティCheckUSB
  3. USB3モードを確認する方法は?

Source: https://habr.com/ru/post/J253097/


All Articles