This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
gsoc:2020-gsoc-sound-open-firmware [2020/01/14 12:47] dbaluta [Where to start?] |
gsoc:2020-gsoc-sound-open-firmware [2020/03/04 08:59] (current) dbaluta [Join #sof channel on IRC] |
||
---|---|---|---|
Line 3: | Line 3: | ||
[[:gsoc:google-summer-code-2020|Main GSoC Linux Foundation page: How to apply, deadlines, other workgroups, ...]] | [[:gsoc:google-summer-code-2020|Main GSoC Linux Foundation page: How to apply, deadlines, other workgroups, ...]] | ||
- | ===== Proposal ===== | + | ====== Sound Open Firmware ====== |
+ | Sound Open Firmware is an open source audio DSP firmware and SDK that provides | ||
+ | audio firmware infrastructure and development tools for developers who are interested | ||
+ | in audio or signal processing on modern DSPs | ||
- | Code license: GPL | + | ==== Proposal: Enhance SOF Linux kernel debugging support for i.MX8 platforms ==== |
- | The project is considered successful if the code is accepted into Linux kernel ASoC maintainer's tree. | + | Sound Open Firmware has multiple components but in order to understand the proposal one needs to firstly have a look at these two components: |
+ | * SOF Linux kernel driver, this runs on the ARM core and it's the link between ALSA kernel layer and DSP. | ||
+ | * SOF firmware, this runs on the DSP and it is responsible for audio processing, etc. | ||
+ | |||
+ | The goal of this project is to enahance the Linux kernel driver debugging support. This includes: | ||
+ | * add functionality to retrieve DSP traces when DSP panics. | ||
+ | * add functionality to filter logs from DSP based on various parameters. | ||
+ | * enhance and update documentation | ||
+ | * add a serial console driver on DSP (this is optional) | ||
+ | |||
+ | Github issues: | ||
+ | * [[https://github.com/thesofproject/sof/issues/2172 | Refactor trace system]] | ||
+ | |||
+ | Code license: GPL-2.0 OR BSD-3-Clause | ||
+ | |||
+ | The project is considered successful if the code is accepted into SOF github tree. | ||
===== Where to start? ===== | ===== Where to start? ===== | ||
Line 17: | Line 35: | ||
* [[https://github.com/thesofproject/sof/ | Sound Open Firmware github]] | * [[https://github.com/thesofproject/sof/ | Sound Open Firmware github]] | ||
- | ===== Things to consider ===== | + | ===== 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. | ||
- | * Send at least one patch to Linux kernel. See [[https://kernelnewbies.org/FirstKernelPatch | First kernel patch]]. | + | ==== Join #sof channel on IRC ==== |
+ | Use an IRC client like pidgin to join #sof channel on irc.freenode.net. There you can find support and quick answers. | ||
===== Contact ===== | ===== Contact ===== | ||
Line 26: | Line 71: | ||
If you are interested about this project please drop me an email at: Daniel Baluta <daniel.baluta@nxp.com> | If you are interested about this project please drop me an email at: Daniel Baluta <daniel.baluta@nxp.com> | ||
- | You can also find me on IRC: _daniel_ on #alsa-soc channel, on irc.freenode.net server [[http://webchat.freenode.net/ | Web IRC]] | + | You can also find me on IRC: _daniel_ on #alsa-soc OR #sof channel, on irc.freenode.net server [[http://webchat.freenode.net/ | Web IRC]] |