Можно ли по-прежнему маскировать линию A20 на Haswell и его преемниках? - PullRequest
7 голосов
/ 26 января 2020

Википедия цитирует это утверждение из руководства Intel

Функциональность A20M # используется в основном в старых операционных системах и не используется в современных операционных системах. На более новых процессорах Intel 64 A20M # может отсутствовать.

Это фраза, которая на самом деле есть в руководстве в настоящее время, но она неоднозначна:

  1. Имеет A20M# на самом деле относится только к булавке или ко всему маскирующему?
  2. Событие / прерывание A20M названо в описании многих инструкций (например, инструкции TXT GETSEC или VMX).

Что я знаю

Сам вывод A20M # пропал, его заменили на интерфейс VLW (Virtual Legacy Wire) в DMI. Протокол DMI достаточно богат, чтобы иметь сообщения для утверждения различных устаревших выводов:

PCH поддерживает сообщения VLW в качестве альтернативного метода передачи состояния следующих сигналов интерфейса устаревшей боковой полосы на процессор: • A20M # , INTR, SMI #, INIT #, NMI

Эта цитата взята из серии PCH 8 (эра Haswell).


На сегодняшний день PCH имеет функцию A20GATE Pass-Through.
Когда PCH настроен для захвата доступа к устаревшим портам ввода-вывода 8042 (60h, 64h) и доставки вместо SMI (для PS2-симуляции USB-клавиатур / мышей), он может опционально разрешить линии A20 активировать последовательность go без захвата.

В зависимости от того, как сконфигурирован PCH, это позволяет либо E C (мобильные устройства), либо чипу SuperIO (настольные ПК) быть целью последовательности команд.


Как ни странно, таблица данных PCH серии 8 (эпоха Хасвелла) сообщает:

Примечание: A20M # функциональность не поддерживается.

В Раздел LP C (к которому подключены EC / SuperIO), однако это может означать только то, что сам PCH не эмулирует вентиль A20 и внешний чип (E C или SuperIO) должен справиться с этим.

В этом случае PCI должен иметь вывод, который должен быть подтвержден внешним чипом. В данных не упоминалось ни одного.

Однако я нашел схему c моего предыдущего ноутбука Haswell где-то на китайском сайте, и схема c показывает, что штифт (фактически шар) AN10 (он же TP14) используется как входной контакт A20M:

PCH input A20M pin

Голубой прямоугольник слева помечен как LYNX-POINT-DH82LPMS_BGA695 .

Другой конец сигнала GATEA20 поступает от E C (как и ожидалось):

EC GATEA20 output

IT8586E / AX - это E C от Lenovo (по-видимому).

Таким образом, линия A20 все еще может быть замаскирована на платформах Haswell , если я неправильно истолковал схемы.

Таким образом, таблицы данных не являются полными относительно аспекта A20M. Вероятно, в Intel B IOS Writer Guide есть все.


Что я хочу знать

Можно ли отключить линию A20 хотя бы на одной платформе Haswell? Как насчет Skylake и его преемников?

Что я сделал

Я написал простой старый загрузчик, который проверяет, включена ли линия A20, и пытается отключить ее :

  1. Если линия A20 отключена, проверка заканчивается. Функциональность шлюза A20 существует на тестовой платформе.
  2. В противном случае он запрашивает B IOS о поддерживаемых методах шлюза A20 и затем просит отключить линию A20 (Я доверял OSDev в отношении номенклатуры функций, то есть, включения и отключения чего-то, поэтому я надеюсь, что вызов отключает линию A20 , а не маскирование)
  3. In Если B IOS вернул ошибку, программа отключает линию A20 через KB C, с помощью метода fast a20 и метода port 0eeh.
  4. Снова проверьте состояние линии A20. Если он все еще включен, отключите его вручную (если это не было сделано ранее) и протестируйте его еще раз.

Когда я запустил это на своем ноутбуке Skylake, B IOS вернул, что поддерживается только быстрый метод A20, и не сообщил об ошибке, но линия A20 все еще была включена. Даже если вручную отключить его, линия A20 все еще была включена.

Я пришел к выводу, что линию A20 нельзя отключить на Skylake, т.е. она больше не существует.

1 Ответ

3 голосов
/ 27 января 2020

Похоже, что есть хотя бы одна платформа Skylake, в которой линия A20 больше не может быть отключена.

Помимо моего тестирования, я выбрал первую схему c Ноутбук Skylake, который я смог найти в Интернете ( Acer Swift SF314-51 ):

A20GATE signal connection

То, что справа 1015 * - это E C, у которого A20GATE подключен / подключен до + 3VS.
Я не очень знаком с символами в этой схеме c, но это единственные Следы A20GATE присутствуют, нет связи с PCH.

Учитывая, что (согласно таблицам данных) PCH не поддерживает эмуляцию шлюза A20, это кажется ярким свидетельством в пользу отсутствия маскирующей функции A20 на этой платформе .

Эта аргументация действительна если я правильно понял схемы c и только доказывает, что существует последних платформ x86, где маскирование A20 не ' больше не существует.


Я оставлю этот вопрос без ответа, пока кто-нибудь не придет с более полным ответом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...