Hi Theo,
Great to meet you and welcome to the TianoCore project! Great to hear you are interested! Apologize for the tardiness in my response. Pedro is correct that the audio support task unfortunately did not make it past the finish line last year.
My understanding is that the communication protocol for USB audio devices turned out to be much more complex than the student anticipated! It involved implementing several audio codecs as each device was allowed per spec to have a different set of supported
codecs, and the transfer protocol was also highly non-trivial. I’m not sure where exactly things left off last year, Leif (cc’d) would have a better understanding there. Overall, I wouldn’t necessarily recommend that project because it seems like there was
a lot of pitfalls and unpleasant surprises that were encountered along the way, but if are really interested in tackling a challenging project you are welcome to try taking it on.
The Qemu Minplatform port is something that I can speak with high levels of authority on. I’ve kinda been hoping that someone would pick that project
😊. I provided some background information on the MinPlatform Architecture in the following message on the mailing list:
https://edk2.groups.io/g/devel/message/73152 Also, I would recommend that over the next couple months you read “Beyond BIOS” to learn more about the overall UEFI architecture.
The general goal of this project is to create a method of working on full featured UEFI firmware in an emulated environment. While there is some overlap between this and OVMF, over time OVMF has evolved to be used to initialize KVM and
Xen virtual machines. The goals of being a developer sandbox vs. bootstrapping VM guest OSes don’t always align, which is where QemuOpenBoardPkg comes in.
For example, OVMF only implements UEFI variable services for DXE, and does not provide UEFI variable services in PEI or SMM. This is largely due to the virtualization focus that OVMF has gained over time. Given the focus on bootstrapping
OSes, only implementing UEFI variables in DXE is fine. But for developers who want to test new SMM features without immediately integrating them into a real platform, having SMM variable services would immensely help. The same is true for PEI.
In parallel, MinPlatform Architecture is moving the methodologies for platform firmware development forward, by reducing the amount of platform specific code that needs to be written. But OVMF has not kept up with these new developments.
So naturally, it make sense to combine these two together, which results in the QemuOpenBoardPkg project.
If any of this piques your interest I would be happy to answer any questions you have about it!
Hope this helps and welcome to the project!
With Best Regards,
Nate
From: Pedro Falcato <pedro.falcato@gmail.com>
Sent: Monday, April 4, 2022 2:13 PM
To: edk2-devel-groups-io <devel@edk2.groups.io>; theojehl76@gmail.com
Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>
Subject: Re: [edk2-devel] [GSoC 2022] Introducing myself & seeking for project ideas
Theo,
Sorry for leaving you on read!
CC'ing Nate as he knows a lot more about MinPlatform than I do!
Meanwhile, you can also take a look at the MinPlatform spec:
https://edk2-docs.gitbook.io/edk-ii-minimum-platform-specification/
Since you're new to UEFI, you may also want to take a brief look (don't read it front-to-back, that's almost useless) at the UEFI spec:
https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf
Thanks,
Pedro
On Sat, Apr 2, 2022 at 1:01 PM Théo Jehl <theojehl76@gmail.com> wrote:
Hi Pedro,
Thanks a lot for your answer!
My bad then :') After taking a look at the tasks proposal lists I'm interested in the MinPlatform port to QEMU [1], of course, I'm open to other projects ideas that are not on the list.
To talk about myself a little more, I have a bachelor's in computer science and it's my first year as a Master's student, and I took the embedded systems programming branch to learn more about operating systems, booting, and how systems work in general :) I'm only starting in the field but I have a lot of fun making the software interact with the hardware, and understanding how computers work under the hood.
And you are right, larger projects are way better to learn :)
Best regards,
Théo
[1] https://github.com/tianocore/tianocore.github.io/wiki/Tasks-MinPlatform-QemuOpenBoardPkg
--
Pedro Falcato