Udgaven af projektet Sound Open Firmware 2.0 (SOF), oprindeligt skabt af Intel for at overvinde praksis med at levere lukkede firmware til DSP-chips relateret til lydbehandling. Senere blev projektet overført til Linux Foundation og udvikles nu med involvering af samfundet samt virksomheder som AMD, Google og NXP. Projektet udvikler et SDK til at forenkle firmwareudviklingen, en lyddriver til Linux-kernen og en samling af færdige firmwaren til forskellige DSP-chips, som også inkluderer binære builds, der er verificeret med digitale signaturer. Koden til firmwaren er skrevet i C med assembly-indlæg og distribueres under BSD-licensen.
Takket være den modulære struktur kan Sound Open Firmware porteres til forskellige DSP-arkitekturer og hardwareplatforme. For eksempel er der støtte for en række Intel-chips (Broadwell, Icelake, Tigerlake, Alderlake osv.), Mediatek (mt8195), NXP (i.MX8*) og AMD (Renoir), der er udstyret med DSP baseret på Xtensa HiFi 2, 3 og 4-arkitekturer. Under udviklingen kan en speciel emulator eller QEMU anvendes. Anvendelsen af åbne firmware til DSP muliggør hurtigere fejlretning og diagnosticering af problemer i firmwaren, samt giver brugerne mulighed for selv at tilpasse firmwaren til deres behov, lave specifikke optimeringer og skabe letvægtsvarianter af firmwaren, der kun indeholder den nødvendige funktionalitet i produktet.
Projektet leverer et framework til udvikling, optimering og test af løsninger relateret til lydbehandling, samt til oprettelse af drivere og programmer til interaktion med DSP. Det omfatter implementeringer af firmware, værktøjer til test af firmware, værktøjer til at konvertere ELF-filer til firmware- billeder, der er egnet til installation på udstyr, debuggingsværktøjer, DSP-emulator, emulator til værtplattformen (baseret på QEMU), værktøjer til firmware-tracing, MATLAB/Octave scripts til finjustering af koefficienter til lydkomponenter, applikationer til at organisere interaktion og dataudveksling med firmwaren, samt færdige eksempler på lydbehandlingstopologier.


Projektet udvikler også en universel driver, som kan anvendes med enheder, der benytter firmwares baseret på Sound Open Firmware. Driveren er allerede inkluderet i den primære Linux-kerne fra version 5.2 og leveres under en dobbeltlicens — BSD og GPLv2. Driveren er ansvarlig for indlæsning af firmware til DSP's hukommelse, indlæsning af lydtopologier i DSP'en, organisering af lydens funktionalitet (ansvarlig for at kommunikere med DSP-funktioner fra applikationer) og giving applikationer adgang til lyddata. Driveren tilbyder også en IPC-mekanisme til interaktion mellem værtsystemet og DSP'en, samt et lag til at tilgå DSP'ens hardwarekapaciteter via et standard API. DSP’en med Sound Open Firmware ser ud for applikationer som en almindelig ALSA-enhed, som kan styres ved hjælp af den almindelige programmeringsgrænseflade.

Nøgleinnovationer i Sound Open Firmware 2.0:
- Der er betydeligt forbedret ydeevnen for kopiering af lyddata, og antallet af hukommelsesadgangsoperationer er reduceret. I nogle scenarier for lybehandling ses et fald i belastningen på op til 40%, mens den tidligere lydkvalitet opretholdes.
- Stabiliteten er forbedret på multikernede Intel-platforme (cAVS), herunder understøttelse af at køre behandlere på enhver DSP-kerne.
- For Apollo Lake (APL)-platformen er Zephyr RTOS-miljøet i brug som basis for firmwaren i stedet for XTOS. Integrationsniveauet for Zephyr OS har nået paritet med funktionaliteten for visse Intel-platforme. Anvendelse af Zephyr muliggør væsentlig forenkling og reduktion af koden i applikationer til Sound Open Firmware.
- Muligheden for at bruge IPC4-protokollen er implementeret for grundlæggende støtte til optagelse og afspilning af lyd på visse Tiger Lake (TGL)-enheder med Windows (understøttelsen af IPC4 muliggør interaktion mellem Windows og DSP'en baseret på Sound Open Firmware uden brug af en specifik driver).
Kilde: opennet.ru
