Firmware: Difference between revisions

From AlsaProject
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
'''Sound Open Firmware'''
 
== '''Sound Open Firmware''' ==


Sound Open Firmware is an open source audio DSP firmware and SDK intended to provide a generic audio firmware infrastructure and development tools to the community. The firmware is BSD licensed and is platform and architecture agnostic. The SDK is also open source and provides a toolchain, debugger, emulator and image creation tools.
Sound Open Firmware is an open source audio DSP firmware and SDK intended to provide a generic audio firmware infrastructure and development tools to the community. The firmware is BSD licensed and is platform and architecture agnostic. The SDK is also open source and provides a toolchain, debugger, emulator and image creation tools.
The firmware and SDK currently support the Cadence Xtensa architecture and the Intel Baytrail and Cherrytrail platforms. The current firmware audio features include multiple PCMs with gain controls and mixers.


This page is currently work in progress so please expect frequent updates.
This page is currently work in progress so please expect frequent updates.


The firmware and SDK currently support the Cadence Xtensa architecture and the Intel Baytrail and Cherrytrail platforms. The current firmware audio features include multiple PCMs with gain controls and mixers.
== '''Installing the SDK''' ==
 
1. Install the firmware image tools.
These tools are used to convert ELF binaries into the file format used by the kernel drivers when loading the firmware.
 
git clone git://git.alsa-project.org:sound-open-firmware-tools.git soft.git
cd soft.git
./autogen.sh
./configure
make
make install
 
2. Build the Qemu DSP emulator from source. Qemu needs some extra patches to support heterogeneous virtualization of the guest x86 OS and xtensa firmware. We are using the latest qemu-2.7 release with the support for heterogeneous virtualization and audio DSP hardware on top.
 
sudo apt-get install libgtk-3-dev libsdl-dev libspice-protocol-dev libspice-server-dev libusb-1.0-0-dev libusbredirhost-dev libtool-bin iasl valgrind texinfo virt-manager kvm libvirt-bin virtinst
git clone https://github.com/01org/osadsp-qemu.git
cd osadsp-qemu.git
./configure --prefix=. --target-list=xtensa-softmmu,x86_64-softmmu --enable-gtk --enable-sdl --enable-spice --audio-drv-list=alsa --enable-libusb --enable-usb-redir --enable-coroutine-pool --disable-opengl --enable-fdt
make
 
Please do not install this version of Qemu as it will overwrite your distro version of Qemu.
 
3. Install the GCC xtensa cross compiler toolchain. A cross toolchain is required to build firmware binaries on x86. Please note that the xtensa GCC compiler does not build optmised Xtensa binaries (i.e. no automatic SIMD or media instructions generated without hand coding assembler). Cadence does provide a free download of their optimising compiler toolchain for the Baytrail target here (todo add link).
 
https://github.com/01org/osadsp-crosstool-ng.git
 
4. Get the firmware source code.
 
git clone git://git.alsa-project.org:sound-open-firmware.git sof.git

Revision as of 13:24, 7 October 2016

Sound Open Firmware

Sound Open Firmware is an open source audio DSP firmware and SDK intended to provide a generic audio firmware infrastructure and development tools to the community. The firmware is BSD licensed and is platform and architecture agnostic. The SDK is also open source and provides a toolchain, debugger, emulator and image creation tools.

The firmware and SDK currently support the Cadence Xtensa architecture and the Intel Baytrail and Cherrytrail platforms. The current firmware audio features include multiple PCMs with gain controls and mixers.

This page is currently work in progress so please expect frequent updates.

Installing the SDK

1. Install the firmware image tools. These tools are used to convert ELF binaries into the file format used by the kernel drivers when loading the firmware.

git clone git://git.alsa-project.org:sound-open-firmware-tools.git soft.git
cd soft.git
./autogen.sh
./configure
make
make install

2. Build the Qemu DSP emulator from source. Qemu needs some extra patches to support heterogeneous virtualization of the guest x86 OS and xtensa firmware. We are using the latest qemu-2.7 release with the support for heterogeneous virtualization and audio DSP hardware on top.

sudo apt-get install libgtk-3-dev libsdl-dev libspice-protocol-dev libspice-server-dev libusb-1.0-0-dev libusbredirhost-dev libtool-bin iasl valgrind texinfo virt-manager kvm libvirt-bin virtinst
git clone https://github.com/01org/osadsp-qemu.git
cd osadsp-qemu.git
./configure --prefix=. --target-list=xtensa-softmmu,x86_64-softmmu --enable-gtk --enable-sdl --enable-spice --audio-drv-list=alsa --enable-libusb --enable-usb-redir --enable-coroutine-pool --disable-opengl --enable-fdt
make

Please do not install this version of Qemu as it will overwrite your distro version of Qemu.

3. Install the GCC xtensa cross compiler toolchain. A cross toolchain is required to build firmware binaries on x86. Please note that the xtensa GCC compiler does not build optmised Xtensa binaries (i.e. no automatic SIMD or media instructions generated without hand coding assembler). Cadence does provide a free download of their optimising compiler toolchain for the Baytrail target here (todo add link).

https://github.com/01org/osadsp-crosstool-ng.git

4. Get the firmware source code.

git clone git://git.alsa-project.org:sound-open-firmware.git sof.git