Доступний 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 для тонкого настроювання коефіцієнтів для звукових компонентів, програми для організації взаємодії та обміну даними з прошивкою, готові приклади топологій обробки звуку.

Доступний Sound Open Firmware 2.0, набір відкритих прошивок до DSP-чіпів
Доступний Sound Open Firmware 2.0, набір відкритих прошивок до 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.0, набір відкритих прошивок до 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 без застосування специфічного драйвера).

Джерело: opennet.ru

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