: 1.请先找出 ATA device 的 address.
: 在 IDE controller 的 PCI configuration Space 某个 Offset 有储存 address.
: 传统的 IDE mode 是以 I/O port 的方式来存取 ATA Device.
: AHCI mode 和 RAID mode 是以 memory address 来存取.
: 但是, 有向前相容之前的 ATAPI command.
: 2.假设某个 Primary IDE Controller 的 I/O address 是 1F0h.
: 则对照你手边的 Command 表, 每个 Register 的 address 如下.
: 都是以 Byte 为单位存取.
: 1F0 (Read and Write): Data Register
: 1F1 (Read): Error Register
: 1F1 (Write): Features Register
: 1F2 (Read and Write): Sector Count Register
: 1F3 (Read and Write): LBA Low Register
: 1F4 (Read and Write): LBA Mid Register
: 1F5 (Read and Write): LBA High Register
: 1F6 (Read and Write): Drive/Head Register
: 1F7 (Read): Status Register
: 1F7 (Write): Command Register
: 3F6 (Read): Alternate Status Register
: 3F6 (Write): Device Control Register
: Status register (1F7h) 所读出来的 1-Byte value, 每个 Bit 所代表的意义由
: 左至右分别:
: BIT7: BSY (busy)
: BIT6: DRDY (device ready)
: BIT5: DF (Device Fault)
: BIT4: DSC (seek complete)
: BIT3: DRQ (Data Transfer Requested)
: BIT2: CORR (data corrected)
: BIT1: IDX (index mark)
: BIT0: ERR (error)
: Error register 和其他 register 依此类推.
请问这个表是对所有IDE device(hard disk、CD/DVD-ROM、CD/DVD-RW)都通用吗?
还是只对hard disk有效?
如果是後者的话,那要怎样才能下command给烧录机读写资料?
thanks!!
--
※ 编辑: SILee 来自: 140.116.164.216 (11/13 16:40)
1F:推 zha0:Hard Disk PIO 是 ATA , CDROM 是 ATAPI 11/13 18:17