Всем привет. Есть проблема, которая одолевает меня уже две недели. Пишу я ahci драйвер. За основу взята статься с http://wiki.osdev.org/AHCI ну и соответственно спецификация от intel http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/serial-ata-ahci-spec-rev1_3.pdf. Так вот, обмениваться с хардом я пытаюсь в режиме DMA, В примере, приведенном на osdev.com описана функция чтения секторов с диска. Считать с диска у меня получилось, однако когда я попытался записать, контроллер поднял бит ошибки
Offset 30h: PxSERR – Port x Serial ATA Error - Handshake Error...
. Вроде различий в построении этих команд не должно быть, однако сектора записываться не хотят. На всякий случай выкладываю код функции выполнения команды: