OSDev
http://osdev.su/

AHCI: Как записать Register FIS в HBA Port?
http://osdev.su/viewtopic.php?f=7&t=821
Страница 1 из 1

Автор:  raydenvm [ 22 ноя 2013, 12:25 ]
Заголовок сообщения:  AHCI: Как записать Register FIS в HBA Port?

Всем привет!

Решил задать вопрос в связи с тем, что застопорился на одной проблеме уже. Пишу C-ный софт под Линукс. Это не драйвер, софт работает в User Space под root'ом с AHCI-контроллером и SATA-дисками, подключенными к нему через 4 SATA-порта. Все пытаюсь делать согласно спецификации Интела: http://www.intel.com/content/www/us/en/io/serial-ata/serial-ata-ahci-spec-rev1_3.html и с подсказками на этой wiki-странице: http://wiki.osdev.org/AHCI

Я успешно получил физический адрес ABAR5 и замаппил через mmap его на структуру HBA_MEM. Все порты у меня работают и обновляют свое состояние в уже виртуальной памяти, выделенной mmap. То есть у порта при подключении/отключении диска обновляется ряд регистров: например, меняется PxTFD, в котором показываются регистры статуса и ошибки диска.

ПРОБЛЕМА:

Не получается отправить Register FIS через PxCLB. При чем до отправки дело даже не до ходит. Не могу доступиться к памяти, на которую указывает поле порта PxCLB. Это физический адрес, на все попытки маппинга, которого через mmap, у меня приходит MAP_FAILED (то есть -1). Так же пытался выделить память через memalign и проставить туда указатель на нее, как это делается в OSDev Wiki AHCI, но так как софт работает в User Space, это в корни не верно...

Как же все таки доступиться к памяти по адресу PxCLB, чтобы записать туда Registry FIS?

Автор:  Nable [ 23 ноя 2013, 00:52 ]
Заголовок сообщения:  Re: AHCI: Как записать Register FIS в HBA Port?

Используешь при этом /dev/mem или как-то иначе мапишь?
Ну и да, прямо любопытно стало: в чём смысл такого юзерспейса, который всё равно может любую область памяти испортить? В якобы более простой отладке?
Upd: а, теперь вижу зачем, прочёл на англоязычном форуме. Как там уже сказали, лучше модуль. Правда, имхо, лучше вообще линух выкинуть в таком случае и работать с чем-то более предсказуемым+поддерживаемым и менее многозадачным.

Автор:  raydenvm [ 23 ноя 2013, 10:22 ]
Заголовок сообщения:  Re: AHCI: Как записать Register FIS в HBA Port?

Ага, спасибо за ответ! Вот как раз забежал в офис, попробую написать простенький модуль с одной функцией маппинга памяти.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/