From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-vs1-f50.google.com (mail-vs1-f50.google.com [209.85.217.50]) by mx.groups.io with SMTP id smtpd.web08.30682.1653327238810679440 for ; Mon, 23 May 2022 10:33:59 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=JEIUpZr9; spf=pass (domain: gmail.com, ip: 209.85.217.50, mailfrom: pedro.falcato@gmail.com) Received: by mail-vs1-f50.google.com with SMTP id c62so15762922vsc.10 for ; Mon, 23 May 2022 10:33:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=h3MwdndDYh4vPDkI6S7v3AXUw3Oy7BuIdEtVx7JUYsE=; b=JEIUpZr9ZxlP+sjc8bzY0SYbPRuxbBmbFBofOfaEOwukMVY1r9kMkC5ls6fGtgYbnC MiW4CT+vBCuSNUdB0xUXz3SO27y/1jyU73rAmxatdsLRLGcCo9VE6nLoC2hXKY6kiK4j 4f+M24mO7m1pvsdUnPbNmP1U4y+vPzg6AtCm7c1QrQe2B9qDgkQYGnt90oA/lGQgSKYA MgiNq32lcTEOUW8z/U9Di5GA09TkdgVoEbB9lFnBlMm/nB/md72j1Gm7OAWMl88FsQud z4ODTFYMT/wKMpgMvPM3dXK4qwWuyGXgVKriurN00YPfnXrCP94srrsbI8mQDYYupjpK +koQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=h3MwdndDYh4vPDkI6S7v3AXUw3Oy7BuIdEtVx7JUYsE=; b=5Qj36XWg4Cyx7yXoOT/CSUU2c3lTwHmFZBJs6Z+SYrCLvGE3RdGane2Uw/LNcJK+80 PlBz1b7EHAhFtFwuaGEvTAiLl1OxHPbultN0AZBbOfQz8GwhLF2uXR1daVMET+Bgtkv3 HQbyw9vXjo0YCr0/TcgHlueFQjUfLduFQ1C6+qm1wYxOkYOqVKb6a/SE+MCHjqm+5Yem T9JY/GY3KWcIZV0RhvadjdZxbai+jzbW6ndLu+q5e6no71Xd7SubEsjE1TLAueRx32iU vS3Onbxsr7nt5yt/HF3LTWGNz/N30Ii4HhwTBWRh/e24VY5OG51WpPE71rqC+ugDuPVT huDg== X-Gm-Message-State: AOAM531NJa/oLtpxBEVOsh7A16uSrQ1QnQJhxxKOhXvGA1nuQcIDt8fy lNuBVvMCunDBrYj8ZWFUxc0rlvhd/Pl3Pcintkdw0XFTKuE= X-Google-Smtp-Source: ABdhPJyYsAP01i1jakAs2t9wHE1IPLoA9rhoJEoHtwYhC58b2h+yVKAMMHU1cb7iH4dtbH0Cbqw+TCdS7NB+yUaj7fk= X-Received: by 2002:a05:6102:cce:b0:32d:301b:72f with SMTP id g14-20020a0561020cce00b0032d301b072fmr9928964vst.62.1653327237733; Mon, 23 May 2022 10:33:57 -0700 (PDT) MIME-Version: 1.0 References: <28907.1653324625343525442@groups.io> In-Reply-To: <28907.1653324625343525442@groups.io> From: "Pedro Falcato" Date: Mon, 23 May 2022 18:33:46 +0100 Message-ID: Subject: Re: [edk2-devel] [GSoC 2022] Introducing myself & seeking for project ideas To: edk2-devel-groups-io , Benjamin Doron Cc: Nate DeSimone , Gerd Hoffmann , Isaac Oram Content-Type: multipart/alternative; boundary="000000000000b3e14005dfb13ef9" --000000000000b3e14005dfb13ef9 Content-Type: text/plain; charset="UTF-8" (CC Gerd, Isaac) Comments inline. On Mon, May 23, 2022 at 5:50 PM Benjamin Doron wrote: > 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 (the > platform some emulators expose), so I looked at porting 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 Simics' ICH10 are fairly > similar. There are other QEMU machines, but I can't comment on those. > We're still trying to figure everything out and since the GSoC projects were only announced Friday, we haven't discussed much. My idea was to try to get something relatively smaller and simpler than current OVMF, as the end result can be a lot more interesting than just repackaging OVMF or straight up copying SimicsOpenBoardPkg; we're also mostly aiming for Stage IV (Booting to an OS), so we can safely discard some of the advanced features of OVMF for now. Again, I'd like to give you more details but it's still too early and we're trying to introduce Theo to UEFI; hopefully we'll get a better idea of the project for the summer this week. > > SimicsOpenBoardPkg can partially boot QEMU with a minimum of changes. It > makes 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 > 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 fix this, > the SMM access, maybe SMM control drivers would need to be patched; some > register definitions differ between chipsets. > One issue with QEMU is that you currently have 3 machines worth supporting: the i440fx (i440fx + PIIX), which is the default, the Q35 (Q35 + ICH9), and the microvm (probably not going to be apart of the scope of this project, at least for now, even though OVMF supports it). I don't know much about Simics or SimicsOpenBoardPkg, but I imagine that taking way too much inspiration from them would possibly negatively impact the capability of supporting multiple platforms in one OpenBoardPkg. > > 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 MinPlatform's FSP-centric libraries. I'm probably > going to skip to the step where I try Frankensteining enough MinPlatform > code in to suffice my testing. > > Best regards, > Benjamin > > > -- Pedro Falcato --000000000000b3e14005dfb13ef9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
(CC Gerd, Isaac)

Comments inline.

On Mon, May 23, 2022 at 5:50 PM Benjamin Do= ron <benjamin.doron00@gmai= l.com> wrote:
Hi Theo and Nate,
I took a brief look at this myself, because havin= g an emulated environment would help me with my project. I didn't know = then that QemuOpenBoardPkg was an accepted project this year. OvmfPkg is la= rge, I'm unfamiliar with QEMU's codebase and I'm only minimally= familiar with Intel's old ICH chipsets (the platform some emulators ex= pose), so I looked at porting QEMU's Q35 + ICH9 support into SimicsOpen= BoardPkg. 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 simi= lar. There are other QEMU machines, but I can't comment on those.
We're still trying to figure everything out and since t= he GSoC projects were only announced Friday, we haven't discussed much.= My idea was to try to get something relatively smaller and simpler than cu= rrent OVMF, as the end result can be a lot more interesting than just repac= kaging OVMF or straight up copying SimicsOpenBoardPkg; we're also mostl= y aiming for Stage IV (Booting to an OS), so we can safely discard some of = the advanced features of OVMF for now. Again, I'd like to give you more= details but it's still too early and we're trying to introduce The= o to UEFI; hopefully we'll get a better idea of the project for the sum= mer this week.
<= br>SimicsOpenBoardPkg can partially boot QEMU with a minimum of changes. It= makes it into the DXE phase (where we'd eventually get a shell), but f= ails to initialise SMM, so it can't load the variable driver in there. = Many drivers depend on the variable protocol, including critical UEFI-archi= tecture ones, so the DXE core will assert and hang after printing a bunch o= f "driver GUID discovered but not loaded" messages. To fix this, = the SMM access, maybe SMM control drivers would need to be patched; some re= gister definitions differ between chipsets.
One issue = with QEMU is that you currently have 3 machines worth supporting: the i440f= x (i440fx + PIIX), which is the default, the Q35 (Q35 + ICH9), and the micr= ovm (probably not going to be apart of the scope of this project, at least = for now, even though OVMF supports it). I don't know much about Simics = or SimicsOpenBoardPkg, but I imagine that taking way too much inspiration f= rom them would possibly negatively impact the capability of supporting mult= iple platforms in one OpenBoardPkg.

Anyways, I can send you my diff if you'd like, = or you're welcome to approach this any way you'd like. SimicsOpenBo= ardPkg is not a true MinPlatform board because it implements a number of in= it steps itself rather than using some of MinPlatform's FSP-centric lib= raries. I'm probably going to skip to the step where I try Frankenstein= ing enough MinPlatform code in to suffice my testing.

Best regards,<= br>Benjamin =20



--
Pedro Falcato
--000000000000b3e14005dfb13ef9--