Доступний Sound Open Firmware 2.2, набір відкритих прошивок до DSP-чіпів

Опубліковано випуск проекту 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 2.2, набір відкритих прошивок до DSP-чіпів
Доступний Sound Open Firmware 2.2, набір відкритих прошивок до DSP-чіпів

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

Доступний Sound Open Firmware 2.2, набір відкритих прошивок до DSP-чіпів

Ключові нововведення в 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 без застосування специфічного драйвера).

Джерело: opennet.ru

Додати коментар або відгук