OSDev
http://osdev.su/

Wiki разработчиков OS
http://osdev.su/viewtopic.php?f=15&t=99
Страница 3 из 6

Автор:  grindars [ 01 сен 2009, 12:52 ]
Заголовок сообщения:  Re^7: Wiki разработчиков OS

тест

Автор:  Pavia [ 01 сен 2009, 15:18 ]
Заголовок сообщения:  Re^7: Wiki разработчиков OS

Перечитал спецификации.
Про CONFIG_ADDRESS написано что он работает только с DWord.
А вот CONFIG_DATA напротив можно делать любую запись.

The
configuration access mechanism makes use of the CONFIG_ADDRESS register (at I/O address
0CF8h though 0CFBh) and CONFIG_DATA register (at I/O address 0CFCh though 0CFFh). To
reference a configuration register a DWord I/O write cycle is used to place a value into
CONFIG_ADDRESS that specifies the PCI bus, the device on that bus, the function within the
device, and a specific configuration register of the device function being accessed.
CONFIG_ADDRESS[31] must be 1 to enable a configuration cycle. CONFIG_DATA then
becomes a window into the four bytes of configuration space specified by the contents of
CONFIG_ADDRESS. Any read or write to CONFIG_DATA will result in the MCH translating the
CONFIG_ADDRESS into the appropriate configuration cycle.
The MCH is responsible for translating and routing the processor’s I/O accesses to the
CONFIG_ADDRESS and CONFIG_DATA registers to internal MCH configuration registers, HI
or AGP/PCI_B.

Кстати тут совет возьми спецификацию PCI 3.0 в ней некоторые вещи подробнее расписаны чем в 2.3

Автор:  SII [ 01 сен 2009, 16:27 ]
Заголовок сообщения:  Re^8: Wiki разработчиков OS

Да, насчёт CONFIG_DATA моя ошибка -- спешил на работу, писал впопыхах, вот и не посмотрел дальше. Но в любом случае, занятость нескольких адресов подряд не означает _автоматически_, что к ним можно обращаться и оптом, и в розницу -- зависит от характера устройства. Для PCI, как мы видим, нельзя в розницу обращаться к CONFIG_ADDRESS, а для PIC, думаю, нельзя оптом к его двум портам, хотя они и расположены по соседним адресам -- ведь PIC по своей природе 8-разрядный.

А насчёт спецификации 3.0 -- я б взял, но у меня её нет, а в Инете не попадалась как-то. Правда, я с поиском особо не заморачивался...

ADD: Нашёл спецификацию, бум смотреть по ней.

Автор:  Himik [ 11 сен 2009, 12:22 ]
Заголовок сообщения:  Re^9: Wiki разработчиков OS

SII, а где нашёл спецификацию? На pcisig не дают.

Автор:  SII [ 11 сен 2009, 15:36 ]
Заголовок сообщения:  Re^10: Wiki разработчиков OS

chizh
В гугле нашёл, где ещё...

Автор:  Treant [ 03 ноя 2010, 18:29 ]
Заголовок сообщения:  Re: Wiki разработчиков OS

почему вики на убогом движке с рекламой?

Автор:  SII [ 03 ноя 2010, 19:53 ]
Заголовок сообщения:  Re: Wiki разработчиков OS

Потому что своего сервера нет, всё на бесплатном.

Автор:  qeos [ 29 ноя 2010, 03:42 ]
Заголовок сообщения:  Re: Wiki разработчиков OS

может я оплачу год хостинга?

Автор:  SII [ 29 ноя 2010, 12:23 ]
Заголовок сообщения:  Re: Wiki разработчиков OS

А дальше что? Стабильность нужна, а не постоянные переезды туда-сюда, не говоря о том, что свой сайт (в т.ч. и вика) требует администрирования (не только всё установить и настроить в самом начале, но потом ещё и поддерживать, устанавливать обновления и т.д. и т.п.), а на это ни у кого нет ни времени, ни желания. Ну а реклама... Гадость, конечно, но лично мне она не шибко мешает.

Автор:  pavia [ 09 мар 2011, 22:57 ]
Заголовок сообщения:  Re: Wiki разработчиков OS

Тут занесло меня на вики прочитал про контроллер прерываний.
Цитата:
Неприятной особенностью контроллеров 8259 является возможность потери прерывания. Такое может произойти, если запросом прерывания считается не положительный перепад, а поддерживаемый на линии IRQ высокий уровень сигнала (подробнее об этом говорится в подразделе «Фиксация запросов прерываний и разделение линий IRQ»). Если контроллер прерывания выдал процессору сигнал INTR и в этот момент сигнал запроса на линии IRQ был сброшен, контроллер не будет знать, какой вектор выдать процессору в ответ на сигнал INTA. Отменить начавшуюся процедуру прерывания невозможно, поэтому контроллер выдаёт вектор, соответствующий линии IRQ7, однако 7-й бит в регистре ISR не устанавливает.

Не совсем понятной является ситуация с потерей прерывания ведомого контроллера. Судя по описанию южного моста Intel ICH10, ведомый контроллер успевает снять свой сигнал INTR до момента, когда ему необходимо будет выдать вектор, что приводит к неожиданной для ведущего контроллера пропаже сигнала IRQ2. Последний отреагирует на такое событие описанным выше образом и выдаст вектор прерывания для IRQ7, не устанавливая седьмой разряд ISR.

Откуда сей бред взялся?

Цитата:
Если контроллер прерывания выдал процессору сигнал INTR и в этот момент сигнал запроса на линии IRQ был сброшен, контроллер не будет знать, какой вектор выдать процессору в ответ на сигнал INTA.

Фиксация прерывания происходит до посылки INTR. И сбрасывается по EOI или AEOI.

Цитата:
Судя по описанию южного моста Intel ICH10, ведомый контроллер успевает снять свой сигнал INTR до момента, когда ему необходимо будет выдать вектор, что приводит к неожиданной для ведущего контроллера пропаже сигнала IRQ2.

Странно такое слышать INTR всегда импульсным был. И определялся по переднему фронту. Поэтому IRQ2 и настраивается на срабатывание по фронту.

Страница 3 из 6 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/