OSDev

для всех
Текущее время: 19 авг 2018, 20:32

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




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 24 дек 2011, 00:21 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1346
Откуда: Зеленоград
Bargest писал(а):
Про вырубание компа ничего...


Так у Вас же вроде не реальный компутер вырубается, а QEMU? Вполне может быть, что он просто глючит, да и всё...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 24 дек 2011, 00:26 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Возможно... Правда почему тогда с одним диском (на первом канале Master) просто ошибка чтения, с другим (на втором Master) - вырубание? Если глюк в QEMU - там же должны быть одинаковые алгоритмы работы с дисками 1 и 2 каналов.
Ну ладно, буду считать, что это глюк.
Так можно ли считать наличие/отсутствие бита Bus Mastering в регистре Command достаточной проверкой поддержки PCI DMA? Или нужны другие проверки?


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

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Все еще интересует последний вопрос.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 01 янв 2012, 06:31 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Мдя... Значит буду считать достаточной проверкой, пока опытным путем не выяснится ее недостаточность.:)


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

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1346
Откуда: Зеленоград
Судя по названию бита, именно он и определяет, может ли устройство выступать в роли "мастера" (задатчика) шины, т.е. выполнять прямой доступ к памяти без участия процессора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PCI
СообщениеДобавлено: 01 янв 2012, 17:51 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
В третий раз перечитал абзац из спецификации:
Цитата:
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, толи проверка недостаточная...


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

Зарегистрирован: 22 май 2007, 15:29
Сообщения: 290
Поддержка PCI DMA в IDE-контроллерах QEMU есть, так что, вероятно, вы их неверно используете (или QEMU их неверно реализует). См. pci.c и другие файлы в этом каталоге.


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

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
В VMWare работает, при том что никаких аппаратно-зависимых вещей в коде нет. Возможно в QEMU неверная реализация для дисков.
Тогда выходит, что снятый бит Bus Master не является гарантией отсутствия этой функции у контроллера.


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

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


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

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


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

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