Как я должен получить доступ к вводу / выводу ACPI port / memory-map, выставленному BIOS правильно из ядра Linux? - PullRequest
0 голосов
/ 04 апреля 2019

Я пишу драйвер ACPI в ядре Linux, но едва мог найти какую-либо полезную ссылку.

После декомпиляции файла acpidump dump DSDT.dat в .dsl я вижу, что оборудование включает в себя порт ввода-вывода изDevice() раздел, он также имеет функцию _CR для настройки ресурса.Порт ввода / вывода совпадает с тем, что я вижу из /proc/ioport, аппаратное обеспечение также имеет адрес MMIO, зарезервированный в /proc/iomem.

Это может звучать глупо, но у меня нет особого доступа к спецификации оборудования, хотяЯ должен написать драйвер ...

Я уверен, что при чтении из I/O port или (MMIO + offset) должны быть получены некоторые конкретные значения.Однако я не могу прочитать «правильное» значение, используя семейство ioread.Я также попытался вызвать request_mem_region() и request_region() (хотя я не думаю, что должен, потому что он уже зарезервирован BIOS или ACPI из /proc/iomem и /proc/ioport), прежде чем получить доступ к этим портам в драйвере ACPI, но этоне имеет никакого значения.

Есть ли способ проверить, правильно ли BIOS выставляет порты ввода / вывода, адрес MMIO правильно?Или я пропустил что-то важное для настройки, прежде чем получить доступ к этим адресам?

И, честно говоря, никто не знает, будет ли аппаратное обеспечение ACPI работать в Ubuntu, но каким-то образом Ubuntu правильно получает acpidump, поэтому это выглядит возможным.

Любая идея приветствуется!

...