-
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quiet and fast boot #204
base: dasharo
Are you sure you want to change the base?
Quiet and fast boot #204
Conversation
Still I need to check how big is the impact of connecting storage controllers only vs Also need to test on headless system and a laptop with PS/2 |
@miczyg1 looks neat. Congratulations! |
Nah, |
1b4ee43
to
27e49ef
Compare
Recursive connect helped |
Tested on VP6670 and no problems. |
Also tested on NS5x ADL. In Windows the Tasks Manager shows improvement from 7.2 seconds without fast boot to 3.9 seconds with fast boot. The internal PS/2 keyboard also works in FW when firmware setup is requested from OS, so PS/2 should be fine. |
27e49ef
to
9ee37cf
Compare
…ions Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
… boot Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
…n fast boot Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
… boot Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
…n fast boot Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Use a depex file containing a NOT gDasharoFastBootPolicyGuid to prevent loading the module if fast boot is enabled. Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
…heck Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
…boot Recursively connect drivers to storage devices, so that all protocols will be installed on the storage handles. Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
… boot Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
…boot Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
9ee37cf
to
435efc9
Compare
Works like a charm with Windows. The boot time in firmware is reduced from 11.1 seconds (effectively 8.1 seconds if 3second boot timeout is disregarded) to 4.9 seconds. The results may be checked in the Task Manager (Startup tab). Tested on MSI Z690-A DDR4 with RPL CPU.
The same time is achieved with Linux, with a small caveat. If the bootloader is GRUB, it will always try to read keystrokes, which means the console input will be connected by the firmware. However, the time consumed for connecting consoles is shifted to the bootloader itself. Summing it up, for Ubuntu, the boot time is as follows:
There is probably still more things can can be optimized. E.g. if the user ensures that each OS has ESP on the same disk as rootfs, we can skip connecting all storage medias unconditionally. In a case where ubuntu was installed alongside Windows, but on a different disk sharing the ESP, GRUB will fail to find the grub.cfg on the rootfs of the Linux distro.
Another small issue is that the fast boot only works with boot options created by the OS/bootloader. Boot options autodetected and autocreated by the firmware do not work (there seem to be a race conditions between refreshing the boot options and enumerating all devices after rivers are connected to controllers).Ideas for future improvements:
MdeModulePkg/Library/BootDiscoveryPolicyUiLib
andMdeModulePkg/Universal/BootManagerPolicyDxe
to allow some customization of fast boot flow and the boot manager flow in general.