پروژه Sound Open Firmware 2.0 (SOF) که در ابتدا توسط اینتل برای کنار گذاشتن رویه ارائه Firmware اختصاصی برای تراشههای DSP مربوط به پردازش صدا ایجاد شده بود، منتشر شد. این پروژه متعاقباً تحت نظارت این سازمان قرار گرفت. Linux بنیاد اکنون با مشارکت جامعه و مشارکت AMD، گوگل و NXP در حال توسعه است. این پروژه در حال توسعه یک SDK برای سادهسازی توسعه میانافزار و یک درایور صدا برای هسته است. Linux و مجموعهای از میانافزار آماده برای تراشههای مختلف DSP، شامل اسمبلیهای دودویی امضا شده دیجیتالی. کد میانافزار به زبان C با درجهای اسمبلی نوشته شده و تحت مجوز BSD توزیع شده است.
به لطف ساختار ماژولار، Sound Open Firmware را می توان به معماری های مختلف DSP و پلت فرم های سخت افزاری منتقل کرد. به عنوان مثال، در میان پلتفرم های پشتیبانی شده، پشتیبانی از تراشه های مختلف اینتل (Broadwell، Icelake، Tigerlake، Alderlake و غیره)، Mediatek (mt8195)، NXP (i.MX8*) و AMD (Renoir) مجهز به DSP های مبتنی بر Xtensa HiFi. معماری ها در 2، 3 و 4 بیان شده است. در طول فرآیند توسعه، می توان از یک شبیه ساز خاص یا QEMU استفاده کرد. استفاده از سیستم عامل باز برای DSP به شما امکان می دهد سریعتر مشکلات موجود در سیستم عامل را تصحیح و تشخیص دهید و همچنین به کاربران این فرصت را می دهد تا به طور مستقل سیستم عامل را با نیازهای خود تطبیق دهند، بهینه سازی های خاصی را انجام دهند و نسخه های سیستم عامل سبک را ایجاد کنند که فقط شامل عملکردهای لازم برای محصول.
این پروژه چارچوبی برای توسعه، بهینه سازی و آزمایش راه حل های مربوط به پردازش صدا و همچنین ایجاد درایورها و برنامه هایی برای تعامل با DSP ارائه می دهد. این ترکیب شامل پیاده سازی سیستم عامل، ابزارهایی برای آزمایش سیستم عامل، ابزارهای کاربردی برای تبدیل فایل های ELF به تصاویر میان افزار مناسب برای نصب بر روی تجهیزات، ابزارهای اشکال زدایی، شبیه ساز DSP، شبیه ساز پلت فرم میزبان (بر اساس QEMU)، ابزارهایی برای ردیابی سیستم عامل، اسکریپت های متلب است. /Octave برای تنظیم دقیق ضرایب برای اجزای صوتی، برنامه های کاربردی برای سازماندهی تعامل و تبادل داده با سیستم عامل، نمونه های آماده توپولوژی های پردازش صدا.


این پروژه همچنین در حال توسعه یک درایور جهانی است که میتواند با دستگاههایی که از میانافزار مبتنی بر Sound Open Firmware استفاده میکنند، مورد استفاده قرار گیرد. این درایور از قبل در هسته اصلی گنجانده شده است. Linuxاز نسخه ۵.۲ شروع میشود و تحت مجوز دوگانه BSD و GPLv2 توزیع میشود. درایور مسئول بارگذاری میانافزار در حافظه DSP، بارگذاری توپولوژیهای صوتی در DSP، سازماندهی عملکرد دستگاه صوتی (مسئول دسترسی به توابع DSP از برنامهها) و ارائه نقاط دسترسی برنامه به دادههای صوتی است. درایور همچنین یک مکانیسم IPC برای تعامل بین سیستم میزبان و DSP و لایهای برای دسترسی به قابلیتهای سختافزاری DSP از طریق یک API استاندارد فراهم میکند. یک DSP با میانافزار Sound Open برای برنامهها به عنوان یک دستگاه ALSA معمولی به نظر میرسد که میتواند با استفاده از رابط نرمافزاری استاندارد کنترل شود.

نوآوری های کلیدی در Sound Open Firmware 2.0:
- عملکرد عملکردهای کپی صدا به طور قابل توجهی بهبود یافته و تعداد دسترسی به حافظه کاهش یافته است. برخی از سناریوهای پردازش صدا با حفظ کیفیت صوتی یکسان، تا 40 درصد کاهش بار داشته اند.
- پایداری در پلتفرمهای چند هستهای اینتل (cAVS) بهبود یافته است، از جمله پشتیبانی از کنترلکنندههای در حال اجرا بر روی هر هسته DSP.
- برای پلتفرم Apollo Lake (APL)، محیط Zephyr RTOS به عنوان پایه سیستم عامل به جای XTOS استفاده می شود. سطوح یکپارچه سازی سیستم عامل Zephyr از نظر عملکرد برای پلتفرم های منتخب اینتل به یکسان رسیده است. استفاده از Zephyr می تواند به طور قابل توجهی کد برنامه های Sound Open Firmware را ساده و کاهش دهد.
- قابلیت استفاده از پروتکل IPC4 برای ضبط و پخش اولیه صدا در برخی از دستگاههای Tiger Lake (TGL) که سیستم عامل را اجرا میکنند، پیادهسازی شد. Windows (پشتیبانی از IPC4 اجازه میدهد) Windows بدون استفاده از درایور خاص، با DSP های مبتنی بر Sound Open Firmware تعامل داشته باشید.
منبع: opennet.ru
