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


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr>   Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/75408">View/Reply Online (#75408)</a> |    |  <a target="_blank" href="https://groups.io/mt/82926669/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>