OSDev

для всех
Текущее время: 19 ноя 2017, 04:20

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




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: PCI
СообщениеДобавлено: 10 июл 2013, 21:21 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
И снова я, и снова здравствуйте :D
хочу понять как пользоваться PCI. читал вики, википедию. но не совсем до конца понял. чтобы что-то прочитать от устройства нужно в регистр адреса положить номер шины, номер устройства, номер функции и регистр. а что это собственно такое? с номером шины и устройства более менее понятно, а вот номер функции и регистр - тьма тьмущая...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 10 июл 2013, 21:37 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1314
Откуда: Зеленоград
Номер функции -- это просто номер устройства внутри устройства :) Просто иерархия такая: шина - устройство - функция. Например, на видюхе присутсвует не только собственно видюха, но ещё и аудиокодек (для выдачи звука по HDMI), и ещё что-то может присутствовать -- и все эти вещи могут быть оформлены разными функциями одного устройства.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 10 июл 2013, 21:55 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 319
Откуда: Псковская обл.
Пожалуй, можно написать ОС - и не зная ничего про PCI. Только не очень полезную.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 10 июл 2013, 22:10 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1314
Откуда: Зеленоград
Вполне можно. Опрос устройств на PCI и умение их настраивать нужны для полноценных систем (коими являются, например, Винда или Линух), но не требуется для обеспечения базового функционала оси -- т.е. управления памятью, переключения задач, синхронизации и т.д., а также работы с теми устройствами, которые настраивает BIOS.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 10 июл 2013, 22:22 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
мне надо с сатой работать. как я понял там только PCI


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 10 июл 2013, 22:25 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
если мне, к примеру, в голову взбредет на PCI искать SATA AHCI, то я должен буду перебирать в цикле все шины? т.е. шина 0, устройство 0, функция 0 и регистр 0, а затем проверять что вернула PCI, т.е. код класса\подкласса и т.д. если не то, то следующая шина? или не так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 10 июл 2013, 23:02 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1314
Откуда: Зеленоград
Угу, именно полный перебор. Таким путём ось строит топологию шин и подключенных к ним устройств, а заодно собирает список требуемых ресурсов, потом выделяет эти самые ресурсы, настраивает устройства, подыскивает драйверы...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 11 июл 2013, 10:16 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1195
PCI BIOS возвращает вполне корректный "номер последней шины" - дальше можно не искать. Еще если нет нулевой функции, то другие функции устройства можно не проверять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 11 июл 2013, 15:14 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
стал я проверять все шины начиная с нулевой.
Цитата:
xor bx, bx
mov dx, 0
@@:
push bx bx bx dx
call ReadPCIReg
inc dx
jmp @b

первый раз мне в ответ пришло 12378086h. а дальше на всех шинах -1. т.е. устройства нету. что это значит? О_О


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 11 июл 2013, 15:15 

Зарегистрирован: 25 фев 2013, 22:01
Сообщения: 63
DWORD ReadPCIReg(word bus, word dev, word func, word reg) - прототип. чтобы было понятно :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

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


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

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


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

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