Задать вопрос
@min4er

Как EFI влияет на работу железа?

Приветствую!
Недавно с удивление обнаружил, что один и тот же самый комп ведёт себя по-разному в режиме LEGACY и EFI.
Имеется самописный софт, который работает с видеокамерами. Он основан на каком-то опенсорсном драйвере видеозахвата. Так вот, сей драйвер, стоит переключиться в EFI режим, перестаёт распознавать адресацию плат захвата. Гонит все обращения в 0xFFFFFF и, понятно, ничего не работает. Честно говоря, я всегда полагал, что EFI - то же самое, что и BIOS, только с поддержкой GPT, но, видимо, это не так.
Как говорится, any ideas, guys?
  • Вопрос задан
  • 981 просмотр
Подписаться 2 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
Очень влияет.
UEFI это не просто кусок какой-то прошивки в мелкой микрухе а вполне можно расценивать как вторую ОС, в нормальном режиме она берёт на себя большую часть инициализации оборудования, проверки ключей подписи прошивок в тех-же PCI устройствах и вообще дофига чего там может быть натыкано и зависит от фантазии разработчика МП.
Современное железо уже разрабатывается с учётом требований UEFI к железкам, старые девайсы соответственно не в курсе веяний моды да и врятли когда либо получат обновление прошивок для коректной работы, тут даже не жадность производителя старой железки и нежелание заморачиваться а вполне себе архитектурные заморочки.

На десктопных матерях как правило выбор только из UEFI/Legasy для всего скопом, в серверных, часто можно встретить конфигурацию совместимости для каждого устройства и даёт возможность отключить для девайса вмешаельство UEFI модулей в его работу.

P.S. Не разбирался глубоко в вопросе "как заставить работать", просто нет такой необходимости.
Ответ написан
Комментировать
@min4er Автор вопроса
Ответ на вопрос в моём случае таков:
В режиме LEGACY "unknown" устройства получали "авансом" IRQ. При загрузке в режиме UEFI - соответственно, не получали. Посему, драйвер, реализованный как service, не видя IRQ гнал обращения куда-то в сторону NULL.
Решение - инициализация устройства любым драйвером, дабы оно перестало быть "unknown" и получило прерывание. Затем, с ним работает универсальный драйвер-сервис, по низкому уровню, игнорируя назначенные устройству в диспетчере "дрова".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы