Здравствуйте, latemic, Вы писали:
L>Прошу прощения, не точно выразился. Для LBA28 ограничение в 128Гб. Мне нужна информация о том как я могу работать с большими дисками (>128Gb) через порты. Во многих статьях что я читал написано такое дело:
L>
L>Номер порта CHS LBA Read Write
L>1F0h (170h) Порт данных Порт данных
L>1F1h (171h) Порт ошибок Порт свойств
L>1F2h (172h) Счетчик секторов Счетчик секторов
L>1F3h (173h) Номер сектора Адрес 0-7
L>1F4h (174h) Цилиндр [0:7] Адрес 8-15
L>1F5h (175h) Цилиндр [8:15] Адрес 16-23
L>1F6h (176h) Номер головки и устройства Адрес 24-27, устройство
L>1F7h (177h) Регистр состояния Регистр команды
L>3F6h (376h) Регистр состояния Управление
L>
L>Из этого следует что максимальный LBA адрес сектора задаётся 28-р числом. Однако я слышал о LBA48. Подскажите, что это такое и с чем его едят.
Для использования LBA48 есть дополнительные команды READ_DMA_EXT (0x25), WRITE_DMA_EXT (0x35), FLUSH_CACHE_EXT (0xEA) и т.п. Нужно пользоватся ими. Но это ещё не всё. Запись LBA в соответствующие порты производится почти также, но в два захода — сначала старшие биты адреса, а потом младшие. Подробности должны быть в документации по ATA-6, я их уже не могу вспомнить сходу.