From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Re: [edk2-devel] [GSoC 2022] Introducing myself & seeking for project ideas To: Nate DeSimone ,devel@edk2.groups.io From: "Benjamin Doron" X-Originating-Location: Richmond Hill, Ontario, CA (24.52.200.135) X-Originating-Platform: Linux Firefox 100 User-Agent: GROUPS.IO Web Poster MIME-Version: 1.0 Date: Mon, 23 May 2022 09:50:25 -0700 References: In-Reply-To: Message-ID: <28907.1653324625343525442@groups.io> Content-Type: multipart/alternative; boundary="kxLANT30CjfH1QnDnhJI" --kxLANT30CjfH1QnDnhJI Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Theo and Nate, I took a brief look at this myself, because having an emulated environment = would help me with my project. I didn't know then that QemuOpenBoardPkg was= an accepted project this year. OvmfPkg is large, I'm unfamiliar with QEMU'= s codebase and I'm only minimally familiar with Intel's old ICH chipsets (t= he platform some emulators expose), so I looked at porting QEMU's Q35 + ICH= 9 support into SimicsOpenBoardPkg. I don't know how you're preparing, but I= 'd recommend at least a look there: Q35's ICH9 and Simics' ICH10 are fairly= similar. There are other QEMU machines, but I can't comment on those. SimicsOpenBoardPkg can partially boot QEMU with a minimum of changes. It ma= kes it into the DXE phase (where we'd eventually get a shell), but fails to= initialise SMM, so it can't load the variable driver in there. Many driver= s depend on the variable protocol, including critical UEFI-architecture one= s, so the DXE core will assert and hang after printing a bunch of "driver G= UID discovered but not loaded" messages. To fix this, the SMM access, maybe= SMM control drivers would need to be patched; some register definitions di= ffer between chipsets. Anyways, I can send you my diff if you'd like, or you're welcome to approac= h this any way you'd like. SimicsOpenBoardPkg is not a true MinPlatform boa= rd because it implements a number of init steps itself rather than using so= me of MinPlatform's FSP-centric libraries. I'm probably going to skip to th= e step where I try Frankensteining enough MinPlatform code in to suffice my= testing. Best regards, Benjamin --kxLANT30CjfH1QnDnhJI Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Theo and Nate,
I took a brief look at this myself, because having a= n emulated environment would help me with my project. I didn't know then th= at QemuOpenBoardPkg was an accepted project this year. OvmfPkg is large, I'= m unfamiliar with QEMU's codebase and I'm only minimally familiar with Inte= l's old ICH chipsets (the platform some emulators expose), so I looked at p= orting QEMU's Q35 + ICH9 support into SimicsOpenBoardPkg. I don't know how = you're preparing, but I'd recommend at least a look there: Q35's ICH9 and S= imics' ICH10 are fairly similar. There are other QEMU machines, but I can't= comment on those.

SimicsOpenBoardPkg can partially boot QEMU wi= th a minimum of changes. It makes it into the DXE phase (where we'd eventua= lly get a shell), but fails to initialise SMM, so it can't load the variabl= e driver in there. Many drivers depend on the variable protocol, including = critical UEFI-architecture ones, so the DXE core will assert and hang after= printing a bunch of "driver GUID discovered but not loaded" messages. To f= ix this, the SMM access, maybe SMM control drivers would need to be patched= ; some register definitions differ between chipsets.

Anyways, I = can send you my diff if you'd like, or you're welcome to approach this any = way you'd like. SimicsOpenBoardPkg is not a true MinPlatform board because = it implements a number of init steps itself rather than using some of MinPl= atform's FSP-centric libraries. I'm probably going to skip to the step wher= e I try Frankensteining enough MinPlatform code in to suffice my testing.
Best regards,
Benjamin --kxLANT30CjfH1QnDnhJI--