OSDev

для всех
Текущее время: 28 мар 2024, 23:44

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: AHCI: Как записать Register FIS в HBA Port?
СообщениеДобавлено: 22 ноя 2013, 12:25 

Зарегистрирован: 22 ноя 2013, 11:59
Сообщения: 2
Всем привет!

Решил задать вопрос в связи с тем, что застопорился на одной проблеме уже. Пишу 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?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AHCI: Как записать Register FIS в HBA Port?
СообщениеДобавлено: 23 ноя 2013, 00:52 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AHCI: Как записать Register FIS в HBA Port?
СообщениеДобавлено: 23 ноя 2013, 10:22 

Зарегистрирован: 22 ноя 2013, 11:59
Сообщения: 2
Ага, спасибо за ответ! Вот как раз забежал в офис, попробую написать простенький модуль с одной функцией маппинга памяти.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB