This message is from the T13 list server.

[EMAIL PROTECTED] said:
> This message is from the T13 list server.
> Last time I checked, the ATA standard did not mention supporting
> "a host that only performs 16-bit register accesses".

True, but that is because we are conditioned to live in a world where the
X86 processor or motherboard chipset will convert a 16-bit I/O read/write
request (an x86 INW/OUTW instruction) into two 8-bit I/O cycles when
accessing an 8-bit I/O port (remember the IOCS16- signal?).

=== begin History of NOP

The NOP command was added at the request of PCMCIA PC Card ATA and CF
developers at a time when there where host devices (not x86 PCs) that had
only a 16-bit data bus. That required the host to access the ATA registers
in pairs, including the pair DriveHead&Command. At that time (and to this
day) ATA has no true no-operation command. But since command code 00h was
an invalid command and command code 00H is traditionally a NOP command, it
was assigned as the ATA NOP command with the unusual provision that it
would always fail with ERR=1 ABRT=1.

PCMCIA PC Card ATA and CF still expect and require this implementation of
NOP (command code 00H).

Then later on to support the ADMA host controller (see document 1510 Host
Controller Standard) the NOP command was enhanced with various sub-command
codes in the Features reqister, but that enhancement basically applied
only to a host controller that would intercept the command, and based on
sub-command code, pass the command on to the drive or not let the drive
see the command. This was done so that the host controller could respond
to the command (when the sub-command code was not 0) with various status
information concerning the state of the host controller's command queue. A
drive that saw command code 00H (NOP) would always give ERR=1 ABRT=1
status. Note that NOP with some specific non-zero sub-command values is
part of the Overlap/Queued feature set (ATA and ATAPI).

See the following text from ATA/ATAPI-6 clause 6.9: "The NOP Poll command
[when the sub-command is not 0] is a host adapter function and is ignored
by the device. The host software can test for the support of this feature
by issuing the NOP Auto Poll subcommand and examining the Status register.
If the host adapter does not support this feature, the response received
by the host will be from the device with the ERR bit set to one. If the
host adapter does support the command, the response will be from the host
adapter with the ERR bit cleared to zero. The only action taken by a
device supporting the Overlapped feature set will be to return the error
indication in the Status register and to not abort any outstanding
commands." Also see the NOP command description.

=== end History of NOP

> There IS mention of support for CFA where  the DATA register is only
> 8-bits....

That is a different issue and unrelated and/or not related to the NOP
command.

--
Hale Landis -- [EMAIL PROTECTED]

Reply via email to