Служебные команды
6.3.2. Служебные команды
В системе команд имеются средства идентификации и управления свойствами устройств. Команда идентификации Identify Device позволяет считать из контроллера блок из 256 слов, характеризующих устройство АТА. Устройства с па- кетным интерфейсом эту команду должны отвергать, для них имеется команда Identify Packet Device (см. 6.7). Блок пара- метров может храниться как в энергонезависимой памяти устройства, так и на самом носителе в месте, недоступном для обычных обращений. Состав полей блока для непакет- ных устройств приведен в табл. 6.5. Графа "F/V" определяет свойства соответствующих полей: F - содержимое фиксиро- вано, V - содержимое меняется в зависимости от состояния устройства или выполненных команд, Х - специфично для данного устройства (может быть и F, и V), R - зарезервиро- ванные поля. Для устройств со сменными носителями зна- чения полей F могут меняться при смене носителя.
| Слово | F/V | Назначение | |||
| о | F | Оби конфигурационная информация Бит 15: 0 для всех устройств АТА Бит 7: 1 - устройство со сменным носителем Бит 6: 1 - устройство (контроллер) с несменным носителем Бит 0 - зарезервирован Значение остальных бит специфично для устройств | |||
| 1 | F | Число логических цилиндров |
| Оюво | F/V | Назначение | |||
| 2 | R | Зарезервировано | |||
| 3 | F | Число логических головок | |||
| 4 | X | Специфично | |||
| 5 | X | Специфично | |||
| 6 | F | Число логических секторов на логическом треке | |||
| 7-9 | X | Специфично | |||
| 10-19 | F | Серийный номер (20 символов ASCII), если слово 10 ненулевое, иначе - специфичная информация | |||
| 20 | X | Специфично | |||
| 21 | X | Специфично | |||
| 22 | F | Число дополнительных байт в командах "длинного" чтения и записи (в АТА-4 объявлено устаревшим) | |||
| 23-26 | F | Версия встроенного ПО (8 символов ASCII), если слово 23 ненулевое, иначе - специфичная информация | |||
| 27-46 | F | Номер модели (40 символов ASCII), если слово 27 ненулевое, иначе - специфичная информация | |||
| 47 | X | Биты 15-8 специфичны (в АТА-4 - 80h) | |||
| F | Биты 7-0 - возможности множественных операций: 0 - зарезервирован, Olh-FFh - максимальное количество секторов, передаваемых за сеанс | ||||
| 48 | R | Зарезервировано | |||
| 49 | R F
R F F F | Возможности.
Биты 15-14 - зарезервированы для Identify Packet Device Бит 13 - значения таймера режима Standby: 1 - соответствуют стандарту, 0 - задаются особо Бит 12 зарезервирован для Identify Packet Device Бит 11: 1 - IORDY поддерживается (для PIO Mode 3 и выше - обязательно), 0 - IORDY может поддерживаться Бит 10: 1 - сигнал IORDY может быть запрещен командой Set Features Бит 9 =1 (в АТА-4 используется для Identify Packet Device, в АТА-2 - как указание на поддержку LBA и действительности слов 60-61) |
| Слово | F/V | Назначение |
| F X | Бит 8=1 (в АТА- 4 используется для Identify Packet Device, в АТА-2 - как указание на поддержку DMA) Биты 7-0 специфичны | |
| 50 | F | Возможности (АТА-4): Бит 15°0 Бит 14-1 Биты 13-1 - зарезервирован Бит О"! указывает на специфичное значение минимума для Standby Timer |
| 51 | F X | Биты 15-8: длительность цикла обмена в режиме PIO. Если значение параметра не соответствует режимам 0, 1 или 2, используется PIO Mode 0 Биты 7-0 специфичны |
| 52 | F X | Специфично. В АТА-2 биты 15-8: временной режим цикла одиночного обмена DMA (Single Word DMA). Если значение параметра не соответствует режимам 0, 1 или 2, используется Mode 0. Если поддерживаются слова 62 или 63, значение поля игнорируется Биты 7-0 специфичны |
| 53 | R F F V | Биты 15-3 зарезервированы Бит 2: 1 - поля в слове 88 действительны, О-нет Бит 1: 1 - поля в словах 64-70 действительны, О-нет. Любое устройство, поддерживающее PIO Mode 3 и старше или Multiword DMA Mode 1 и выше, должно использовать эти поля Бит 0: 1 - поля в словах 54-58 действительны, 0 - поля могут быть действительны |
| 54 | V | Текущее число логических цилиндров. Для устройств АТА-1, если команда Initialize Device Parameters не применялась, значение слова специфично |
| 55 | V | Текущее число логических головок. Для устройств АТА-1, если команда Initialize Device Parameters не применялась, значение слова специфично |
| Слово | F/V | Назначение |
| 56 | V | Текущее число логических секторов на трек. Для устройств АТА-1, если команда Initialize Device Parameters не применялась, значение слова специфично |
| 57-58 | V | Текущая емкость в секторах (произведение слов 54, 55, 56) |
| 59 | R V V | Биты 15-9 зарезервированы Бит 8: 1 - установка для многосекторной передачи действительна Биты 7-0: текущая установка максимального числа секторов для многосекторных команд |
| 60-61 | F | Общее число секторов, адресуемых пользователем (только в режиме LBA) |
| 62 | V F | Для АТА-4 специфично, в АТА-2 - режим одиночного обмена DMA: Биты 15-8: активный режим: бит 8=1 - Mode 0, бит 9=1 - Mode 1 и т. д. Единичное значение может иметь только один бит Биты 7-0 - поддерживаемые режимы: бит 0=1 - Mode 0, бит 1=1 - Mode 1 и т. д. |
| 63 | V F | Режим множественного обмена Multiword DMA: Биты 15-8: активный режим, аналогично слову 62 БИТЬ! 7-0: поддерживаемые режимы, аналогично слову 62 |
| 64 | R F | Биты 15-8 зарезервированы Биты 7-0 - поддерживаемые прогрессивные режимы программного обмена (Advanced PIO): бит 0=1 - PIO Mode 3, бит 1=1 -PIO Mode 4, биты 2-7 - зарезервированы |
| 65 | F | Минимальная длительность цикла передачи множественного DMA (в наносекундах) |
| 66 | F | Рекомендованная длительность цикла передачи множественного DMA (в наносекундах). При многосекторной передаче обеспечивает оптимальную скорость, при которой устройство не будет тормозить поток снятием запроса DMARQ |
|
Слово |
F/V |
Назначение |
|
67 |
F |
Минимальная длительность цикла передачи РЮ без использования сигнала готовности (в наносекундах) |
|
68 |
F |
Минимальная длительность цикла передачи РЮ с использованием сигнала готовности (в наносекундах) |
|
69-70 |
R |
Зарезервировано для поддержки перекрытия команд и очередей |
|
71-74 |
R |
Зарезервировано для команды Identify Packet Device |
|
75 |
F |
Глубина очереди команд-. Биты 15-5 - зарезервированы Биты 4-0 - максимальная глубина очереди |
|
76-79 |
R |
Зарезервировано |
|
80 |
F |
Номер основной версии интерфейса (если не OOOOh или FFFFh): 1 -АТА-1, 2 - АТА-2, 4 - ATA/ATAPI-4... |
|
81 |
F |
Младший номер версии интерфейса (если не OOOOh или FFFFh) |
|
82 |
F |
Поддержка команд и свойств (если слова 82 и 83 не равны OOOOh или FFFFh): Бит 15 - не используется Бит 14 - команды Nop Бит 13 - команды Read Buffer Бит 12 - команды Write Buffer Бит 11 - не используется Бит 10 - ограничение доступного пространства Бит 9 - команда Device Reset Бит 8 - вырабатывание прерывания во время выполнения команды Service Бит 7 - прерывание по освобождению шины Бит 6 - кэширование с упреждающим чтением Бит 5 - кэширование записи Бит 4 - команда Packet Бит 3 - управление энергопотреблением Бит 2 - смена носителя Бит 1 - команды Security Бит 0 - SMART |
|
Слово |
F/V |
Назначение |
|
83 |
F |
Поддержка команд и свойств (как и слово 82): Бит 15-0 Бит 14 = 1 БИТЬ! 13-5 зарезервированы Бит 4 - уведомление о смене носителя Бит 3 - расширенное управление энергопотреблением Бит 2 - команды CFA Бит 1 - команды Read/Write DMA Queued Бит 0 - команда Download Microcode |
|
84 |
F |
Поддержка команд и свойств (если слова 82, 83 и 84 не равны OOOOh или FFFFh): Бит 15 ° 0 Бит 14 = 1 Биты 13-0 зарезервированы |
|
85-87 |
F |
Разрешенные команды и свойства; поля и правила аналогичны словам 82-84 |
|
88 |
R R V |
Режим Uttm DMA Биты 15-11 зарезервированы Биты 10-8: активный режим Ultra DMA: бит 8-1 - Mode 0, бит 9"1 - Mode 1 и т. д. Единичное значение может иметь только один бит Биты 7-3 зарезервированы Биты 2-0: поддерживаемые режимы одиночного обмена DMA бит 0=1 - Mode 0, бит 1=1 - Mode 1 и т. д. |
|
89 |
F |
Время защитного стирания: О-не указано; значение 1 - 254, умноженное на 2, дает время в минутах, 255 - более 508 мин |
|
90 |
F |
Время расширенного защитного стирания (аналогично слову 89) |
|
91 |
V |
Текущий уровень Advanced Power Management |
|
92-126 |
R |
Зарезервировано |
|
127 |
R F |
Биты 15-2 -зарезервированы Биты 1 -0 - уведомление о смене носителя: 00 - не поддерживается, 01 - поддерживается, 1х - зарезервированы |
|
Слово |
F/V |
Назначение |
|
128 |
V |
Состояние защиты: |
|
Биты 15-9 зарезервированы |
||
|
Бит 8 - уровень защиты: |
||
|
0 - высокий, |
||
|
1 - максимальный |
||
|
Биты 7-6 - зарезервированы |
||
|
Бит 5: 1 - поддержка расширенного защитного |
||
|
стирания |
||
|
Бит 4: 1 - счетчик попыток иссяк |
||
|
Бит 3: 1 - команды защиты блокированы |
||
|
Бит 2: 1 - устройство заблокировано |
||
|
Бит 1: 1 -защита разрешена |
||
|
Бит 0: 1 - защита поддерживается |
||
|
129-159 |
X |
Специфично |
|
160-255 |
R |
Зарезервировано |
Команда установки свойств Set Features (специфичная для устройства) подразумевает помещение кода подкоманды (табл. 6.6) в регистр свойств.
|
Код |
Назначение |
|
01h1 |
Разрешение 8-битного обмена |
|
02h |
Разрешение кэширования записи |
|
Код |
пвг-вчснмс |
|
03h |
Установка режима передачи по значению регистра SC (табл. 6.7) |
|
04h' |
Разрешение автоматического переназначения дефектных блоков |
|
05h |
Разрешение расширенного управления энергопотреблением (уровень в регистре SC) |
|
31h |
Запрет уведомления о смене носителя |
|
33h' |
Запрет повторов |
|
44h' |
Установка количества дополнительных байт в командах Read Long/Write Long |
|
54h1 |
Установка количества сегментов кэша по значению регистра SC |
|
55h |
Запрет упреждающего чтения |
|
5Dh |
Разрешение прерывания по освобождению шины |
|
5Eh |
Разрешение прерывания при выполнении команды Service |
|
66h |
Запрет возврата к параметрам по умолчанию при включении питания |
|
77h1 |
Запрет ЕСС |
|
81 h1 |
Запрет 8-битного обмена |
|
82h |
Запрет кэширования записи |
|
84h1 |
Запрет автоматического переназначения дефектных блоков |
|
85h |
Запрет расширенного управления энергопотреблением |
|
88h1 |
Разрешение ЕСС |
|
99h1 |
Разрешение повторов |
|
9Ah1 |
Ограничение тока потребления значением в регистре SC, умноженным на 4 (мА) |
|
AAh |
Разрешение упреждающего чтения |
|
ABh1 |
Установка максимального количества кэшируемых блоков по регистру SC |
|
BBh1 |
Установка 4-байтной длины дополнительного поля для команд Read Long/Write Long |
|
CCh |
Разрешение возврата к параметрам по умолчанию при включении питания |
|
DDh |
Запрет прерывания по освобождению шины |
|
DEh |
Запрет прерывания при выполнении команды Service |
1 В АТА-4 подкоманда изъята. 9 Зак.№530
После включения питания или аппаратного сброса установ- ленные свойства заменяются на принятые по умолчанию. Ре- зультат подкоманд можно и закрепить, подав подкоманду 66h (отмена - подкоманда с кодом CCh).
|
Биты [7:0] |
Режим обмена |
|
00000000 |
Режим PIO, принятый для устройства по умолчанию |
|
00000001 |
Режим PIO, принятый для устройства по умолчанию; запрет IORDY |
|
00001 mm |
Режим PIO Mode x* с сигналом IORDY |
|
00010 ппп |
Режим одиночного DMA Mode x |
|
00100 ппп |
Режим множественного DMA Mode x |
|
01000 ппп |
Режим Ultra DMA Mode x |
|
10000 mm |
Зарезервированы |
Команда задания параметров блочного режима передачи Set Multiple Mode через регистр SC указывает число секторов, передаваемых с одним запросом прерывания. Значению SC==0 соответствует запрет блочного режима. После включения питания или аппаратного сброса блочный режим запрещен.
Команда диагностики Execute Device Diagnostic, адресуясь все- гда к ведущему устройству, выполняется одновременно обоими устройствами. О ее результате ведомое устройство сообщает ведущему (сигналом PDIAG#). Состояние обоих устройств опре- деляется по диагностическому коду (табл. 6.8), который счи- тывается из бит [6:0] регистра ошибок нулевого устройства.
Фиктивная команда Nop, не изменяя содержимого регистров, позволяет считать информацию о состоянии устройства, вы- полнив всего одну 16-битную запись по адресу в регистре DH. Команда всегда возвращает бит ошибки "команда отвергну- та". В АТА-4 команда объявлена обязательной для устройств ATAPI и всех, поддерживающих перекрывающиеся команды. Она имеет подкоманды, указываемые в регистре свойств. Под- команда с кодом 00 сбрасывает всю оставшуюся очередь, а с кодом 01 (NOP Auto Poll) на очередь не влияет.
|
Код |
Ведущее устройство |
Ведомое устройство |
|
Olh |
Нормально |
Нормально или отсутствует |
|
OOh, 02h-7Fh |
Неисправно |
Нормально или отсутствует |
|
81h |
Нормально |
Неисправно |
|
80h, 82h-FFh |
Неисправно |
Неисправно |