OSDev http://osdev.su/ |
|
PCI http://osdev.su/viewtopic.php?f=7&t=762 |
Страница 1 из 2 |
Автор: | Fatal_Error [ 10 июл 2013, 21:21 ] |
Заголовок сообщения: | PCI |
И снова я, и снова здравствуйте ![]() хочу понять как пользоваться PCI. читал вики, википедию. но не совсем до конца понял. чтобы что-то прочитать от устройства нужно в регистр адреса положить номер шины, номер устройства, номер функции и регистр. а что это собственно такое? с номером шины и устройства более менее понятно, а вот номер функции и регистр - тьма тьмущая... |
Автор: | SII [ 10 июл 2013, 21:37 ] |
Заголовок сообщения: | Re: PCI |
Номер функции -- это просто номер устройства внутри устройства ![]() Ну а регистр -- это регистр и есть. Это программно доступная хрень для работы с устройством. В частности, есть регистры, хранящие коды идентификации производителя железяки, самой железяки и т.д. |
Автор: | iz56 [ 10 июл 2013, 21:55 ] |
Заголовок сообщения: | Re: PCI |
Пожалуй, можно написать ОС - и не зная ничего про PCI. Только не очень полезную. |
Автор: | SII [ 10 июл 2013, 22:10 ] |
Заголовок сообщения: | Re: PCI |
Вполне можно. Опрос устройств на PCI и умение их настраивать нужны для полноценных систем (коими являются, например, Винда или Линух), но не требуется для обеспечения базового функционала оси -- т.е. управления памятью, переключения задач, синхронизации и т.д., а также работы с теми устройствами, которые настраивает BIOS. |
Автор: | Fatal_Error [ 10 июл 2013, 22:22 ] |
Заголовок сообщения: | Re: PCI |
мне надо с сатой работать. как я понял там только PCI |
Автор: | Fatal_Error [ 10 июл 2013, 22:25 ] |
Заголовок сообщения: | Re: PCI |
если мне, к примеру, в голову взбредет на PCI искать SATA AHCI, то я должен буду перебирать в цикле все шины? т.е. шина 0, устройство 0, функция 0 и регистр 0, а затем проверять что вернула PCI, т.е. код класса\подкласса и т.д. если не то, то следующая шина? или не так? |
Автор: | SII [ 10 июл 2013, 23:02 ] |
Заголовок сообщения: | Re: PCI |
Угу, именно полный перебор. Таким путём ось строит топологию шин и подключенных к ним устройств, а заодно собирает список требуемых ресурсов, потом выделяет эти самые ресурсы, настраивает устройства, подыскивает драйверы... |
Автор: | phantom-84 [ 11 июл 2013, 10:16 ] |
Заголовок сообщения: | Re: PCI |
PCI BIOS возвращает вполне корректный "номер последней шины" - дальше можно не искать. Еще если нет нулевой функции, то другие функции устройства можно не проверять. |
Автор: | Fatal_Error [ 11 июл 2013, 15:14 ] |
Заголовок сообщения: | Re: PCI |
стал я проверять все шины начиная с нулевой. Цитата: xor bx, bx mov dx, 0 @@: push bx bx bx dx call ReadPCIReg inc dx jmp @b первый раз мне в ответ пришло 12378086h. а дальше на всех шинах -1. т.е. устройства нету. что это значит? О_О |
Автор: | Fatal_Error [ 11 июл 2013, 15:15 ] |
Заголовок сообщения: | Re: PCI |
DWORD ReadPCIReg(word bus, word dev, word func, word reg) - прототип. чтобы было понятно ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |