Skip to content
This repository has been archived by the owner on Aug 5, 2022. It is now read-only.

Create design docs similar to slimbootloader #10

Open
out0xb2 opened this issue May 23, 2019 · 4 comments
Open

Create design docs similar to slimbootloader #10

out0xb2 opened this issue May 23, 2019 · 4 comments

Comments

@out0xb2
Copy link

out0xb2 commented May 23, 2019

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
Copy link

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
Copy link

rprangar commented Jun 7, 2019

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
Copy link
Author

out0xb2 commented Jun 8, 2019

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
Copy link

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants