Публикувана версия 2.0 на проекта Sound Open Firmware (SOF), първоначално създаден от компанията Intel, с цел да замени практиката на предоставяне на затворени фърмуери за DSP-чипове, свързани с обработка на звук. Впоследствие проектът премина под управлението на организацията Linux Foundation и сега се разработва с участието на общността и в партньорство с компании като AMD, Google и NXP. Проектът включва SDK за опростяване на разработката на фърмуери, звуков драйвер за Linux ядрото и набор от готови фърмуери за различни DSP-чипове, за които в допълнение се генерират бинарни пакети, удостоверени с цифрови подписи. Кодът на фърмуерите е написан на C с асемблерни вставки и се разпространява под лиценз 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 с фърмуер Sound Open Firmware изглежда за приложенията като обикновено устройство ALSA, за управлението на което може да се използва стандартният програмируем интерфейс.

Ключови нововъведения в 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
