The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

03.07.2022 13:20

Опубликован выпуск проекта Sound Open Firmware 2.2 (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 для тонкой настройки коэффициентов для звуковых компонентов, приложения для организации взаимодействия и обмена данными с прошивкой, готовые примеры топологий обработки звука.

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

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

  • Компонент для работы с внешними библиотеками кодеков переименован из codec_adapter в module_adapter и приведён к соответствию API модулей обработки сигналов, что позволит использовать код из Windows-обработчиков без его изменения.
  • Объявлен устаревшим API Frag, отказ от которого позволил повысить производительность каждого компонента примерно на 1 MCPS (миллион тактов в секунду).
  • Добавлен API Frame, выполняющий упреждающее вычисление размеров блоков для обработчиков на базе инструкций SIMD и без них. Оптимизация позволила увеличить производительность примерно на 0.25 MCPS.
  • Добавлен новый модуль смешивания с поддержкой HiFi4 для сокращения или увеличения числа звуковых каналов в потоке.
  • Расширены возможности использования в качестве основы прошивки окружения Zephyr RTOS вместо XTOS. Применение Zephyr позволяет значительно упростить и сократить код приложений Sound Open Firmware. В новой версии добавлена поддержка родных для Zephyr API для ведения логов и внесения задержек. В следующем выпуске ожидается полная встроенная поддержка Zephyr.
  • Расширена возможность использования протокола IPC4 для захвата и воспроизведения звука на устройствах с ОС Windows (поддержка IPC4 позволяет из Windows взаимодействовать с DSP на базе прошивок Sound Open Firmware без применения специфичного драйвера).


  1. Главная ссылка к новости (https://www.sofproject.org/blo...)
  2. OpenNews: Движение по включению проприетарных прошивок в поставку Debian
  3. OpenNews: Компания Intel открыла код прошивки блока PSE для чипов Elkhart Lake
  4. OpenNews: Учреждён фонд OSFF для координации разработки открытых прошивок
  5. OpenNews: Компания Framework Computer открыла код прошивки для ноутбуков
  6. OpenNews: Intel развивает новую открытую архитектуру прошивок Universal Scalable Firmware
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/57446-sound
Ключевые слова: sound, firmware, dsp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (10) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, Владимир (??), 16:50, 03/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Zephyr API для ведения логов

    Я пишу свой апи для работы с метаданными. Надеюсь многое на этом заработать на старость ...

     
     
  • 2.13, Аноним (13), 12:22, 04/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    просто это для тебя это что-то сложное и отбирающие время, а для этих ребят это детская забава
     

  • 1.5, Аноним (5), 16:58, 03/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А как же раст!?
     
     
  • 2.7, Владимир (??), 18:18, 03/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А как же раст!?

    Скастуйте Фрактала. Он тот еще раст ...

     

  • 1.6, QwertyReg (ok), 17:02, 03/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    > Код прошивок написан на языке Си с ассемблерными вставками

    Понятно, то есть ждём новостей в духе "Особым образом подготовленный аудиофайл вызывает переполнение буфера, позволяющее получить доступ к локальной машине с привилегиями ядра" и пр.

     
     
  • 2.8, Ooiiii (?), 18:41, 03/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    "программа выполнила недопустимую операцию и будет закрыта"
     
  • 2.9, Оно ним (?), 21:16, 03/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Издалека зашёл, да?
     
  • 2.12, Аноним (12), 02:02, 04/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Расту даже с отключенной stdlib и паниками до минимализма Си после компиляции как раком до Китая. Ладно еще драйверы на нем писать, но прошивки на расте ща получаются жырными жесть.
     
     
  • 3.17, Аноним (17), 16:43, 06/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А вы докиньте памяти, ядер и гигагерцев. И на x86 переведите эмбеддед.
     

  • 1.16, InuYasha (??), 10:58, 05/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эх, а в китайских декодерах чипы шкурят - и не узнать, что там вообще такое (
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру