Page MenuHomeFreeBSD

loader.efi: Document the complicated boot selection protocol
Needs ReviewPublic

Authored by imp on Wed, Jun 24, 4:04 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Jul 8, 5:35 AM
Unknown Object (File)
Mon, Jul 6, 5:11 AM
Unknown Object (File)
Sun, Jul 5, 6:11 PM
Unknown Object (File)
Sun, Jul 5, 6:11 PM
Unknown Object (File)
Sun, Jul 5, 6:09 PM
Unknown Object (File)
Sun, Jul 5, 6:09 PM
Unknown Object (File)
Sun, Jul 5, 5:13 PM
Unknown Object (File)
Sun, Jul 5, 5:09 PM
Subscribers

Details

Reviewers
manu
kevans
ziaee
Summary

Document the boot selection protocol after all the recent cleanups.

Sponsored by: Netflix

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 74179
Build 71062: arc lint + arc unit

Event Timeline

imp requested review of this revision.Wed, Jun 24, 4:04 AM

I had claude generate the first draft of this, and I've revised it a few times for this, but looking at the review later, I still have some work to do.

stand/man/loader.efi.8
83

Should this be 'ZFS boot environments...'? or some other phrasing?

92

This is a loader device (eg disk4p8). Do we need to say that somewhere?

100

Is this a good way to refer to the UEFI device paths?

VirtualDisk(0x65363000,0x77F6BFFF,0)
PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400123456,0x1)
PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0xFFFF,0x0)

104

Maybe "examines the BootXXXX UEFI environment variables set by the firmware" instead?

105

Maybe instead of follow-on this should be 'If a boot image is specified in the BootXXXX variable," instead?

107

Maybe use "other variables in the loader's environment" instead here?

109

Maybe ", /boot/kernel/kernel, the default kernel, is checked."

122

Begs the question about how this is specified. At the moment, it isn't documented. Future efforts will document the UEFI Loader Environment variables and the loader environment variables and some attempt will be made to regularize the terminology.

131

This needs some work, but I'm not sure how.

141

I'm not sure about this... Basically it's saying. that there's a 5 second countdown to allow breaking to OK, but then it fails.

I was so excited to see this in my inbox. People have been asking me to write this for years and I tell them I wish that I could. Thank you so much for doing this.

stand/man/loader.efi.8
83

I like boot environments, it's unambiguous enough, and I wrote it that way in all the docs like bectl(8).

92

I think that'd be really helpful!

100

If that's how it is, I think that will be really helpful as I have no clue!

104

i like the increased specificity, and we could Ev them too

105

yes please

107

yes please, you could even "such as" if you wanted, but it makes sense to me without that.

109

Yes please, "the search continues" is a bit ambiguous.

139

maybe?

So I think we need a .Ss Loader Environment Variables .Ss UEFI Environment Variables .Ss Loader File Naming and .Ss UEFI Paths or similar and refer to those. Maybe we need the Loader ones in loader.8 and a xref here. We need to document environment variables too...

OK. Update per zaiee's comments
And add a UEFI device path section with some breadcrumbs,
though this might be better in efibootmgr(8).