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/ |