Здравствуйте, koandrew, Вы писали:
K>Нет — тут имеется в виду как раз то, чтобы девайсы не рассчитывали, что запрошенные через BAR IO ресурсы им по факту предоставят. Как раз потому, что они доступны не на всех платформах, а PCIe девайсы по идее должны работать на любых архитектурах (и, собственно, многие девайсы таки работают — в частности, я лично видел сетевуху, работающую подключённой к ARM SoC с PCIe Root Complex).
Хм, такое прочтение тоже возможно, приму сейчас на веру. Жаль, что там настолько туманные формулировки.
N>>Практически же на машинах с PCI Express продолжает активно использоваться I/O пространство. Вот с моего настольника:
N>>Это встроенная, то есть тут нельзя сослаться на проблемы совместимости — если бы был запрет на I/O порты, её бы давно подточили, и у неё не было бы такого диапазона.
K>И тем не менее это таки для совместимости Если не веришь — попробуй поменять IO BAR и убедиться, что всё по прежнему пашет
Отложу до плановой перезагрузки. Но я уверен, что на дофига карт это не пройдёт — если их рассчитывали только на x86. Тем более это не относится к встроенным ресурсам материнки, для которых не надо рассчитывать на возможность работы под другими типами процессоров.
N>>Нет, не необходимо.
N>>В отличие от первых 256 байт, стиль доступа к остальным не специфицирован собственно стандартом PCI.
K>Ну здрассте!
K>K>7.2.2. PCI Express Enhanced Configuration Access Mechanism (ECAM)
K><...>
K>The ECAM utilizes a flat memory-mapped address space to access device configuration registers. In this case, the memory address determines the configuration register accessed and the memory data updates (for a write) or returns the contents of (for a read) the addressed register. The mapping from memory address space to PCI Express Configuration Space address is defined in Table 7-1.
OK, про букву стандарта был неправ. Но AMD это не поддерживали в ранних версиях и сейчас продолжают предоставлять альтернативный механизм через классические порты. Это вообще-то имеет смысл и потому, что до определённого момента может быть невозможно определить место для размещения MMIO области конфигурации.
В BIOS у них я видел предпочтение именно IO-варианта даже для расширенного пространства — видимо, для универсальности.
Вполне возможно и ожидать, что где-то MMIO и не будет назначено.