問題タブ [sata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - DOS ブートは、USB で長いファイル名を認識し、モジュラー ベイで 8.3 FN を認識する
OS (C:) とソフトウェア開発プロジェクト (D:) に別の Windows ドライブ パーティションを使用しているため、OS の復元とは別にプロジェクトとデータを簡単にバックアップできます。
DOS レベルで起動するようにセットアップされた外付け FAT32 SATA ディスクがあるので、Ghost を使用して OS イメージをバックアップし、後で復元できます。
Ghost イメージは「分割」モードで作成されたため、次のように長いファイル名を持つ複数のイメージがあります。
- DellWork-01.001
- DellWork-01.002
- DellWork-01.003
- DellWork-01.GHO
USB アダプタで外付けドライブを使用すると、DOS/Ghost は長いファイル名を問題なく作成して読み取ります。
ただし、同じ外付け FAT32 SATA ドライブを CD スロットに接続された「モジュラー ベイ」キャディで使用すると、DOS/Ghost は次のような短いファイル名を認識します...
- DELLWO~1.001
- DELLWO~1.002
- DELLWO~2.003 (短縮名は異なる番号を持つ場合があります)
- DELLWO~1.GHO
...すべての Ghost スナップショットが使用できなくなります。もちろん、DOS 8.3 のファイル命名規則を使用してすべての名前を変更します。例:
- DELLWO01.001
- DELLWO01.002
- DELLWO01.003
- DELLWO01.GHO
質問は次のとおりです。
- モジュラー ベイで FAT32 SATA ドライブを使用すると DOS が 8.3 ファイル名を認識するのに、USB アダプタで同じ FAT32 SATA ドライブを使用すると DOS が長いファイル名を認識するのはなぜですか?
その他の情報... DOS レベル:
Ghost は、長いファイル名を持つ内部ターゲット NTFS ドライブを認識します。
外部ソースの FAT32 ドライブを内部 HD スロットに挿入すると、DOS も短いファイル名を認識します。
皆さんありがとう!
-ジョー
コンピューターの仕様:
Dell Latitude E6500
BIOS: A24
- CPU : インテル コア 2 デュオ 2.66 GHz
- OS:XPプロ2002、SP3
RAM:3.48GB
ゴーストバージョン: 11
ターゲット復元ドライブのフォーマット: NTFS
- 外付けSATAドライブフォーマット:FAT32
追加情報:
ありがとう、これを投稿した後、私は同じことを考えていました。DOS が実際に呼び出されるかどうかはわかりません。また、DOS が長いファイル名をサポートする理由もわかりません。
Grub は、Ghost を直接呼び出しているように見えるブート メニューをロードします (? よくわかりません)、または私が認識していない DOS のバージョンを介して。
とにかく、その後、別の E6500 で、Ghost が "1.1" ドライブ (ドライブ文字なし) を認識し、長いファイル名が表示されることを発見しました。また、Ghost は短いファイル名を示す C: を認識します (どちらの参照も同じドライブ パーティションを参照しています)。この 1.1 ドライブは元のコンピューターでは表示されず、短い名前の C: のみが表示されます。
そこで、2 台のコンピューターの BIOS を比較したところ、元のコンピューターの SATA 操作を「AHCI」モードに設定すると、Ghost は 1.1 (長い) と C: (短い) の両方を認識することがわかりました。
また、TSR をロードして LFN サポートを有効にする「DOSLFN.com」というブート ディスクのプログラムも見つけました。
linux - AHCI 仕様
AHCI 仕様について質問があります。
pDmaXferCnt
転送が DMA 書き込みまたは読み取りの場合、ポート内の変数は使用されますか?
仕様の説明ではそうではないことが示されているようですが、代わりに PRD が使用されています。しかし、HBA は、SATA デバイスとの間で送受信されるデータの量をどのように知るのでしょうか? この情報は H2D FIS のセクター カウントで利用できますが、見落としていない限り、この値を保持する変数のレジスタはないようです。DX:transmit
状態はまた、設定値を持つことを示しているようですがpDmaXferCnt
、DMA 読み取り/書き込み操作用に設定される場所はわかりません。
ありがとう
linux - Linux AHCI PRD の割り当て
私は組み込みシステム用の AHCI インターフェイスを作成しているハードウェア開発者です。PRD DMA データが作成され、PRD に割り当てられる場所を知りたいです。SATA は DWORDS を使用するため、データは 4 バイトの倍数に整列されると想定しています。私は Linux の経験があまりないので、誰かが私を正しい方向に向けることができれば幸いです。
ありがとう
hardware - Samsung Exynos の SATA
下の写真を見てください。
Samsung が SATA 3 を Exynos 5 Dual に統合していることがわかります。Exynos 5を使用するスマートフォンは、SATAインターフェースを使用してハードドライブまたは光学ドライブに接続できるということですか? 私は何か誤解していますか?
また、図中の DMA ("32x DMA") は "Direct Memory Accessing" を指していますか?
driver - efiシェルでAHCI経由でSATAドライブに直接アクセスしますか?
EFI シェルで AHCI 経由で SATA ドライブにアクセス (読み取り/書き込み) したい場合、この目的で使用される読み取り/書き込みインターフェイスはありますか?
つまり、EFI シェル アプリケーションはドライブにアクセスするために AHCI 仕様を実装する必要がありますか? (コマンドをビルドし、コマンドを発行し、コマンドの完了を処理します...)
または、アプリケーションが特定の「読み取り/書き込み」インターフェイス (Windows の SCSI_PATH_THROUGH など) を呼び出すだけで、「EFI ahci ドライバー」がこれらを低レベルのアクセス ルーチンに変換しますか?
c - ハードディスクで使用されているプロトコルを特定するにはどうすればよいですか?
ハードディスクから情報を読み取る必要があるアプリケーション、シリアルモデルなどがあります。
もちろん、ドライブが SAS、SATA、または FC ドライブのいずれであるかは重要です。
接続されたドライブが使用しているプロトコルを特定できる信頼できる方法はありますか? OSコマンドを介して、またはいくつかのログを確認するか、デバイスに問い合わせますか?
sysfs 構造を使用したくありません。OSがATA、SCSI、またはその他のタイプのディスクであるかどうかをOSがどのように認識しているかを知りたいです。
fpga - シリアル ATA (Gen1/2/3) 用の 7 シリーズ GTXE2 トランシーバーの構成
こんにちは、これは専門家の質問になります:) 次のトピックに精通している必要があります
- ザイリンクス マルチギガビット トランシーバー (MGT)、特に 7 シリーズ GTX/GTH トランシーバー (GTXE2_CHANNEL)
- Serial-ATA Gen1、Gen2、および Gen3、特に帯域外 (OOB) 通信
質問:
Serial-ATA 用に GTXE2 を構成するにはどうすればよいですか?
RX_ElectricalIdle も ComInit も OOB シグナリングが機能していません。
序章:
複数のベンダー/デバイス プラットフォーム (Xilinx Virtex-5、Altera Stratix II、Altera Stratix IV) をサポートする最後の学士プロジェクト用に SATA コントローラーを実装しました。今度は、このコントローラーを次のデバイス ファミリに移植します。KC705 ボード上の Kintex-7 という名前のザイリンクス 7 シリーズ デバイスです。
SATA コントローラには、SAPIS および PIPE 3.0 に基づく物理層に追加の抽象化層があります。したがって、SATA コントローラーを新しいデバイス ファミリに移植するには、GTXE2 MGT 用の新しいトランシーバー ラッパーを作成するだけです。
ザイリンクスの CoreGenerator は CoreGen ウィザードで SATA プロトコルをサポートしていないため、トランシーバー プロジェクトをゼロから開始し、必要なすべての設定をウィザードで求められる範囲で適用しました。その後、GTXE2_COMMON のインスタンス化をラッパー モジュールにコピーし、ジェネリックとポートを意味のある完全なスキーマに並べました。
3 番目のステップとして、接続されていないすべてのポート (ウィザードはすべての値を割り当てるわけではありません!!) をデフォルト値 (UG476 のデフォルト、または定義されていない場合はゼロ) に接続しました。
手順 4 で、すべてのジェネリックとポートを UG476 に対して再度チェックし、それらが SATA 設定と互換性があるかどうかを確認しました。その後、ラッパー ポートを MGT に接続し、必要に応じてクロス クロック モジュールを挿入しました。
KC705 ボードには 150 MHz 基準クロックがないため、各ボードの「起動」後にこのクロックを「ProgUser_Clock」として供給するように Si570 をプログラムします。この再構成中、MGT はパワーダウン モード (P2) になります。Si570 が安定している場合、MGT に電源が投入され、使用されているチャネル PLL (CPLL) が約 1 秒後にロックされます。6180 クロック サイクル。この CPLL_Locked イベントは GTX_TX|RX_Reset ワイヤを解放し、さらに 270|1760 サイクル後に GTX_TX|RX_ResetDone イベントを発生させます (すべてのサイクル @ 150 MHz -> 6.6 ns)。
この動作は、中断のない安定した補助クロック (200 MHz、わずかにオーバーサンプリング) でキャプチャされた chipscope で確認できます。
そのため、GXTE2 はパワーアップして動作し、すべてのクロックが安定しています。
OOB シグナリングを制御する GTXE2 ポート:
MGT には、OOB シグナリング用のポートがいくつかあります。TX では次のとおりです。
- TX_ElectricalIdle - TX を強制的に電気的アイドル状態にする
- TX_ComInit - ComInit シーケンスを送信する
- TX_ComWake - ComWake シーケンスを送信する
- TX_ComFinish - シーケンスが送信されました -> 次のコマンドの準備ができました
受信時:
- RX_ElectricalIdle - RX_n/TX_p が電気的アイドル状態にある (低レベル インターフェイス)
- RX_ComInit_Detected - 完全な ComInit シーケンスが送信されました
- RX_ComWake_Detected - 完全な ComWake シーケンスが送信されました
詳細なエラーの説明:
- TX_ComInit が 1 サイクルの間 High の場合、TX は OOB シーケンスを送信しません。
- RX_ElectricalIdle は常にハイ
テスト:
- SATA ループバック ケーブル: SATA ケーブルを切断し、適切なワイヤをはんだ付けします ;) -- KC705 を SATA コネクタで拡張する特別な SFP から SATA へのアダプタを使用しています - http://shop.trioflex.ee/product.php ?id_product=73
- SMA ループバック ケーブル: MGT を移動し、LVDS ワイヤを SMA ジャックに接続し、クロスオーバーとして 2 本の SMA ケーブルを取り付けました。
- 古い ML505 (Virtex-5) をオンボード SATA コネクタでプログラムして、ComInit シーケンスを送信しました。2 つのボードは、専用の SATA クロスケーブルで接続されています。
- HDD を部分的に剥がした SATA ケーブルで KC705 (SFP2SATA アダプター) に接続し、2.5 GSps スコープを接続しました (はい、信号はアンダーサンプリングされていますが、バーストとアイドル期間を見るのは良いことです...)。
経験:
- テスト 3 は、Virtex-5 から Kintex-7 に送信された OOB シーケンスを示していますが、ChipScope トリガー イベントは発生しません - Rx_ElectricalIdle はまだ High です。
- テスト 4 は、ケーブル上で OOB シーケンスが送信されていないことを示しています。
パーツまたは完全なトランシーバーのインスタンス化を投稿する必要がありますか?
インスタンスのみが ca を持っています。650行:(
詳細情報、画像、コードなどが必要な場合はお問い合わせください... :)
付録:
電気的アイドルとは、MGT が両方の LVDS ワイヤ (TX_n/TX_p) を 0..2000 mV の範囲のコモン モード電圧 (V_cm) で駆動することを意味します。この条件が満たされている場合、同相デルタ電圧は 100 mV 未満であり、ElectricalIdle 条件と呼ばれます。
OOB シグナリングとは、MGT が電気的アイドルおよび通常のデータ シンボル (8b/10b 表記の D10.2) のバーストを LVDS ワイヤで送信することを意味します。SATA/SAS は、異なるバースト/アイドル期間を持つ 3 つの OOB シーケンス呼び出し ComInit、ComWake、ComSAS を定義します。ホスト コントローラとデバイスは、これらの「モールス信号」を使用してリンクを確立します。
assembly - BIOSドライブ番号を知る方法. 3 番目のマスター SATA ハードディスクの場合は?
今まで私は IDE ハードディスクを使用していましたが、BIOS 呼び出しを使用してアクセスでき、OS 呼び出しを必要とせずに PIO モードを使用して LBA 28 直接ハードウェア アクセスを行うことさえできました。新しい SATA 500 GB ハードディスクを購入しましたが、これが SATA 1 ポートに接続された唯一のハードディスクです。私の BIOS はそれを 3rd Master Hard disk として表示しており、プライマリおよびセカンダリ マスターが存在しません。これで、最初のパーティションに MS DOS 5.0 をインストールしましたが、問題なく動作しています。しかし、今は DOS INT 25h のみを使用して、論理セクター 0 から始まるハードディスク セクターを読み取ることができます。これは、マスター ブート レコードを含む隠しセクターを読み取ることができないことを意味します。BIOS int 13H 呼び出しを使用して、ドライブ 80H を使用してハードディスクを読み取ると、エラーは返されませんが、何も読み取られません。ドライブ 83H を使用すると、ドライブが存在しないというエラーが発生します。DOS 機能を使用すると、ドライブ c (ドライブ 2) として HDD にアクセスできますが、MBR の読み取りには使用できません。int 13H に MS 拡張を使用する場合は、BIOS ドライブ番号を知っておく必要があります。ドライブ番号の調べ方を教えてください。サードマスターハードディスクの?または、互換モードで LBA 40 (01f0 は機能しません) を使用して HDD にアクセスするには、どのポートを使用する必要がありますか?
windows - SATA コントローラにはいくつの物理チャネルがありますか?
1 つの SATA コントローラを備えたシステムを想像してください。コントローラが IDE モードで動作している場合、デバイス マネージャに次のように表示されます。
Windows XP:
Windows >= Vista:
また、コントローラーが AHCI モードで動作する場合、XP と >= Vista の両方で「SATA AHCI コントローラー」のように表示されます。
AHCI モードの SATA コントローラーは、最大 32 個のデバイスをサポートします (32 ビット マスクはデバイス接続を示します)。各デバイスが個別のチャネルを必要とすることを考えると、これは単なるソフトウェアの制限だと思います。SATA コントローラが 32 チャネルすべてに「配線」されているようなシステムが存在する可能性は低いです。しかし、32 は、コントローラーが 2 つ以上のデバイスを処理できるため、2 つ以上のチャネルを持つことを意味する数字だと思います。そこで、実際に SATA コントローラーによくあるチャンネル数をお聞きしたいと思います。ATA コントローラには 2 つのチャネルがありますが、IDE モードでのソフトウェア互換性のために SATA コントローラに同じ数のチャネルがあるということですか? それとも、2 つ以上のチャンネルを持っているのに、IDE モードでは最初の 2 つのチャンネルしか利用できないのでしょうか? (少なくともXPでは「プライマリ」チャネルと「セカンダリ」チャネルのため
c++ - 外付けHDDと内蔵HDDの違いは?
デバイスが USB (リムーバブル ハード ドライブ) 経由で接続されているか、SATA (内蔵ハード ドライブ) 経由で接続されているかを知りたいです。それが私がデバイスのリストを取得する方法です
このような操作の後、接続されたボリュームごとに次のような結果が得られます。
検討中のデバイスが接続されているインターフェイス (USB、SATA) を検出するにはどうすればよいですか? または、WinAPI を使用して外部 HDD と内部 HDD を区別する他の方法はありますか?