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 74304
Build 71187: 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
105

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

114

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

122

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)

126

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

127

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

129

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

131

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

144

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.

153

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

163

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
105

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

114

I think that'd be really helpful!

122

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

126

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

127

yes please

129

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

131

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

161

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).