Vendor id что это
Перейти к содержимому

Vendor id что это

  • автор:

Vendor ID

Регистры Vendor ID и Device ID идентифицируют устройство и обычно называются PCI ID. Шестнадцатиразрядный регистр Vendor ID выдаётся организацией PCI SIG. Шестнадцатиразрядный регистр Device ID назначается изготовителем устройства. Существует проект создания базы данных всех известных значений регистров Vendor ID и Device ID. (Смотри #Ссылки.)

Первые 64 байта конфигурационного адресного пространства (в соответствии с PCI Local Bus Specification 2.2):

Адрес 31 . 24 23 . 16 15 . 8 7 . 0
0x00 DeviceID VendorID
0x04 Status Command
0x08 Class Code Revision ID
0x0C BIST Header Type Latency Timer Cache Line Size
0x10 Base Address Register 0
0x14 Base Address Register 1
0x18 Base Address Register 2
0x1C Base Address Register 3
0x20 Base Address Register 4
0x24 Base Address Register 5
0x28 Cardbus CIS pointer
0x2C SubsystemID Subsystem Vendor ID
0x30 Expansion ROM Base Address
0x34 Reserved Capabilities
pointer
0x38 Reserved
0x3C Max_Lat Min_Gnt Interrupt Pin Interrupt Line

Регистры DeviceID, VendorID, Status, Command, Class Code, Revision ID, Header Type являются обязательными для всех PCI-устройств (для многих типов устройств обязательными являются также регистры Subsystem ID и Subsystem Vendor ID).

Все остальные регистры являются опциональными.

Автоматическая инициализация аппаратуры с помощью конфигурационного пространства

Для того, чтобы обращаться к устройству через адресное пространство памяти или ввода-вывода, системное программное обеспечение или ОС программирует базовые адресные регистры (англ. Base Address Registers , также называемые BAR’ами), посылая конфигурационные команды PCI-контроллеру. В начале загрузки системы все PCI устройства находятся в неактивном состоянии, им не назначены адреса, по которым драйвера устройств могут взаимодействовать с ними. Либо ISA, базовые адреса устройств, подключамых к которой, приходилось настраивать перемычками или переключателями).

Любое PCI-устройство, не являющееся мостом (см. PCI-to-PCI Bridge Architecture Specification. Revision 1.1) может иметь до шести BAR’ов, каждый из которых отвечает за определённый диапазон адресов в адресном пространстве памяти или ввода-вывода. Кроме того, устройство может иметь firmware).

Доступ к PCI через порты I/O

Для работы с шиной PCI в PC-AT и совместимых машинах выделено два основных порта.
0CF8h -W порт адреса Address
0CFCh RW порт данных Data
Оба порта являются 32 битными.
Порт адреса представляет из себя следующую 32 битную структуру
+—+———+——-+———-+———+—————+-+-+
|31 |30 24|23 16|15 11|10 8|7 2|1|0|
+—+———+——-+———-+———+—————+-+-+
| с | резерв |шина |устройство| функция|Индекс регистра|0|0|
+—+———+——-+———-+———+—————+-+-+
Порт адреса задает шину, устройства, и адрес регистра в конфигурационном пространстве устройства. Грубо говоря, устройство — это физически присутствующее устройство. А функция — это логическое устройство.
С — флаг доступа к устройству.
Первые два бита в порту адреса всегда 0.
По окончании работы с устройством следует сбросить адрес в 0.

Если в ответ на запрос нулевого регистра возвращается 0FFFFh, то устройства не существует. Vendor ID (ID производителя) — для Intel это 8086h, но не может принимать значение 0FFFFh.
Device ID (ID устройства) — принимает различные значения

Revision ID (ID модификации) — обозначает номер модификации устройства, назначается производителем.

Base Class Code — базовый класс, сокращенно BCC.
Sub Class Code — подкласс, сокращенно SCC.
Programming Interface — интерфейс, сокращенно PI.

Header Type (тип заголовка) — если бит 7 равен 1, то устройство содержит несколько функций.
Если бит 6 равен 0, то заголовок стандартный. Стандартные заголовки:
00 — стандартный смотри выше.
01 — стандартный для моста PCI-to-PCI
02 — стандартный для моста CardBus.

См. также

Ссылки

  • The Linux PCI ID Repository, база данных ID PCI-устройств
  • PCI Vendor and Device Lists

Wikimedia Foundation . 2010 .

Vendor id что это

Разбираемся с драйверами.
Урок 1. Установка драйверов. Возможные нештатные ситуации.

Я тут подумал и решил, что проще написать один обзор популярно и подробно, чем каждый раз заново отвечать в форуме на одни и теже вопросы.

Давайте попробуем на любительском уровне разобраться в драйверах для видеоадаптеров Radeon и начнем этот разговор с их установки. Это вдвойне актуально из-за того, что последнее время на рынок широкой волной хлынули видеокарты на чипах ATi от сторонних производителей, причем как партнеров канадской компании, так и просто перекупщиков чипов (да, да — в западных форумах уже проскакивают сообщения даже об этом). С одной стороны, такое разнообразие выбора не может не радовать, с другой — вызывает массу вопросов у пользователей, связанных с БИОСами таких карт и проблемами, возникающими при установке драйверов к ним. Вопрос с БИОСами мы оставим до лучших времен, единственное, что мне хочется сказать по этому поводу, так это что в 95% не стоит искать приключений на свою многострадальную . карту (а вы что подумали? 🙂 и пытаться прошить в нее «чужой» БИОС, — чаще всего вы ничего от этого не выиграете. Тем более это не стоит делать сейчас, когда появился прекрасный инструмент для редактирования БИОСов — RadEdit.

Давайте для начала рассмотрим, как операционная система определяет, какие же драйверы требует то или иное устройство, и можно ли или нет, и если можно, то как «обмануть» операционку. Начнем с того, что каждое устройство имеет несколько идентификаторов — индивидуальных кодов, которые определяют производителя, модель и модификацию устройства. Первый — это Vendor ID, который содержит информацию о производителе нашей видеокарты. До недавних пор у всех видеоадаптеров на чипах ATi это значение было равным 1002, что соответствовало, естественно, самой ATi, но сейчас уже встречаются карты с другими значениями, например, мне на днях прислали БИОС карточки Radeon 7000 неизвестного производителя с Vendor ID 1569. Сразу оговорюсь, что производитель «неизвестен», потому что я просто поленился его выяснять. На самом деле по известному идентификатору не составит особого труда его определить. Кстати, это что-то вроде фирменного клейма и то, что он отличается от ATi-шного, может быть даже плюс, потому что это значит, что производитель не прячется за спиной ATi и не стесняется заявить, что данная карта произведена именно им. Наверняка Gigabyte и Hercules на своих картах будут иметь собственные Vendor ID.

Второй идентификатор — Device ID. Он определяет модель устройства, а в большинстве случаев чип, на основе которого оно изготовлено. Это самый важный для нас идентификатор и он в принципе не должен отличаться от того, какой был назначен чипу при рождении. Сейчас я для более подготовленных технически читателей скажу несколько «заумных» вещей, которые все остальные могут пропустить.

Есть два независимых источника, где хранятся Device ID. Один в Video bios в PCI Data Structure, где по Offset 4 находится Vendor ID, а по Offset 6 — Device ID. Указатель на него находится по Offset 18h ROM bios. Второй источник — в регистрах 2-3 PCI Configuration Space. Туда он в свою очередь попадает так, как задумано разработчиками чипа и/или карты. Он может быть жестко запрограммирован в каком-то Read Only регистре чипа, может просто рисоваться резисторами-перемычками на плате (как у Nvidia, например), может задаваться какими-то байтами в ROM BIOS, а оттуда зеркалироваться на шину, может быть в отдельном config ROM, есть и другие варианты. Поэтому теоретически существует множество возможностей для производителя наплодить кучу фантомных разновидностей по сути одного устройства.

Третий идентификатор — SubSystem ID определяет модификацию устройства. Ну, например, Radeon VE с SDR или с DDR памятью будут иметь разные SubSystem ID. Более того, разные SubSystem ID могут иметь даже абсолютно одинаковые карты, но с разными рабочими частотами. По большому счету SubSystem ID чаще всего особой роли не играет.

Есть еще и четвертый — Subsystem Vendor ID, но он нас вообще не интересует.

Теперь вернемся к тому, как устанавливаются драйверы.

Операционная система считывает все три идентификатора устройства и сравнивает их с теми, которые есть в ее базе драйверов (надеюсь, что все помнят, что для наиболее распространенных устройств драйверы есть в составе инсталляционного пакета самой операционки). Для Radeon-ов драйверы есть только в составе Windows XP, но и для нее все же лучше устанавливать «свежие» драйверы по той простой причине, что MS поступила следующим образом — для драйверов, входящих в ее состав, встроенная поддержка API OpenGL отсутствует. Для видеокарт всех производителей, а не только для ATi, насколько мне известно. И если вы собираетесь играть в игры, базирующиеся на этом API (Quake, Serious Sam, например), то имеет смысл устанавливать драйверы производителя, которые идут отдельным пакетом (самые последние версии всегда можно скачать с нашего сайта).

Что представляет собой инсталляционный пакет драйверов? Это набор файлов, через которые после их распаковки и установки операционная система работает с видеокартой. Очень часто в инсталляционном пакете драйверов присутствуют файлы для нескольких родственных, но не одинаковых устройств и какие из этих файлов будут использоваться картой, а какие нет, определяет специальный конфигурационный файл, имеющий расширение *.inf. Именно в нем находится список устройств, для которых эти драйверы предназначены, именно с ним сверяет операционная система идентификаторы устройства, определенные аппаратно. Строки этого списка устройств имеют вид:

«RADEON 7000/VE» = RV100_ENU, PCI\VEN_1002&DEV_5159&SUBSYS_000A1002

Что значат эти строки? «RADEON 7000/VE» — это имя, которое ваша видеокарта будет иметь в закладке «Система» => «Оборудование» в списке установленных устройств. RV100_ENU — это раздел в inf-файле, точнее даже несколько разделов, в которых описано, какие файлы из инсталляционного пакета и как именно надо устанавливать, с какими настройками должна работать видеокарта, какие изменения необходимо внести в системный реестр. VEN_1002 — это Vendor ID, DEV_5159 — Device ID и SUBSYS_000A1002 — SubSystem ID. Если все три ID совпадают с теми, которые зашиты в вашей видеокарте, операционная система делает вывод, что данные драйверы подходят к устройству, иначе выдается сообщение, что нужные драйверы не найдены.

Давайте рассмотрим внимательнее список устройств в inf-файле.

Что мы видим? А то что, например, все видеокарты на чипе RV100 (Radeon 7000/VE в различных модификациях), несмотря на различные SubSystem ID, имеют одно и тоже наименование установочного раздела — RV100_ENU. Карты на чипах R100 — R6_ENU_default. (Небольшое дополнение по просьбе читателей: В Windows XP и 2000 эти разделы имеют другие имена — например, ati2mtag_RV100, ati2mtag_default). Это те самые разделы, которые отвечают за установку и конфигурирование видеокарты. Более того, наименование этого раздела не зависит и от Vendor ID и определяется только Device ID, т.е. чипом, на котором сделан видеоадаптер. Какие из этого следуют практические выводы? А такие, что нам не нужно знать, кто производитель нашего видеоадаптера и какая на нем установлена память (точнее это надо знать, но для других целей, например, чтоб прикинуть его производительность). Но надо обязательно знать, на базе какого чипа изготовлена видеокарта. Зная это, вы абсолютно безбоязненно сможете принудительно установить драйверы от аналогичной карточки.

Уже предвижу вопрос: «А как это сделать?» Рассказываю. Откройте Панель управления => Система => Видеоадаптеры, выделите ваш Radeon, который виден в системе как «Стандартный VGA видеоадаптер» и нажмите кнопку «Свойства». Откроется новое окно, в котором надо открыть закладку «Драйвер» и нажать «Обновить драйвер». В появившемся окне выделите «Отобразить список всех драйверов, чтобы выбрать наиболее подходящий». Откроется еще одно окно, в нем ставим галку напротив «Отобразить полный список устройств», затем нажимаем «Установить с диска» и указываем путь к папке, в которую распаковали драйверы. Нажимаем «Далее» и в открывшемся списке выбираем родственное устройство на аналогичном чипе. Все остальное Windows сделает сама. Для вступления изменений в силу потребуется перезагрузка.

Второй способ посложнее, но позволит вам отредактировать inf-файл таким образом, что Windows самостоятельно определит вашу карту. Для этого открываем реестр и ищем ветку

• Для Win9x/ME:
HKLM\Config\000х\Display\Settings\PCI_VEN_****&DEV_****&SUBSYS_********

• Для Win XP:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Settings\Video\PCI:VEN_****&DEV_****&SUBSYS_********

Где вместо * будут ID вашей карты. Причем обратите внимание, что Device ID у Radeon могут быть следующие:

• R100 (Radeon SDR, Radeon DDR, Radeon LE, Radeon VIVO, Radeon 7200) — 5144 ;
• RV100 (Radeon VE, Radeon 7000) — 5159 ;
• RV200 (Radeon 7500) — 5157 ;
• R200 (Radeon 8500/8500 LE) — 514C .

Можно открыть редактор реестра, ввести в строке поиска Device ID вашей карты и быстро получить искомую строчку, которая присутствует еще в нескольких ветвях реестра. Дальше распаковываем инсталляционный пакет драйверов в какую-либо папку и находим там один из следующих файлов:

• atii9xag.inf для Win9x/ME;
• atiixpag.inf для Win XP;
• atii2kag.inf для W2k.

Открываем его в тестовом редакторе, лучше в Блокноте, и вставляем в список устройств дополнительную строку, в которой заменяем присутствующие там Vendor ID и SubSystem ID на те, которые зашиты в вашей карте и которые только что были найдены в системном реестре. При установке подредактированных драйверов Windows найдет вашу карту самостоятельно.

Существует и третий метод — редактирование БИОСа видеокарты, но его мы благоразумно пропустим вообще. Пока. Возможно в дальнейшем мы расскажем и об этом.

Еще одно замечание. Драйверы могут не устанавливаться также по причине того, что у вас просто сильно замусорена или некорректно установлена система, отсутствуют или повреждены системные файлы. Поэтому столкнувшись с проблемой, не спешите делать вывод о том, что у вас нестандартная видеокарта.

Удачи!

9 февраля 2002 г. Дмитрий aka Viller

Главная Продукция Статьи Тесты FAQ Downloads Форум Ссылки
Логотипы, торговые марки и прочие зарегистрированные знаки принадлежат компании ATI Technologies
Copyright © 2001

Организация по стандартизации USB против Open Source

image

Одной из главных проблем для любителей и мелких компаний, занимающихся продажей «железок» с USB-портом, сегодня является USB Implementers Forum (USB-IF) — организация, занимающаяся разработкой спецификаций на шину USB; в ней принимают участие такие компании, как Intel, Microsoft и Hewlett-Packard.

Суть этой проблемы в следующем. Каждое продающееся устройство с USB требует сертификации на соответствие требованиям USB, для чего ему необходимо иметь ID вендора (vendor ID, VID) и ID изделия (product ID, PID). Крупные игроки любительского рынка — вроде Sparkfun или Adafruit — давно заплатили USB-IF за получение USB VID; вся беда в том, что и любому умельцу, смастерившему в своем гараже устройство с USB и надеющемуся продавать его — пусть и продастся от силы десяток-сотня штук — тоже приходится оплачивать его получение.

В качестве решения этой проблемы компания Arachnid Labs предложила интересную мысль: поскольку отдельные производители USB-устройств (вроде Microchip или FTDI) раздают некоторое количество своих USB PID бесплатно, можно было бы создать собственную некоммерческую организацию, которая бы купила один VID и раздавала PID своим участникам, занимающимся разработкой открытого аппаратного обеспечения. В результате, множество устройств, изготовленных любителями, получили бы статус USB-совместимых.

Но подобная идея весьма не понравилась VTM Group — компании, занимающейся управлением, пиаром и юридической стороной работы USB-IF. Всю переписку можно прочитать на сайте Arachnid Labs, предложения о создании VID для open source даже не дошли до участников USB-IF, непосредственно занимающихся выдачей ID, а вот компания VTM Group отреагировала следующей не самой приятной просьбой:

Пожалуйста, немедленно прекратите сбор средств на приобретение уникального USB VID с целью передачи, перепродажи или лицензирования связанных с ним PID, и удалите все упоминания о USB-IF, VID и PID, которые позволяют производить подобное, со своего сайта и из других мест.

У сообщества остались способы обхода решения VTM Group — например, продолжать «прятаться» за USB VID 0xF055 — но отсутствие открытых PID заставляет Arachnid Labs искать новые способы для их легального получения — теперь они собираются пытаться выйти непосредственно на людей из HP, Intel, и Microsoft, работающих в USB-IF.

Регистрация Vendor ID

Добрый день всем, есть ли у кого опыт разработки pci девайсов и регистрировался ли кто нибудь в PCI-SIG с получением Vendor-Id, очень много юридических вопросов как это сделать, как заплатить 4000$, как закрыть актами результат в 4 цифры. Напишите если знаете ссылки на статьи 🙁

https://m.e1.ru/f/go/29/422693/422693/
00:42, 16.12.2018

Привет. Никто не ответит тут, мы, конечно, крутые перцы, но ремесленники же.
Со своего дивана, если ты одиночка, который разработал новый крутой девайс, я бы предложил сначала подать заявку на патент через любого местного посредника.

Контакт могу дать, но мой и дешевый и медленный одновременно. Регистрация патента от 100 т.р. примерно, займет полгода не меньше. Явно есть быстрее.

Потом с того же дивана посоветую в Линедине или на Стаковерфло или на других аналогах искать контакт сотрудника корпорации, которая близка к теме. Не обязательно менеджера, просто поболтать, обсудить перспективы. А дальше я уже не бывал.
Может и виллы, а может и вилы. Как закончишь, не поленись вернуться сда и рассказать :weep:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *