For the sake of compatibility with non-ATAPI aware software that might
mistake an ATAPI device for a harddrive, the device pretends it isn't there
until it's waken up by a special sequence of commands. Once activated, it
uses a command protocol that radically differs from that used by harddisks.
The reason is that the ATA command and register set is not adequate to
support some CD-ROM command structures. Therefore, only a minimum of
traditional ATA commands are supported by ATAPI devices. For most of their
functions, these devices rely on the ATAPI Transport Protocol using packets
of at least 12 bytes sent, as data, through the Data Register. These packet
commands have been derived from the SCSI command set; this makes it
reasonably easy to rewrite existing SCSI CD-ROM and tape drivers for ATAPI
hardware.
Beware that non-ATAPI aware 'intelligent' controllers, mainly caching
controllers, will be mightily confused by packet commands. Traditionally,
the data register is only used to transport 512-byte sectors; a 12-byte
command packet is a completely different kind of animal and should be
treated in a different way by the (intelligent) controller.
Nothing, in principle. A secondary IDE port has been reserved in the PC I/O
map for ages (base address 0170h
, IRQ 15), and adapters that could be
configured as secondary have been available for quite some time, even
though BIOS support was lacking. So while it is a part of EIDE, there is
actually nothing new about this feature, except that the possibility of
connecting tape drives and CD-ROMs to the ATA adapter has transformed four
device support from a luxury into a necessity.
Actually, there is another reason to provide a secondary port for ATAPI
devices. There are a number of advanced hardware features for harddisk
interfaces, such as prefetch buffers and write behind, that may get in the
way of ATAPI compatibility. This means that if the software drivers of an
intelligent ATA-2 port are not ATAPI-aware, or simply don't work as they
should, you may run into sticky problems. Especially if you have an ATAPI
CD-ROM that doesn't support PIO mode 3 transfers, a secondary port that
provides only basic ATA features is a good way to avoid a lot of headaches.
Finally, an ATAPI device on the primary port will cause Windows FastDisk
drivers that aren't ATAPI aware to fail.
Nothing prevents you from defining more ports like the primary and the
secondary one; in addition to these two, the tertiary and
quaternary one are semi-standard. See section
10.4
for the port and IRQ assignments
of all these ports.
Next Chapter, Previous Chapter
Table of contents of this chapter,
General table of contents
Top of the document,
Beginning of this Chapter