Re: GSoC 2022: Add S3 resume support to MinPlatform

Nate DeSimone

Hi Benjamin,


Welcome back! That sounds like a great project! Speaking from experience on the HDMI closed chassis work and how much work there is left to do there, I think that the two combined would qualify as a large project and they fit together rather naturally since the HDMI closed chassis debugging will undoubtedly help you get S3 resume working. It sounds like you have done some research already which is great! I’ll dig up the code that I have thus far and point you at it as well. What I have is mostly working but there does seem to be some bugs in it, especially around handling I/O errors on the DDC bus.


From what I remember most of the needed interaction was indeed with registered in the GMBUS, but I seem to recall also having to program some GPIOs as the PHY for the low speed DDC connection was implemented on the PCH side. Again… let me find the code and we can work from there.


Anyway, sounds like an awesome proposal and a fun summer project, feel free to write up a proposal 😊.


With Best Regards,



From: <> On Behalf Of Benjamin Doron
Sent: Tuesday, April 5, 2022 11:14 AM
Cc: Desimone, Nathaniel L <nathaniel.l.desimone@...>; Kubacki, Michael <michael.kubacki@...>
Subject: Re: [edk2-devel] GSoC 2022: Add S3 resume support to MinPlatform



I'm looking for feedback on a proposal for a large project. I intend to implement S3 resume for MinPlatform (medium project) and develop closed chassis debug over an HDMI cable as an additional project to assist the bringup work. Commonly, serial ports in laptops are either difficult to access or missing entirely. As Nate has previously addressed (, HDMI's DDC pins offer a connection to an I2C controller available early in the boot process, making it a good candidate as early, accessible debug port.


On Intel chipsets, the GMBUS implements the I2C controller. It has registers inside the iGFX MMIO and is documented in Intel's iGFX PRMs. I plan to use the register definitions and the documentation of EDID access, along with the I2C specification, to develop this project.


Would this make for a good project proposal? I'd appreciate any feedback. Thanks.


Best regards,




On Tue, 22 Mar 2022 at 17:14, Benjamin Doron <benjamin.doron00@...> wrote:

Hi all,

I'm Benjamin Doron. Last year, I worked on a board port to MinPlatform. This year, I hope to pick up where I left off and help improve MinPlatform by adding support for S3 resume (time permitting and if my skills are sufficient, etc). Previously, I worked a little on coreboot (mainly a board port), and a fork with some improvements for UefiPayloadPkg.


I'm a little apprehensive reading the task proposal, but I really don't think that I would have to design the S3 architecture; the easiest part is adding the module stack. It's some of the deviations from the regular boot-flow in related areas like memory and CPU init (complicated by preparing the data structures and the adjacent FSP) that I have to worry about, as I understand (which I began looking at last year and discussed with Nate and Michael).


Before, code analysis gave me some hints and I found issues to address, but I want to consider actual possibilities for debugging. I've looked at the S3 boot-flow and from early PEI to the S3Resume2 PPI, the boot script and SMM, there are a lot of things to verify. Analysing code at each step to resolve issues might take a while. Some ideas I had:

  • Realistically, the SPI flash console or an accessible serial port.
  • Simics, or other simulator/emulator: Would be helpful, if the architecture of SimicsOpenBoardPkg weren't so different from MinPlatform.
  • System debug with DCI: Would be great, but my laptop has disconnected CPU<->PCH JTAG pins. Fixing this would presumably be very risky. (I now also have a Tigerlake system, where DCI might work, but I haven't tried and I don't have a port yet.)

I should mention that I'll almost certainly be taking at least one course, but no more than two.


Looking forward to working with you all!


Best regards,


Join to automatically receive all group messages.