This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
gsoc:2022-gsoc-sound-open-firmware [2022/01/26 18:17] till created |
gsoc:2022-gsoc-sound-open-firmware [2022/03/28 08:00] dbaluta |
||
---|---|---|---|
Line 9: | Line 9: | ||
in audio or signal processing on modern DSPs | in audio or signal processing on modern DSPs | ||
- | **Still needs to get updated!!** | + | ==== Sound Open Firmware Community ==== |
- | ==== Proposal 1: Add dynamic load module support for SOF ==== | + | Website: https://www.sofproject.org/ |
- | Github issues: | + | Git: https://github.com/thesofproject/ |
- | * https://github.com/thesofproject/sof/pull/1619 | + | |
- | * https://github.com/thesofproject/sof/pull/3766#issuecomment-776756378 | + | |
- | Code license: GPL-2.0 OR BSD-3-Clause | + | Documentation: https://thesofproject.github.io/latest/index.html |
- | The project is considered successful if the code is accepted into SOF github tree. | + | Discord: https://discord.gg/CRqvJWs7 (see #sof channel) |
- | Mentor: Daniel Baluta <daniel.baluta@nxp.com> | + | New to SOF? Watch this [[https://www.youtube.com/watch?v=vwDoEumA1Mo | Sound Open Firmware introduction]] |
- | ==== Proposal 2: Add support for converting topology binaries generated with TPLG1.0 into TPLG2.0 conf format ==== | + | |
- | The goal is to be able to decode existing topology binaries and convert them into the new Topology 2.0 conf format | + | ==== Proposal 1: Add serial console driver support in SOF for i.MX8 boards ==== |
+ | |||
+ | The goal is to create a driver for i.MX8 serial console, then add support inside the logging system so that logs could be read via serial console. | ||
Code license: GPL-2.0 OR BSD-3-Clause | Code license: GPL-2.0 OR BSD-3-Clause | ||
Line 30: | Line 29: | ||
The project is considered successful if the code is accepted into SOF github tree. | The project is considered successful if the code is accepted into SOF github tree. | ||
- | Mentor: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> | + | Mentor: Daniel Baluta <daniel.baluta@nxp.com> |
- | ==== Proposal 3: Loopback implementation using demux component ==== | + | ==== Proposal 2: Loopback implementation using demux component ==== |
The general idea would be to have an ALSA device where playback stream would be looped back into a capture stream. This can be useful for echo reference or for audio decoding libraries that could offload the decoding part to the DSP. | The general idea would be to have an ALSA device where playback stream would be looped back into a capture stream. This can be useful for echo reference or for audio decoding libraries that could offload the decoding part to the DSP. | ||
Line 43: | Line 42: | ||
The project is considered successful if the code is accepted into SOF github tree. | The project is considered successful if the code is accepted into SOF github tree. | ||
- | Mentor: Iuliana Prodan <iuliana.prodan@nxp.com> | + | Mentor: Daniel Baluta <daniel.baluta@nxp.com> |
- | + | ||
- | ==== Proposal 4: Enhance SOF testbench with Linux kernel topology parser ==== | + | |
- | + | ||
- | Reuse sound/soc/sof/* and re-write the testbench to use ASoC topology parser. | + | |
- | + | ||
- | Code license: GPL-2.0 OR BSD-3-Clause | + | |
- | + | ||
- | The project is considered successful if the code is accepted into SOF github tree. | + | |
- | + | ||
- | Mentor: Seppo Ingalsuo <seppo.ingalsuo@intel.com> | + | |
- | + | ||
- | ==== Proposal 5: Add mutiple stream suppport to testbench ==== | + | |
- | + | ||
- | Add to testbench support for multiple streams (with multiple files I/O PCM, DAI). | + | |
- | + | ||
- | Code license: GPL-2.0 OR BSD-3-Clause | + | |
- | + | ||
- | The project is considered successful if the code is accepted into SOF github tree. | + | |
- | + | ||
- | Mentor: Seppo Ingalsuo <seppo.ingalsuo@intel.com> | + | |
- | + | ||
- | ==== Proposal 6: Add mux/demux testing functionality to testbench ==== | + | |
- | + | ||
- | Add support for testing the mux/demux component in testbench. | + | |
- | + | ||
- | Code license: GPL-2.0 OR BSD-3-Clause | + | |
- | + | ||
- | The project is considered successful if the code is accepted into SOF github tree. | + | |
- | + | ||
- | Mentor: Jaska Uimonen <jaska.uimonen@intel.com> | + | |
- | ===== Where to start? ===== | + | |
- | + | ||
- | Have a look at: | + | |
- | * [[https://www.youtube.com/watch?v=vwDoEumA1Mo | Sound Open Firmware introduction]] | + | |
- | * [[https://thesofproject.github.io/latest/introduction/index.html| Sound Open Firmware docs]] | + | |
- | * [[https://github.com/thesofproject/sof/ | Sound Open Firmware github]] | + | |
- | + | ||
- | ===== Small ideas to work on to get familiar with the project ===== | + | |
- | + | ||
- | All the ideas below are just ways of exploring the project. | + | |
- | ==== Get SOF binaries ==== | + | |
- | * Follow tutorial here [[https://thesofproject.github.io/latest/getting_started/build-guide/build-from-scratch.html | Getting started]] in order to compile Linux kernel, SOF firmware, SOF topologies. | + | |
- | + | ||
- | ==== Create one Pull Request for the SOF repo ===== | + | |
- | * Fork https://github.com/thesofproject/sof.git repo into your github account | + | |
- | * Follow instructions here [[https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request | Create a Pull Request]] and learn how to create a PR. | + | |
- | * Use checkpatch.pl to find small issues to fix | + | |
- | * e.g ./scripts/checkpatch.pl --no-tree --strict -f src/lib/alloc.c | + | |
- | * Keep in mind, a commit should fix only one type of error/warnings. If you need to fix multiple problems create multiple commits. | + | |
- | * Learn [[https://chris.beams.io/posts/git-commit/ | how to create a good commit message]] | + | |
- | + | ||
- | ==== Create one patch for the Linux kernel ==== | + | |
- | + | ||
- | Watch this [[https://www.youtube.com/watch?v=LLBrBBImJt4 | Write and Submit your first Linux kernel Patch]]. | + | |
- | + | ||
- | Before sending the patch to community please send it to daniel.baluta@nxp.com for review. Make sure you only look into drivers/staging directory. | + | |
- | + | ||
- | ==== Use Qemu to get a feel of how things are working ==== | + | |
- | + | ||
- | * Qemu repo is at https://github.com/thesofproject/qemu/ we use branch sof-v4.2 | + | |
- | * Build qemu by looking at [[https://www.alsa-project.org/wiki/Firmware | Firmware ]]. Look at chapter 'Build the Qemu DSP emulator from source.' | + | |
- | * Try to boot sof-imx8.ri SOF binary with qemu | + | |
- | * Use the following command ./xtensa-softmmu/qemu-system-xtensa -cpu imx8 -M adsp_imx8 -nographic -kernel ../sof.git/build_imx8_gcc/src/arch/xtensa/sof-imx8.ri | + | |
- | * Look at [[https://www.alsa-project.org/wiki/Firmware#Using_the_Qemu_DSP_emulator | Using the Qemu DSP emulator]] and try to run a full system with Linux kernel and SOF firmware. | + | |
+ | ==== How do I get started? ==== | ||
+ | One good way to get started is to build the code for SOF firmware and SOF Linux driver. Follow | ||
+ | [[https://thesofproject.github.io/latest/getting_started/build-guide/build-from-scratch.html|Build SOF from sources]] and [[ https://thesofproject.github.io/latest/getting_started/build-guide/build-with-zephyr.html| Build SOF with Zephyr ]] guides. | ||
- | ===== Contact ===== | + | Log your results in a file and send an email to daniel.baluta@nxp.com. If you need help ask on [[ https://discord.gg/CRqvJWs7 | SOF Discord channel ]]. |
- | * Mailing list: sound-open-firmware@alsa-project.org | ||
- | * IRC: #sof on irc.freenode.net | ||
- | * Gitter: https://gitter.im/thesofproject | ||