| ATA(4) | FreeBSD Kernel Interfaces Manual | ATA(4) | 
名称
ata — 一般的な ATA/SATA コントローラドライバ書式
このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:
device ata
もう一つの方法として、ブート時にモジュールの組としてドライバをロードするためには、次の行を loader.conf(5) に置きます:
ata_load="YES" atacard_load="YES" ataisa_load="YES" atapci_load="YES" ataacard_load="YES" ataacerlabs_load="YES" ataadaptec_load="YES" ataahci_load="YES" ataamd_load="YES" ataati_load="YES" atacenatek_load="YES" atacypress_load="YES" atacyrix_load="YES" atahighpoint_load="YES" ataintel_load="YES" ataite_load="YES" atajmicron_load="YES" atamarvell_load="YES" atamicron_load="YES" atanational_load="YES" atanetcell_load="YES" atanvidia_load="YES" atapromise_load="YES" ataserverworks_load="YES" atasiliconimage_load="YES" atasis_load="YES" atavia_load="YES"
最初の行は、共通のハードウェア独立のコードで、他のモジュールのための必要条件です。次の 3 つの行は、一般的なバス特有のドライバです。残りで、ataahci は、AHCI ドライバです。他のものは、ベンダ特有の PCI ドライバです。
次の調整変数は、 loader(8) で設定可能です:
- hw.ahci.force
 - たとえ、それらが古い IDE エミュレーション (デフォルトは、1 です、強制的にアタッチ) のために設定されても、いくつかの既知の AHCI-capable なチップにドライバを強制的にアタッチする 0 以外の値に設定します。
 - hw.ata.ata_dma_check_80pin
 - 80pin ケーブルチェックを無効にするために 0 に設定します (デフォルトは、ケーブルをチェックする、1 です)。
 - hint.atapci.X.msi
 - 1 に設定することによって、サポートされるなら、Message Signalled Interrupts (MSI) を指定された PCI ATA コントローラによって使用することができます。
 - hint.ata.X.devX.mode
 - 指定されたチャネルで指定されたデバイスのための初期の ATA モードを制限します。
 - hint.ata.X.mode
 - 指定されたチャネルですべてのデバイスのための初期の ATA モードを制限します。
 - hint.ata.X.pm_level
 - 
     追加コマンドの待ち時間の費用によっていくらかの電力を節約することができる、指定されたチャネルのための SATA インタフェース Power Management を制御します。指定できる値は、次の通りです: 
    
- 0
 - インタフェース Power Management は、無効にされます。これは、デフォルト値です。
 - 1
 - デバイスは、PM 状態変更を起動することができます。ホストは、パッシブ (passive) です。
 - 2
 - ホストは、ポートがアイドルになるたびに、PARTIAL PM 状態遷移を起動します。
 - 3
 - ホストは、ポートがアイドルになるたびに、SLUMBER PM 状態遷移を起動します。
 
モード 2 と 3 は、AHCI のためのだけサポートされます。
 - hint.ata. X .dev X .sata_rev
 - 指定されたチャネルで指定されたデバイスのために最初の SATA リビジョンを (速度) を制限します。値 1、2 と 3 は、それぞれ 1.5、3 と 6Gbps です。
 - hint.ata. X .sata_rev
 - 同じですが、指定されたチャネルですべてのデバイスのためです。
 
解説
ata ドライバは、多くの一般的なコントローラの ATA (IDE) と SATA ポートへの CAM(4) サブシステムアクセスを与えます。コントローラにより、各 PATA (IDE) ポートまたは各 1 つか 2 つの SATA ポートは、 1 つか 2 つのターゲットがある別々のバスとして CAM の代理を行います。バス管理の詳細のほとんどは、CAM の ATA/SATA 特有の転送によって扱われます。接続された ATA ディスクは、ATA プロトコルディスク周辺機器ドライバ ada(4) によって扱われます。 ATAPI デバイスは、SCSI プロトコル周辺機器ドライバ cd(4), da(4), sa(4) などによって扱われます。このドライバは、ATA とコントローラ ATAPI デバイスのほとんどをサポートします。コマンドのキューイングと SATA ポートマルチプライアは、サポートされません。デバイスホットプラグ (hot-plug) と SATA インタフェース電源管理は、いくつかのコントローラでのみサポートされます。
ata ドライバは、システムが起動して実行しているき、伝送モードに変更することができます。 camcontrol(8) の negotiate サブコマンドを参照してください。
ata ドライバは、デフォルトとしてハードウェアによってサポートされた最大の伝送モードを設定します。しかしながら、 ata ドライバは、時々次の警告をします: “ DMA limited to UDMA33, non-ATA66 cable or device” (UDMA33 に制限された DMA、非 ATA66 ケーブルまたはデバイス)。これは、 ata ドライバが、必要な 80 コンダクタケーブルがない、または適切に検出できなかった、またはチャネルのデバイスの 1 つが UDMA2/ATA33 次第で受け付けるだけであることを検出したことを意味します。このチェックを無効にするために hw.ata.ata_dma_check_80pin 調整変数を 0 に設定することができます。
ハードウェア
現在サポートされている ATA/SATA コントローラチップは、次の通りです:
- Acard:
 - ATP850P, ATP860A, ATP860R, ATP865A, ATP865R.
 - ALI:
 - M5228, M5229, M5281, M5283, M5287, M5288, M5289.
 - AMD:
 - AMD756, AMD766, AMD768, AMD8111, CS5536.
 - ATI:
 - IXP200, IXP300, IXP400, IXP600, IXP700, IXP800.
 - CMD:
 - CMD646, CMD646U2, CMD648, CMD649.
 - Cypress:
 - Cypress 82C693.
 - Cyrix:
 - Cyrix 5530.
 - HighPoint:
 - HPT302, HPT366, HPT368, HPT370, HPT371, HPT372, HPT372N, HPT374.
 - Intel:
 - 6300ESB, 31244, PIIX, PIIX3, PIIX4, ESB2, ICH, ICH0, ICH2, ICH3, ICH4, ICH5, ICH6, ICH7, ICH8, ICH9, ICH10, SCH, PCH.
 - ITE:
 - IT8211F, IT8212F, IT8213F.
 - JMicron:
 - JMB360, JMB361, JMB363, JMB365, JMB366, JMB368.
 - Marvell
 - 88SX5040, 88SX5041, 88SX5080, 88SX5081, 88SX6041, 88SX6042, 88SX6081, 88SE6101, 88SE6102, 88SE6111, 88SE6121, 88SE6141, 88SE6145, 88SX7042.
 - National:
 - SC1100.
 - NetCell:
 - NC3000, NC5000.
 - nVidia:
 - nForce, nForce2, nForce2 MCP, nForce3, nForce3 MCP, nForce3 Pro, nForce4, MCP51, MCP55, MCP61, MCP65, MCP67, MCP73, MCP77, MCP79, MCP89.
 - Promise:
 - PDC20246, PDC20262, PDC20263, PDC20265, PDC20267, PDC20268, PDC20269, PDC20270, PDC20271, PDC20275, PDC20276, PDC20277, PDC20318, PDC20319, PDC20371, PDC20375, PDC20376, PDC20377, PDC20378, PDC20379, PDC20571, PDC20575, PDC20579, PDC20580, PDC20617, PDC20618, PDC20619, PDC20620, PDC20621, PDC20622, PDC40518, PDC40519, PDC40718, PDC40719.
 - ServerWorks:
 - HT1000, ROSB4, CSB5, CSB6, K2, Frodo4, Frodo8.
 - Silicon Image:
 - SiI0680, SiI3112, SiI3114, SiI3124, SiI3132, SiI3512.
 - SiS:
 - SIS180, SIS181, SIS182, SIS5513, SIS530, SIS540, SIS550, SIS620, SIS630, SIS630S, SIS633, SIS635, SIS730, SIS733, SIS735, SIS745, SIS961, SIS962, SIS963, SIS964, SIS965.
 - VIA:
 - VT6410, VT6420, VT6421, VT82C586, VT82C586B, VT82C596, VT82C596B, VT82C686, VT82C686A, VT82C686B, VT8231, VT8233, VT8233A, VT8233C, VT8235, VT8237, VT8237A, VT8237S, VT8251, CX700, VX800, VX855, VX900.
 
また、上記のチップのいくつかは、より機能がある ahci(4), mvs(4) と siis(4) ドライバによってサポートされます。両方のドライバが同時にロードされるなら、それらには、優先順位があります。
未知の ATA チップセットは、PIO モードでサポートされ、そして標準のバスマスタ DMA レジスタが存在していて、有効なセットアップを含んでいるなら、 DMA も、有効にされますが、チップセットが何ができるか、そして、どのようにそれをプログラムするかが知られていないとき、最大モードは、UDMA33 に制限されます。
注
UDMA4/ATA66 と上記のモードを使用するためには、 80 のコンダクタケーブルを使用しなければ ならない ことを覚えておいてください。リボンケーブルが 45cm より長くなければ、安心です。丸い ATA ケーブルの場合に、長さは、ケーブルの品質に依存します。 SATA ケーブルは、仕様通りに長さ最大 1m にすることができます。外部 SATA ケーブルは、長さ 2m にすることができますが、すべてのコントローラが、特に高速で、長いケーブルで正常に動作するわけではありません。作者
<mav@FreeBSD.org>, <sos@FreeBSD.org>| October 3, 2012 | FreeBSD |