I also wanted to add that I will be setting up weekly video calls
including Ray that we can use to supplement mailing list communication.
I suggest the primary communication mechanism be the mailing list and we
use those calls for clarification, detailed project planning, and topics
not directly relevant to the list.
Regards,
Michael
On 5/19/2021 10:29 AM, Michael Kubacki wrote:
> Thanks Liming.
>
> Hi Kaaira,
>
> Welcome! You can contact me at mikuback@linux.microsoft.com. You will
> sometimes see my email as michael.kubacki@microsoft.com and that is fine
> to use for communication though I tend to not use it on the mailing list
> due to way the mail server manipulates plaintext email.
>
> GENERIC RESOURCES
>
> I'm sharing some general resources in case you are not already familiar
> with them:
>
> 1.
https://github.com/tianocore-training/Tianocore_Training_Contents/wiki
>
> This one is good for topics like UEFI overview, EDK II concepts, and
> Minimum Platform.
>
> In particular for your project, I recommend looking through the
> MinPlatform training -
>
https://github.com/tianocore-training/Presentation_FW/blob/master/FW/Presentations/_D_05_EDK_II_Open_Source_MinPlatform_pres_gp.pdf
>
>
> 2.
>
https://software.intel.com/content/www/us/en/develop/articles/unified-extensible-firmware-interface.html
>
>
> These whitepapers are useful when you need more in depth detail about a
> particular area (like capsule update or work related to the memory map).
> I recommend bookmarking it and keeping it in mind as a reference.
>
> 3.
https://uefi.org/learning_center/presentationsandvideos/
>
> Scroll through here if you have some time and see if there's anything
> interesting. To help keep on your project schedule I don't think these
> are as important but there is a lot of interesting material there.
>
> Reading through some of the key concepts in Beyond BIOS can be helpful
> and like the UEFI, ACPI, and PI (Platform Initialization) specs at
>
https://uefi.org/specifications, I believe they are most useful as
> references when you are solving specific problems.
>
> PROJECT-SPECIFIC RESOURCES
>
> Since your project involves creating QEMU board within the Minimum
> Platform architecture, you can start looking into:
>
> 1. QEMU - An open source machine emulator
> 2. Minimum Platform Architecture - A software architecture to create
> basic platform firmware that can be extended with advanced functionality.
> 3. Intel FSP - Try to understand the high-level goals and how FSP
> interfaces with firmware.
>
> 1. QEMU -
https://www.qemu.org/
>
> Please set up the QEMU environment. Your QemuOpenBoardPkg will need to
> run on qemu-system-x86_64 at a minimum with a 32-bit PEI and a 64-bit
> DXE phase. Most real hardware firmwares also use a 32-bit PEI and a
> 64-bit DXE.
>
> I suggest you start with the OvmfPkg README -
>
https://github.com/tianocore/edk2/blob/master/OvmfPkg/README
>
> As an initial step you can try to build an OVMF FW with a 32-bit PEI
> (IA32) and 64-bit DXE (X64) and boot to the EFI shell.
> OvmfPkg/OvmfPkgIa32X64.dsc can be used to build a firmware for these
> target architectures.
>
> Any time you submit patches to edk2, you can check edk2/maintainers.txt
> -
https://github.com/tianocore/edk2/blob/master/Maintainers.txt for the
> appropriate maintainers and reviewers to CC on the patch. As you can
> see, Laszlo and Ard are the maintainers for OvmfPkg and Jordan is a
> reviewer. If there are any questions that require deep expertise in QEMU
> or OVMF, we will reach out to them. The Minimum Platform code is
> maintained in the edk2-platforms repository and it has a similar
> maintainers.txt file for its packages -
>
https://github.com/tianocore/edk2-platforms/blob/master/Maintainers.txt.
>
> I suggest you try sending a very trivial patch for a change in the
> edk2-platforms repository -
https://github.com/tianocore/edk2-platforms
> to make sure that your git environment is set up properly to format edk2
> patches and your email service can send patches correctly.
>
> We can discuss the details about how to set up your environment and what
> to change when you are ready. You can use this page to get started -
>
https://github.com/tianocore/tianocore.github.io/wiki/How-To-Contribute.
>
> 2. EDK II Minimum Platform Specification -
>
https://edk2-docs.gitbook.io/edk-ii-minimum-platform-specification/
>
> For your project, this spec will be very useful. It describes why
> Minimum Platform was created and how it works at a high-level. Like the
> code, this document is open and available to the community. You might
> contribute content here in addition to your code. You can fix any bugs
> or update content in the spec using git patches and the mailing list
> similar to code.
>
> 3. Intel FSP -
>
https://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/intel-fsp-overview.html
>
>
> For more information about Intel FSP check out the Intel FSP External
> Architecture Specification in the link above. v2.2 is currently the
> latest version.
>
> There is an open source QEMU FSP available here
>
https://github.com/universalpayload/fspsdk/tree/qemu_fsp_x64. You will
> find the existing Minimum Platform boards use Intel FSP while OvmfPkg
> does not use FSP.
>
> Firmware is really best learned hands on. Using the links and background
> info above, I suggest:
>
> 1. Read the OvmfPkg readme.
> 2. Build a 32-bit PEI and 64-bit DXE OVMF FW and boot it to EFI shell
> using QEMU.
> 3. Reading through the EDK II Minimum Platform Specification to gain a
> high level understanding of Minimum Platform.
> 4. Connect what you read to the code in
>
https://github.com/tianocore/edk2-platforms/tree/master/Platform/Intel.
> Focus on higher level pieces like the board initialization library.
> 5. Note what each board package is doing. You will find common patterns
> for what a board package needs to implement to make the system boot.
> 6. As you read through the code, reference the general resources listed
> above to understand anything not Minimum Platform specific. Part of the
> learning process is knowing which spec to use for different interfaces.
> If you're unsure which spec something is in, feel free to reach out.
> 7. While looking through the code in edk2-platforms, think about a patch
> you can send to edk2-platforms for something very trivial such as a bug
> fix or documentation update.
> 8. Send the patch and get it reviewed-by the appropriate
> maintainers/reviewers and merged into the master branch.
> 9. Read through the code in OvmfPkg. Try to map the work it is doing to
> the board code you reviewed in edk2-platforms.
> 10. At this point, you could start outlining major pieces of
> initialization in OVMF and how they might map to a board package. Try to
> identify where the initialization pieces would reside in the board
> package and try to identify challenges that might arise. We will likely
> spend quite a bit of time here before jumping into too much code.
>
> I know this is a lot of info. Please don't hesitate to reach out if you
> have any questions and I look forward to working with you.
>
> Regards,
> Michael
>
> On 5/18/2021 6:05 PM, gaoliming wrote:
>> Include Michael Kubacki.
>>
>> Thanks
>> Liming
>>> -----邮件原件-----
>>> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 KAAIRA
>>> GUPTA
>>> 发送时间: 2021年5月18日 22:42
>>> 收件人: Ray Ni <ray.ni@intel.com>; devel@edk2.groups.io
>>> 主题: Re: [edk2-devel] GSoC 2021 Qemu OpenBoardPkg Project
>>>
>>> On Tue, May 18, 2021 at 08:01:57PM +0530, Kaaira Gupta wrote:
>>>> Hey everyone,
>>>>
>>>> I have been selected as a student developer for the project MinPlatform
>>>> Qemu OpenBoardPkg under the mentors Ray Ni and Michael Kubacki.
>>> Thankyou
>>>> for this opportunity. I have been over the major chapters of Beyond
>>>> BIOS
>>>> as recommended by Nate DeSimone. I want to get familiar with the code
>>>> now to help me undersatnd the community practices and get my hands
>>>> dirty. Where should I start? What development environment do I need?
>>>> How can I use this community bonding period to give me a better start
>>>> for the coding phase?
>>>>
>>>> How do the mentors want me to connect with them? Can we have a meet
>>> to
>>>> discuss this project's plan to add more details? This would be very
>>>> helpful for me considering I don't have prior experience with EDK2.
>>>
>>> I noticed that the mail-id that I have used of Michael Kubacki doesn't
>>> exist anymore. Please let me know how I can contact him.
>>>
>>>>
>>>> Thank you,
>>>> Kaaira
>>>
>>> Thanks,
>>> Kaaira
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>