Доступен Sound Open Firmware 2.0, набор открытых прошивок к DSP-чипам

Опубликован выпуск проекта Sound Open Firmware 2.0 (SOF), изначально созданного компанией Intel для ухода от практики поставки закрытых прошивок для DSP-чипов, связанных с обработкой звука. Впоследствии проект был переведён под крыло организации Linux Foundation и теперь разрабатывается с привлечением сообщества и при участии компаний AMD, Google и NXP. Проектом развивается SDK для упрощения разработки прошивок, звуковой драйвер для ядра Linux и набор готовых прошивок для различных DSP-чипов, для которых в том числе формируются бинарные сборки, заверенные цифровой подписью. Код прошивок написан на языке Си с ассемблерными вставками и распространяется под лицензией BSD.

Благодаря модульной структуре Sound Open Firmware может быть портирован на различные архитектуры DSP и аппаратные платформы. Например, среди поддерживаемых платформ заявлена поддержка различных чипов Intel (Broadwell, Icelake, Tigerlake, Alderlake и т.п.), Mediatek (mt8195), NXP (i.MX8*) и AMD (Renoir), комплектуемых DSP на базе архитектур Xtensa HiFi 2, 3 и 4. В процессе разработки может применяться специальный эмулятор или QEMU. Использование открытых прошивок для DSP позволяет более оперативно исправлять и диагностировать проблемы в прошивке, а также даёт пользователям возможность самостоятельно адаптировать прошивки для своих нужд, вносить специфичные оптимизации и создавать легковесные варианты прошивок, содержащие только необходимую в продукте функциональность.

Проектом предоставляется фреймворк для разработки, оптимизации и тестирования решений, связанных с обработкой звука, а также с реализацией драйверов и программ для взаимодействия с DSP. В состав входят реализации прошивок, инструментарий для тестирования прошивок, утилиты для преобразования ELF-файлов в образы прошивок, пригодные для установки на оборудование, отладочные инструменты, эмулятор DSP, эмулятор хост-платформы (на базе QEMU), инструменты для трассировки прошивок, скрипты на MATLAB/Octave для тонкой настройки коэффициентов для звуковых компонентов, приложения для организации взаимодействия и обмена данными с прошивкой, готовые примеры топологий обработки звука.

0_1640675339.png 0_1640676311.png

Проектом также развивается универсальный драйвер, который может применяться с устройствами, использующими прошивки на базе Sound Open Firmware. Драйвер уже входит в основной состав ядра Linux, начиная с выпуска 5.2 и поставляется под двойной лицензией — BSD и GPLv2. Драйвер отвечает за загрузку прошивки в память DSP, загрузку звуковых топологий в DSP, организацию работы звукового устройства для обращения к функциям DSP из приложений, предоставление точек для доступа приложений к звуковым данным, механизм IPC для взаимодействия между хост-системой и DSP, слой для обращения к аппаратным возможностям DSP через типовой API. Для приложений DSP c прошивкой Sound Open Firmware выглядит как обычное устройство ALSA, для управления которым можно использовать штатный программный интерфейс.

0_1640676535.png

Ключевые новшества в Sound Open Firmware 2.0:

  • Значительно повышена производительность функций копирования звуковых данных и сокращено число операций обращения к памяти. В некоторых сценариях обработки звука наблюдается сокращение нагрузки до 40% при сохранении прежнего качества звука.

  • Повышена стабильность работы на многоядерных платформах Intel (cAVS), в том числе обеспечена поддержка запуска динамических обработчиков на любом ядре DSP.
  • Для платформы Apollo Lake (APL) в качестве основы прошивки задействовано окружение Zephyr RTOS вместо XTOS. Уровень интеграции ОС Zephyr достиг паритета в функциональности для некоторых платформ Intel. Применение Zephyr позволяет значительно упростить и сократить код приложений Sound Open Firmware.

  • Реализована возможность использования протокола IPC4 для базовой поддержки захвата и воспроизведения звука на некоторых устройствах Tiger Lake (TGL), поставляемых с Windows.



Источник: http://www.opennet.ru/opennews/art.shtml? num=56420

© OpenNet