12-14-2019, 09:06 PM
Quote:Hi @z4v4l, for UEFI I think completeness is best defined by the ability to accomplish useful tasks, such as booting an installer from SD card and installing a (working ) OS to eMMC.I don't want to argue in vain on the topic of what is the best measurement for the completeness of a standard implementation, but what you show above as an example is what uboot exactly lacks to acomplish by means of its UEFI part. because what you described, does require Boot#### variable and Co support. I mean if one would want to install the OS through the UEFI environment mechanism. we weren't about grub or any other addons. if an implementation is complete/comformant, then it lets you do what you described just by means specified in the spec. uboot doesn't have Boot Manager at all.
Quote:Ultimately the minimum feature set needed to be UEFI complaint is surprisingly small (and, with the latest spec update, includes the option to return EFI_UNSUPPORTED for all runtime services) and I think it is better to measure "completeness" in what percentage of *use-cases* work rather than what percentage of *features* are implemented.you are very optimistic about the UEFI requirements "minimalism". namely, the aforementioned NVRAM variables are defined and required, - without them it's impossible to install an OS, the UEFI way. the fact linux "can" do something with grub is kewl, but it's not UEFI, an OS that relies on the latter and gives no sh1t about grub would fail to install. I realize, an OS for PBP means linux only so far, but it may change (hopefully ), the point is we were talking about if UEFI in uboot is usable, not about halfassed ways that linux can be somehow installed. funny enough, but with eDP from your example, I don't know where you read so liberal requirements, in my book (again, i am away from the computer and the tablet is killing me, so I only check quickly with what is present locally and this is v2.4), so the "requirements" section clearly says - if a platform has a "video output device", the implementation must support it (through the bunch of related protocols like GOP and others). so your example actually confirms uboot incompliance even by the subjective "usefulness" criterion.
As a concrete example personally I would prioritize support for the eDP panel over support for setting non-volatile variables (neither of which is required to be compliant). This is because multiple Linux installers can install a bootable OS on UEFI systems where EFI_RUNTIME_SERVICES.SetVariable() is not implemented but interacting with grub via the serial port is a lousy user experience. To be clear SetVariable() is a good thing to implement but for my own hacking it is not on the radar yet.
ANT - my hobby OS for x86 and ARM.