Ohun Open Firmware 2.0 wa, eto famuwia ṣiṣi fun awọn eerun 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 для тонкой настройки коэффициентов для звуковых компонентов, приложения для организации взаимодействия и обмена данными с прошивкой, готовые примеры топологий обработки звука.

Ohun Open Firmware 2.0 wa, eto famuwia ṣiṣi fun awọn eerun DSP
Ohun Open Firmware 2.0 wa, eto famuwia ṣiṣi fun awọn eerun DSP

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

Ohun Open Firmware 2.0 wa, eto famuwia ṣiṣi fun awọn eerun DSP

Ключевые новшества в 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 (поддержка IPC4 позволяет из Windows взаимодействовать с DSP на базе прошивок Sound Open Firmware без применения специфичного драйвера).

orisun: opennet.ru

Fi ọrọìwòye kun