поиск по сайту
Особенности совместимости Аккорд-АМДЗ и современных СВТ

Особенности совместимости Аккорд-АМДЗ и современных СВТ

Синякин С.А.,
Россия, ОКБ САПР

Термин «совместимость» в области вычислительной техники имеет, как минимум, три различных толкования — аппаратная совместимость, программная совместимость и совместимость программ. Поскольку Аккорд-АМДЗ является программно-аппаратным комплексом, то стоит рассмотреть 2 вида совместимости — аппаратную и программную.

В рамках данной статьи под аппаратной совместимостью мы будем понимать способность аппаратной части (платы контроллера АМДЗ) работать на различных компьютерах как PCI/PCIe-устройство, без учета функционального назначения, а под программной — способность ПО АМДЗ выполнять свои функции на различных компьютерах.

Поскольку ПО Аккорд-АМДЗ на данный момент, к сожалению, абсолютно несовместимо с архитектурами, отличными от x86/x86-64, то под «различными компьютерами» мы будем понимать «IBM PC-совместимые» СВТ в современном понимании. Т.е. предполагается, что при построении такого компьютера используется определенный набор стандартов — архитектура микропроцессора x86 (IA-32) или x86-64 (AMD64), наличие шин PCI и/или PCI-Express (стандарты PCI 2.х-3.x и PCI-Express 1.x-3.x), встроенное ПО типа PC BIOS (стандарт de facto, расширенный стандартами BIOS Boot Specification, Plug and Play BIOS Specification, BIOS Enhanced Disk Drive Specification, «El Torito» Bootable CD-ROM Format Specification и др.) или UEFI (стандарт Unified Extensible Firmware Interface Specification версий от 2.0 и выше).

Складывается впечатление, что никаких проблем не должно быть — следуй стандартам и все должно работать. Тем не менее, практика показывает, что проблемы есть, и мы попытаемся выяснить, почему.

В первую очередь рассмотрим проблемы аппаратной совместимости. Физически контроллеры Аккорд-АМДЗ вставляются в разъем шины PCI или PCI-Express (miniPCI-Express), поэтому аппаратная совместимость — это совместимость с шиной. Здесь можно выделить 2 уровня:

  • физический (разъем, размеры, питание, временные параметры сигналов);
  • логический (логика работы интерфейса шины).

Стандарты PCI/PCI-Express достаточно подробно описывают параметры устройства (как физические, так и логические). Но реально существуют как допуски и диапазоны, определенные стандартом, так и отклонения, вызываемые разбросом параметров микросхем или особенностями разводки печатной платы. Иногда в конкретной модели или даже конкретной системе происходит сложение погрешностей. Например, на промышленных компьютерах производства Advantech для работы контроллера Аккорд-5MX через переходник CompactPCI-PCI потребовалась доработка (установка конденсатора по линии CLK).

Иногда производители банально нарушают стандарты. Достаточно ярким примером служит некий вполне серийный ноутбук, на разъеме miniPCIe которого отсутствует напряжение питания 1.5V.

Примером логической несовместимости может служить история с сигналом четности шины PCI. Первая версия прошивки контроллера Аккорд-5MX не синхронизировала вывод данных от микропроцессора на шину PCI с тактированием шины. Что интересно, оказалось, что большинство СВТ не проверяют четность на шине как минимум при установках по умолчанию, проблема проявилась на серверах. Еще один пример — ранние версии Аккорд-5.5 PCI-Express использовали микросхему моста PCI-PCI-Express PLX PEX-8111. Оказалось, что в PCI-конфигурации моста по умолчанию производителем микросхемы была допущена ошибка, которая вызывала BSOD на ОС от Vista и новее при загрузке драйвера шины PCI (pci.sys). PLX выпустила Errata с рекомендациями по конфигурированию моста, и как минимум несколько сотен плат пришлось дорабатывать путем прошивки EEPROM с конфигурацией моста. Современные Аккорд-5.5 PCI-Express выпускаются с мостом PEX-8112, который не имеет этой проблемы.

Особенно остро стоят вопросы аппаратной совместимости с ноутбуками. Обычно ноутбук имеет 1 слот miniPCIe (причем, очень часто формата half-size), предназначенный для установки Wi-Fi-карты. Список Wi-Fi-карт, официально совместимых с конкретной моделью, как правило, невелик, да и зачастую известен только самому производителю. Кроме того, фактически до старта ОС Wi-Fi-карта не нужна, поэтому для ускорения загрузки встроенное ПО (PC BIOS или UEFI) ноутбука может не полностью инициализировать плату в слоте miniPCIe (например, игнорировать наличие на плате расширения BIOS).

С точки зрения физической совместимости — ОКБ САПР единственная, насколько я знаю, компания в России, производящая «электоронные замки» в формате miniPCIe half-size.

Некоторые производители ноутбуков и моноблоков практикуют использование т.н. white-list (списка разрешенных устройств) и при установке платы, параметров которой нет в этом списке, на этапе старта ноутбука мы получаем сообщение «установлено недопустимое устройство» и дальнейшая загрузка системы блокируется.

Происходит также развитие стандартов, но как раз здесь все складывается удачно. При разработке новых версий шин обеспечивается совместимость с прошлыми версиями. Так, достаточно незаметно произошли смены версии шины PCI от 2.0 к 3.0, развитие PCI-Express от 1.0 до 3.0 тоже пока не приносит проблем. К слову сказать, контроллеры Аккорд 5.0, созданные более 10-ти лет назад вполне успешно работают в современных материнских платах.

Проблемы аппаратной совместимости — это проблемы не только Аккорд-АМДЗ. Ведь не зря серьезные производители (IBM, HP и др.) публикуют списки совместимого оборудования, даже производители обычных материнских плат публикуют списки протестированных модулей памяти. В сети Интернет можно найти ставшие уже классическими примеры аппаратной несовместимости:

  • проблемы с AGP-видеокартами NVidia на чипсетах VIA и Ali;
  • проблемы инициализации HDD с интерфейсом SATA-II микросхемой VIA VT8237
  • проблемы со звуковыми картами Live! на чипсетах VIA;

и др. Какие-то из этих проблем решались обновлениями BIOS/прошивок/драйверов, а какие-то так и ушли в историю нерешенными.

Перейдем к вопросу программной совместимости. Учитывая принципы работы ПО АМДЗ, мы выделим 3 основных момента, в которых важна программная совместимость:

  1. совместимость принципа перехвата управления;
  2. совместимость при работе встроенной ОС и ПО АМДЗ (DOS- и Linux-версии);
  3. совместимость принципа продолжения загрузки основной ОС.

1. Совместимость принципа перехвата управления

Принцип перехвата управления АМДЗ заключается в установке собственного обработчика для отладочного прерывания аппаратной контрольной точки при передаче управления адресу памяти 0000:7C00H (именно на этот адрес передается управление из BIOS после считывания загрузочного сектора с какого-либо носителя). Таким образом, перехват момента загрузки операционной системы происходит в два этапа. Во время исполнения процедуры инициализации происходит установка аппаратной контрольной точки на передачу управления адресу 0000:7C00H и установка в качестве обработчика прерывания по контрольной точке процедуры, расположенной в Аккорд-BIOS. Далее происходит возврат из процедуры инициализации. После считывания загрузочного сектора с какого-либо загрузочного носителя в память по адресу 0000:7C00H и успешной проверки сигнатуры загрузочного сектора происходит передача управления на этот адрес. При этом при передаче управления коду загрузчика возникнет прерывание по аппаратной контрольной точке и будет вызван ранее установленный обработчик этого прерывания, расположенный в Аккорд-BIOS. Таким образом, будет получено управление непосредственно перед загрузкой операционной системы.

Практика показала, что этот принцип достаточно надежен и универсален для PC BIOS. Тем не менее, детали реализации не раз уточнялись. Например, встречаются BIOS, которые в процессе работы затирают отладочные регистры CPU (используемые для установки контрольной точки) и сейчас для таких BIOS работает алгоритм восстановления нужного состояния регистров.

Известной проблемой является несовместимость этого принципа с UEFI. Спецификация UEFI не предполагает заранее известного фиксированного адреса, на который можно установить контрольную точку. На данный момент совместимость достигается тем, что в состав UEFI входит Compatibility Support Module (CSM), который при определенных условиях обеспечивает процесс загрузки ОС в режиме Legacy. Над разработкой совместимого с UEFI принципа перехвата ОКБ САПР ведет работы.

2. Совместимость при работе встроенной ОС и ПО АМДЗ

После получения управления перед загрузкой операционной системы из flash-памяти контроллера загружается встроенная ОС (DOS или Linux), в которой запускается ПО АМДЗ. В принципе, DOS-версия ПО АМДЗ является 32-разрядной надстройкой над простейшим DOS (AcDOS), который обеспечивает только загрузку и запуск исполняемых файлов в определенной последовательности. Здесь как раз минимум проблем совместимости, т.к. практически весь процесс идет под полным контролем ПО АМДЗ в замкнутой среде. Единственным потенциально проблемным местом является разбор файловой системы, т.к. при этом происходит взаимодействие с сервисами BIOS и анализ структур файловой системы.

И снова вспоминаем про UEFI. Работа DOS-версии основана на вызовах сервисов BIOS (ввод информации, вывод изображения, чтение накопителей), и в случае UEFI работа возможна только в том случае, если при работе UEFI был запущен CSM. Кроме того, замечена тенденция не уделять большого внимания правильности реализации программных Legacy-интерфейсов BIOS, что объяснимо — современным ОС они практически не нужны.

В случае Linux-версии ПО АМДЗ в первую очередь стоит проблема совместимости собственно нашей сборки ОС Linux с широким кругом различных конфигураций компьютеров. Разработчиками ОС Linux очень много сделано для повышения стабильности и совместимости, но все же задачи запуска ядра, графической оболочки и работы с дисковой подсистемой имеют проблемы с совместимостью. Для минимизации проблем ядро собрано с минимальной поддержкой не нужных для выполнения основных функций АМДЗ опций (отключена поддержка многопроцессорности, ACPI и т.п.). При возможности используются универсальные драйвера (видеодрайвер VESA, драйвера IDE и AHCI). Но сложность практически полноценной ОС несравнима со сложностью простейшей версии DOS, поэтому все же могут возникать проблемы совместимости именно ОС с определенными конфигурациями СВТ.

Тем не менее, на данный момент Linux-версия в целом стабильно работает практически на любых конфигурациях обычных офисных компьютеров. Из проблем совместимости актуальными остаются:

  • работа с дисковой подсистемой на серверных конфигурациях, в которых обычно используются RAID-контроллеры;
  • невозможность работы с USB-устройствами (клавиатурой, мышью) от момента завершения работы ОС АМДЗ и до загрузки драйверов USB-стека основной ОС;
  • невозможность продолжения загрузки с USB-устройств (при входе администратором).

Над решением этих проблем ведутся работы.

Возвращаясь к вопросу совместимости с UEFI надо сказать, что Linux-версия более готова к работе в среде UEFI, хотя доработки, конечно же, потребуются.

3. Cовместимость принципа продолжения загрузки

В случае DOS-версии корни возможных проявлений несовместимости в том, что алгоритм определения загрузочного устройства для продолжения загрузки основан на информации, предоставляемой сервисами PC BIOS. При входе пользователем загрузчик ОС в АМДЗ должен проверить, не является ли первый жесткий диск съемным устройством, при входе администратором — правильно определить устройство, с которого началась загрузка до перехвата управления. Но производители встроенного ПО довольно вольно обходятся со спецификациями в этой области (в частности, BIOS Enhanced Disk Drive Specification и «El Torito» Bootable CD-ROM Format Specification), что может приводить к ошибкам при работе загрузчика. В частности, этим «грешит» встроенное ПО фирмы Fujitsu, не менее 3-х исправлений в загрузчике было связано с необъяснимой с точки зрения логики работой сервисов BIOS в части Bootable CD-ROM Specification.

В случае Linux-версии загрузчик ОС тоже использует сервисы PC BIOS. И здесь есть известные проблемы, связанные с тем, что после работы полноценной ОС со своими драйверами устройств (USB-стека и дисковой подсистемы), работа этих сервисов нарушается или может быть нарушена. В частности, это проблема невозможности загрузки с USB-устройств и загрузки с некоторых типов RAID-контроллеров.

Надо отметить, что как раз в случае продолжения загрузки будущая совместимость с UEFI может практически автоматически решить эти вопросы.

ОКБ САПР ведет непрерывную работу по обеспечению наиболее полной совместимости своих изделий с современными средствами ВТ. Чтобы «держать руку на пульсе», мы постоянно проводим тестирования с новыми моделями серверов, ноутбуков, моноблоков, стараемся выявить возможные проблемы и решить их.


ФорумФорум
Форум ОКБ САПР
Вопросы специалистовВопросы специалистов
Вопросы, которые нам присылают, и наши ответы на них