LINUX.ORG.RU

Разработка AHCI драйвера


0

1

Всем привет. Есть проблема, которая одолевает меня уже две недели. Пишу я 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...

. Вроде различий в построении этих команд не должно быть, однако сектора записываться не хотят. На всякий случай выкладываю код функции выполнения команды:

http://pastebin.com/psHUNsqK

Ответ на: комментарий от anonymous

Не понимаю сути вопроса... Linux не причем, как раз необходим дайвер, работающий с хардом без какой либо ОС

energyclab
() автор топика
Ответ на: комментарий от punya

Мне необходим драйвер, работающий с хардом независимо от ОС... Поэтому пишу свой... Для IDE хардов я его написал, хочу теперь sata взаимодействие обеспечить

energyclab
() автор топика
Ответ на: комментарий от energyclab

выйдет «драйвер» который будет зависеть от любого чиха системы. кому он такой будет нужен? драйверу место как модулю ядра а такие вещи как ahci лучше вообще в ядро вкомпиливать

punya ★★
()
Ответ на: комментарий от punya

Нужен драйвер, с помощью которого бы я смог сделать какие либо настройки до загрузки любой ОС. Скажем так, хранить некоторую служебную информацию. По этому модулем ядра ос не катит

energyclab
() автор топика
Ответ на: комментарий от energyclab

Linux не причем

Тогда какого хрена ты оффтопишь?

anonymous
()
Ответ на: комментарий от energyclab
bzr branch http://bzr.savannah.gnu.org/r/grub/trunk/grub && nano grub/grub-core/disk/ahci.c
punya ★★
()
Ответ на: комментарий от energyclab

Мне необходим драйвер, работающий с хардом независимо от ОС...

и от железа тоже? средствами биос можешь, если это pc совместимое.

p.s. ahci в биосе включил?

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

Да, конечно включил... Я же написал, что я даже считать смог, однако при записи поднимается флаг ошибки.. В документации написано, что это может быть из за не соответствия протокола (скорее всего так оно и есть). Однако, на сколько я понял, обмен что при чтении, что при записи не отличается за исключением самой команды и бита направления данных (бит w)...

energyclab
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.