Возможно ли создание ACPI-совместимого PCI-устройства?

Помогите, пожалуйста, понять суть происходящего процесса.
Возможно ли создание ACPI-совместимого PCI-устройства?
В том смысле, что я не понимаю, на каком этапе и кто вносит информацию об ACPI-возможностях устройства в ACPI-таблицы.
С устройствами на материнке всё понятно, разработчики всё уже прописали в BIOS.
Теперь я втыкаю PCI-плату и хочу прописать AML-код в таблицы ACPI. Как это сделать? Разбирать все таблицы? Если да, то как потом перезаписывать их уже в увеличенном виде...

Есть ли вообще такое понятие для PCI-устройств как ACPI-совместимое? И какие этапы нужно осуществить, чтобы оно хотя бы понимало, что его хотят перевести в спящий режим и наоборот.

Я понимаю, что надо объявить переменные, определённые методы (на ASL, скомпилировать в AML)... Но как это поместить в таблицы???
Нужно ли будет потом писать какой-то ACPI-драйвер в операционной системе или справится родной системный драйвер.

1. вы злой ... и лишили меня сна (своим вопросом)
2. я люблю подобные вопросы

глупо пересказывать книгу, читайте сами, а именно:
"Building the Power-Efficient PC"
A Developer's Guide to ACPI Power Management
Jerzy Kolinski, Ram Chary, и пр.
ISBN 0-9702846-8-3 INTEL PRESS, 230 стр.

но если в двух словах то архитектура(как я люблю это слово!) требует от PCI устройства
для поддержки ею ACPI


- PCI 2.2 Specification (поддержка пина для "wake events")
если система должна/может проснуться от вашего устройства
- PCI PM Rev 1.1 ( поддержка "power management register"
в конфигурационном пространстве вашего PCI устройства )
если ваше устройство будет "погружаться" в энергосберегающий анабиоз (из D0 в D1 ... D3)

а операционка соответствующий драйвер вашего PCI устройства,
т.е. драйвер как всегда , только с поддержкой засыпания/пробуждения в/из S1...S4 + D0 .. D3
в книге приводятся примеры для Win и Linux

книга обращает внимание, что иногда "resume latency is very long" т.е. пробуждение из S4,
но ваше устройство и драйвер должны это терпеть и переваривать

в ACPI таблицы и методы вам лезть не надо, все должно быть автоматически при правильной поддержке
вами "power management register" и "wake events" пина

как то так ...

ЗЫ: поспрашивайте еще на electronix.ru/forum/
зы2: книгу лучше конечно купить/найти, вы ведь не для себя лично интересуетесь?
но я могу и мобильником переснять (зрелище будет не для слабонервных)
PS3:"оно хотя бы понимало, что его хотят перевести в спящий режим и наоборот." спящий режим
спящему режиму рознь, не надо путать сон системы (S1/S3/S4)со сном устройства (D1/D2/D3),
требуется поддержка и того и другого

... иди туда, незнаю куда, возьми то, не знаю что ... (C) Русские народные сказки

Цитата:
спящий режим
спящему режиму рознь, не надо путать сон системы (S1/S3/S4)со сном устройства (D1/D2/D3),
требуется поддержка и того и другого

а разве для устройства S1-S5 существуют? Это же вроде для системы в целом...
А для устройств D0-D1.

давайте тогда вспомним про "waking the system"(wake event) из S1/S5 ... его "обеспечивает" ваше PCI железо, или кто? но если логика работы не требует (как проснуться от события HDD?) про это можно и забыть;)

а вот D1/D3 обеспечиваются вашим драйвером c участием ACPI и по усмотрению/логике OS,
т.е.имеется четыре предопределенных метода для всех PCI устройств поддерживающих РМ Rev 1.1:
- Get Capabilites
- Set Power State
- Get Power Status
- Wake Up

... иди туда, незнаю куда, возьми то, не знаю что ... (C) Русские народные сказки

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей