На ноутбуке есть 4 COM-порта(в составе чипа SCH3114), они, как и положено, доступны через адреса ввода-вывода 0x3f8, 0x2f8 и т.д. Проблема в том, что под Linux, MS DOS и т.д. один из портов не работает. Читаю его регистры по соответствующему адресу ввода-вывода, возвращается 0xff. С остальными тремя портами всё нормально. А в Windows 7 этот порт работает. Скачал утилиту под Windows, которая позваляет читать данные напрямую из любых адресов ввода-вывода. Когда Windows 7 не использует COM-порт, из всех его регистров читается 0xff, как только Windows начинает его использовать(например, эмулятор терминала), регистры читаются нормально.
Я подозреваю, что это из-за того, что Windows 7 управляет питанием портов через ACPI. Проблемный порт видимо по умолчанию выключен.
Есть ли какие-нибудь демоны и утилиты под Linux для управления питанием устройств через ACPI? Или единственный выход - писать программу для ACPI на AML?