intel / ModernFW

Other
107 stars 18 forks source link

Create design docs similar to slimbootloader #10

Open out0xb2 opened 5 years ago

out0xb2 commented 5 years ago

Slimbootloader has some nice docs, see https://slimbootloader.github.io/developer-guides/boot-flow.html#end-to-end-call-graph

It would be nice if ModernFW had similar docs including a slimbootloader compare/contrast. Many of the goals seem aligned, but perhaps ModernFW prefers steeply vertical over Extensible & Configurable? Though, why can't those be build options in slimbootloader? Seems like significant duplication of effort.

vincent-j-zimmer commented 5 years ago

That's a great suggestion. I'll follow-up. We did some exploration of different flows in OCP OSF https://docs.google.com/document/d/1DWFdPrZlifSxznirN4r5QemmBEi6-1Fpfy0lac77arQ/edit but the Slimbootloader you mention provides a clean approach for this. Also, the payload concept of Slimbootloader, like coreboot, provides a nice demarcation between platform initialization and the OS boot loader environment.

rprangar commented 5 years ago

Hi

SBL follows the concept of platform initialization followed by OS boot logic code through a payload.

While the SBL repo contains support for Apollolake platform (Atom), we are planning to add support for more projects including Whiskleylake/Coffeelake (core), etc this year.

We did a POC to test SBL scalability for microserver platforms using Denverton SOC and the code is available here https://github.com/rprangar/ModernFW/tree/SBL_DNV_POC

This POC also includes a small prebuilt linux kernel as part of the flash and will boot to it by default.

SBL can launch an UEFI payload - https://github.com/tianocore/edk2/tree/master/UefiPayloadPkg to boot an UEFI OS as well.

Thanks Ravi

out0xb2 commented 5 years ago

So... we fork ModernFW, change 8,756 files with 751,718 additions and 2,228,047 deletions, and we end up with... SlimBootLoader... which will not be integrated back into ModernFW? Is there a convergence plan then, or 2 separate projects with some overlapping goals, but some different (which is not clear at this time).

rprangar commented 5 years ago

My understanding about the over arching goal for Modern FW is simplicity - to cater to certain classes of systems/use cases. How ModernFW will evolve is an open in my opinion (emphasis on my opinion).

In that context, SBL POC was provided as an example of a design where platform initialization and OS boot are handled in different stages/phases. While platform initialization is the common/minimum requirement, the OS boot logic can be customized to cater to different use cases. As I posted in my previous reply Linux direct boot and UEFI both can be supported with SBL.

BTW, the number of changes may be skewed – since SBL inherits only a small subset of the EDK2 codebase, I deleted the whole tree and dropped the SBL POC code in. That is why the code is in a fork.