OSDev http://osdev.su/ |
|
PCI http://osdev.su/viewtopic.php?f=7&t=473 |
Страница 3 из 3 |
Автор: | SII [ 24 дек 2011, 00:21 ] |
Заголовок сообщения: | Re: PCI |
Bargest писал(а): Про вырубание компа ничего... Так у Вас же вроде не реальный компутер вырубается, а QEMU? Вполне может быть, что он просто глючит, да и всё... |
Автор: | Bargest [ 24 дек 2011, 00:26 ] |
Заголовок сообщения: | Re: PCI |
Возможно... Правда почему тогда с одним диском (на первом канале Master) просто ошибка чтения, с другим (на втором Master) - вырубание? Если глюк в QEMU - там же должны быть одинаковые алгоритмы работы с дисками 1 и 2 каналов. Ну ладно, буду считать, что это глюк. Так можно ли считать наличие/отсутствие бита Bus Mastering в регистре Command достаточной проверкой поддержки PCI DMA? Или нужны другие проверки? |
Автор: | Bargest [ 24 дек 2011, 20:11 ] |
Заголовок сообщения: | Re: PCI |
Все еще интересует последний вопрос. |
Автор: | Bargest [ 01 янв 2012, 06:31 ] |
Заголовок сообщения: | Re: PCI |
Мдя... Значит буду считать достаточной проверкой, пока опытным путем не выяснится ее недостаточность.:) |
Автор: | SII [ 01 янв 2012, 14:58 ] |
Заголовок сообщения: | Re: PCI |
Судя по названию бита, именно он и определяет, может ли устройство выступать в роли "мастера" (задатчика) шины, т.е. выполнять прямой доступ к памяти без участия процессора. |
Автор: | Bargest [ 01 янв 2012, 17:51 ] |
Заголовок сообщения: | Re: PCI |
В третий раз перечитал абзац из спецификации: Цитата: The Command register provides coarse control over a device's ability to generate and respond to PCI cycles. When a 0 is written to this register, the device is logically disconnected from the PCI bus for all accesses except configuration accesses. All devices are required to support this base level of functionality. Individual bits in the Command register may or may not be implemented depending on a device’s functionality. For instance, devices that do not implement an I/O Space will not implement a writable element at bit location 0 of the Command register. Devices typically power up with all 0's in this register, but Section 6.6 explains some exceptions. Figure 6-2 shows the layout of the register and Table 6-1 explains the meanings of the different bits in the Command register. Выходит, что для устройства, которое не поддерживает какую-то функцию, соответствующий бит будет Read-Only и равен нулю. Только вот в QEMU бит Bus Master является Writable, однако PCI DMA не работает. А в VMWare тоже Writable, и PCI DMA работает. Вот сижу гадаю: толи глюк QEMU, толи проверка недостаточная... |
Автор: | grindars [ 02 янв 2012, 18:57 ] |
Заголовок сообщения: | Re: PCI |
Поддержка PCI DMA в IDE-контроллерах QEMU есть, так что, вероятно, вы их неверно используете (или QEMU их неверно реализует). См. pci.c и другие файлы в этом каталоге. |
Автор: | Bargest [ 07 янв 2012, 18:23 ] |
Заголовок сообщения: | Re: PCI |
В VMWare работает, при том что никаких аппаратно-зависимых вещей в коде нет. Возможно в QEMU неверная реализация для дисков. Тогда выходит, что снятый бит Bus Master не является гарантией отсутствия этой функции у контроллера. |
Страница 3 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |