В выпуск новой версии проекта Sound Open Firmware 2.2 (SOF), изначально созданная Intel для отказа от практики поставки закрытых прошивок для микросхем DSP, связанных с обработкой звука.
Впоследствии проект был передан под крыло Linux Foundation и сейчас развивается при участии сообщества и при участии AMD, Google и NXP.
Проект разрабатывает SDK для упрощения разработки прошивки, звуковой драйвер для ядра Linux и готовый набор прошивок для различных DSP-чипов, для которых, в том числе, генерируются бинарные сборки с цифровой подписью.
Благодаря своей модульной структуре, Звуковая открытая прошивка может быть перенесена на различные архитектуры DSP и аппаратные платформы.. Например, среди поддерживаемых платформ поддержка различных чипов Intel (Broadwell, Icelake, Tigerlake, Alderlake и т. д.), Mediatek (mt8195), NXP (i.MX8*) и AMD (Renoir), оснащенных Xtensa на базе DSP. Заявлены HiFi архитектуры 2, 3 и 4.
Во время разработки, можно использовать специальный эмулятор или QEMU. Использование открытых прошивок для DSP позволяет быстрее устранять неполадки и диагностировать проблемы с прошивкой, а также дает пользователям возможность самостоятельно адаптировать прошивку под свои нужды, выполнять целевые оптимизации и создавать облегченные версии прошивок, содержащие только необходимый функционал продукта.
Проект предоставляет основу для разработки, оптимизации и тестирования решений. связанных с обработкой звука, а также созданием драйверов и программ для взаимодействия с DSP.
Эль Пакет включает реализации прошивки, инструменты тестирования прошивки, утилиты для преобразования ELF-файлов в образы прошивок, пригодные для установки на оборудование, средства отладки, эмулятор DSP, эмулятор хост-платформы (на основе QEMU), средства трассировки прошивок, скрипты для MATLAB/Octave для тонкой настройки коэффициентов аудиокомпонентов, приложения для организации взаимодействия и обмена данными с прошивкой, готовые примеры топологий обработки звука.
В рамках проекта также разрабатывается универсальный драйвер, который можно использовать с устройствами с прошивкой на основе Sound Open Firmware.
Контроллер Он уже является частью ядра Linux, начиная с версии 5.2. и поставляется под двойной лицензией — BSD и GPLv2. Драйвер отвечает за загрузку встроенного программного обеспечения в память DSP, загрузку аудио топологий в DSP, запуск аудиоустройства (отвечает за вызов функций DSP из приложений) и предоставление точек доступа приложений к устройствам DSP, аудиоданным.
Контроллер также предоставляет механизм IPC для связи между хост-системой и DSP.и слой для доступа к аппаратным возможностям DSP через общий API. DSP с Sound Open Firmware воспринимает приложения как обычное устройство ALSA, которым можно управлять через стандартный программный интерфейс.
Основные новые возможности Sound Open Firmware 2.2
В этой новой версии отмечено, что название компонента было изменено для работы с библиотеками кодеков вне codec_adapter в module_adapter и согласованы с API модулей обработки сигналов, что позволит вам использовать код драйвера Windows без его изменения.
Устарел API-интерфейс Frag, который повысил производительность каждого компонента примерно на 1 MCPS (миллион тактов в секунду).
Также подчеркивается, что добавлен API фреймов, который предварительно вычисляет размеры блоков для драйверов на основе инструкций SIMD и без них. Оптимизация позволила увеличить производительность примерно на 0,25 MCPS.
В дополнение к этому также подчеркивается, что расширена возможность использования среды Zephyr RTOS вместо XTOS в качестве основы для прошивки. Zephyr значительно упрощает и сокращает код приложений Sound Open Firmware. В новой версии добавлена собственная поддержка Zephyr API для ведения журнала и задержек. Полная встроенная поддержка Zephyr ожидается в следующем выпуске.
Кроме того, расширена возможность использования протокола IPC4 для захвата и воспроизведения звука на устройствах с ОС Windows (поддержка IPC4 позволяет вам взаимодействовать с DSP на основе Windows Sound Open Firmware без использования специального драйвера).
И добавлен новый модуль нисходящего микширования, совместимый с HiFi4, для уменьшения или увеличения количества аудиоканалов в потоке.
Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.