From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web10.16419.1621450653967036050 for ; Wed, 19 May 2021 11:57:34 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@linux.microsoft.com header.s=default header.b=Np8S1VX6; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from [10.124.238.202] (unknown [167.220.2.74]) by linux.microsoft.com (Postfix) with ESMTPSA id 3163B20B7178; Wed, 19 May 2021 11:57:33 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 3163B20B7178 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1621450653; bh=Xafo5Cx6+J1BdYew83QLWq8zrsJmjFRTS2b19rhtC7c=; h=Subject:From:To:References:Date:In-Reply-To:From; b=Np8S1VX6R1k2A05e4Etu158YERzzT9oYJ6vnUydXiVsdxjLDxoIoL6UD6Be0iCQQk i79Cy24HAmoLQRu8CcJf5Wz+W1BW4FmF15TvOmb6jQd29f3oHhc1P/M9AkTP65IlkK bkh92dtFrtpJLQhlcw6f1xlCrKZdV68ZlrDnW1wE= Subject: =?UTF-8?B?UmU6IOWbnuWkjTogW2VkazItZGV2ZWxdIEdTb0MgMjAyMSBRZW11IE9wZW5Cb2FyZFBrZyBQcm9qZWN0?= From: "Michael Kubacki" To: devel@edk2.groups.io, gaoliming@byosoft.com.cn, kaaira7319@gmail.com, 'Ray Ni' References: <20210518143156.GA24025@kaaira-HP-Pavilion-Notebook> <20210518144155.GA25679@kaaira-HP-Pavilion-Notebook> <000001d74c4b$1ae82a80$50b87f80$@byosoft.com.cn> <2162525c-4e35-0c09-4594-ecbfbc740dcc@linux.microsoft.com> Message-ID: <276316c8-9355-2a6d-3786-ca743e1e772d@linux.microsoft.com> Date: Wed, 19 May 2021 11:57:33 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <2162525c-4e35-0c09-4594-ecbfbc740dcc@linux.microsoft.com> Content-Type: text/plain; charset=gbk; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable I also wanted to add that I will be setting up weekly video calls=20 including Ray that we can use to supplement mailing list communication. I suggest the primary communication mechanism be the mailing list and we= =20 use those calls for clarification, detailed project planning, and topics= =20 not directly relevant to the list. Regards, Michael On 5/19/2021 10:29 AM, Michael Kubacki wrote: > Thanks Liming. >=20 > Hi Kaaira, >=20 > Welcome! You can contact me at mikuback@linux.microsoft.com. You will=20 > sometimes see my email as michael.kubacki@microsoft.com and that is fine= = =20 > to use for communication though I tend to not use it on the mailing list= = =20 > due to way the mail server manipulates plaintext email. >=20 > GENERIC RESOURCES >=20 > I'm sharing some general resources in case you are not already familiar= =20 > with them: >=20 > 1. https://github.com/tianocore-training/Tianocore_Training_Contents/wik= i >=20 > This one is good for topics like UEFI overview, EDK II concepts, and=20 > Minimum Platform. >=20 > In particular for your project, I recommend looking through the=20 > MinPlatform training -=20 > https://github.com/tianocore-training/Presentation_FW/blob/master/FW/Pre= sentations/_D_05_EDK_II_Open_Source_MinPlatform_pres_gp.pdf=20 >=20 >=20 > 2.=20 > https://software.intel.com/content/www/us/en/develop/articles/unified-ex= tensible-firmware-interface.html=20 >=20 >=20 > These whitepapers are useful when you need more in depth detail about a= =20 > particular area (like capsule update or work related to the memory map).= = =20 > I recommend bookmarking it and keeping it in mind as a reference. >=20 > 3. https://uefi.org/learning_center/presentationsandvideos/ >=20 > Scroll through here if you have some time and see if there's anything=20 > interesting. To help keep on your project schedule I don't think these= =20 > are as important but there is a lot of interesting material there. >=20 > Reading through some of the key concepts in Beyond BIOS can be helpful= =20 > and like the UEFI, ACPI, and PI (Platform Initialization) specs at=20 > https://uefi.org/specifications, I believe they are most useful as=20 > references when you are solving specific problems. >=20 > PROJECT-SPECIFIC RESOURCES >=20 > Since your project involves creating QEMU board within the Minimum=20 > Platform architecture, you can start looking into: >=20 > 1. QEMU - An open source machine emulator > 2. Minimum Platform Architecture - A software architecture to create=20 > basic platform firmware that can be extended with advanced functionality= . > 3. Intel FSP - Try to understand the high-level goals and how FSP=20 > interfaces with firmware. >=20 > 1. QEMU - https://www.qemu.org/ >=20 > Please set up the QEMU environment. Your QemuOpenBoardPkg will need to= =20 > run on qemu-system-x86_64 at a minimum with a 32-bit PEI and a 64-bit=20 > DXE phase. Most real hardware firmwares also use a 32-bit PEI and a=20 > 64-bit DXE. >=20 > I suggest you start with the OvmfPkg README -=20 > https://github.com/tianocore/edk2/blob/master/OvmfPkg/README >=20 > As an initial step you can try to build an OVMF FW with a 32-bit PEI=20 > (IA32) and 64-bit DXE (X64) and boot to the EFI shell.=20 > OvmfPkg/OvmfPkgIa32X64.dsc can be used to build a firmware for these=20 > target architectures. >=20 > Any time you submit patches to edk2, you can check edk2/maintainers.txt= =20 > - https://github.com/tianocore/edk2/blob/master/Maintainers.txt for the= =20 > appropriate maintainers and reviewers to CC on the patch. As you can=20 > see, Laszlo and Ard are the maintainers for OvmfPkg and Jordan is a=20 > reviewer. If there are any questions that require deep expertise in QEMU= = =20 > or OVMF, we will reach out to them. The Minimum Platform code is=20 > maintained in the edk2-platforms repository and it has a similar=20 > maintainers.txt file for its packages -=20 > https://github.com/tianocore/edk2-platforms/blob/master/Maintainers.txt. >=20 > I suggest you try sending a very trivial patch for a change in the=20 > edk2-platforms repository - https://github.com/tianocore/edk2-platforms= =20 > to make sure that your git environment is set up properly to format edk2= = =20 > patches and your email service can send patches correctly. >=20 > We can discuss the details about how to set up your environment and what= = =20 > to change when you are ready. You can use this page to get started -=20 > https://github.com/tianocore/tianocore.github.io/wiki/How-To-Contribute. >=20 > 2. EDK II Minimum Platform Specification -=20 > https://edk2-docs.gitbook.io/edk-ii-minimum-platform-specification/ >=20 > For your project, this spec will be very useful. It describes why=20 > Minimum Platform was created and how it works at a high-level. Like the= =20 > code, this document is open and available to the community. You might=20 > contribute content here in addition to your code. You can fix any bugs= =20 > or update content in the spec using git patches and the mailing list=20 > similar to code. >=20 > 3. Intel FSP -=20 > https://www.intel.com/content/www/us/en/intelligent-systems/intel-firmwa= re-support-package/intel-fsp-overview.html=20 >=20 >=20 > For more information about Intel FSP check out the Intel FSP External=20 > Architecture Specification in the link above. v2.2 is currently the=20 > latest version. >=20 > There is an open source QEMU FSP available here=20 > https://github.com/universalpayload/fspsdk/tree/qemu_fsp_x64. You will= =20 > find the existing Minimum Platform boards use Intel FSP while OvmfPkg=20 > does not use FSP. >=20 > Firmware is really best learned hands on. Using the links and background= = =20 > info above, I suggest: >=20 > 1. Read the OvmfPkg readme. > 2. Build a 32-bit PEI and 64-bit DXE OVMF FW and boot it to EFI shell=20 > using QEMU. > 3. Reading through the EDK II Minimum Platform Specification to gain a= =20 > high level understanding of Minimum Platform. > 4. Connect what you read to the code in=20 > https://github.com/tianocore/edk2-platforms/tree/master/Platform/Intel.= =20 > Focus on higher level pieces like the board initialization library. > 5. Note what each board package is doing. You will find common patterns= =20 > 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= =20 > above to understand anything not Minimum Platform specific. Part of the= =20 > learning process is knowing which spec to use for different interfaces.= =20 > 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= = =20 > you can send to edk2-platforms for something very trivial such as a bug= =20 > fix or documentation update. > 8. Send the patch and get it reviewed-by the appropriate=20 > maintainers/reviewers and merged into the master branch. > 9. Read through the code in OvmfPkg. Try to map the work it is doing to= =20 > the board code you reviewed in edk2-platforms. > 10. At this point, you could start outlining major pieces of=20 > initialization in OVMF and how they might map to a board package. Try to= = =20 > identify where the initialization pieces would reside in the board=20 > package and try to identify challenges that might arise. We will likely= =20 > spend quite a bit of time here before jumping into too much code. >=20 > I know this is a lot of info. Please don't hesitate to reach out if you= =20 > have any questions and I look forward to working with you. >=20 > Regards, > Michael >=20 > On 5/18/2021 6:05 PM, gaoliming wrote: >> Include Michael Kubacki. >> >> Thanks >> Liming >>> -----=D3=CA=BC=FE=D4=AD=BC=FE----- >>> =B7=A2=BC=FE=C8=CB: devel@edk2.groups.io =B4=FA= = =B1=ED KAAIRA >>> GUPTA >>> =B7=A2=CB=CD=CA=B1=BC=E4: 2021=C4=EA5=D4=C218=C8=D5 22:42 >>> =CA=D5=BC=FE=C8=CB: Ray Ni ; devel@edk2.groups.io >>> =D6=F7=CC=E2: 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 MinPlatfo= rm >>>> Qemu OpenBoardPkg under the mentors Ray Ni and Michael Kubacki. >>> Thankyou >>>> for this opportunity. I have been over the major chapters of Beyond= =20 >>>> 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 >>> >>> >>> >>> >> >> >> >> >> >>=20 >>