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/ |