-
-
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
MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManager.vfr
Show resolved
Hide resolved
Seems to be working well on NovaCustom V540TU as well 👍 |
Found some issues in further testing. On V540TU with windows 11, with fastboot enabled, the builtin keyboard stops working. I'm not sure why I didn't catch that before, maybe because the keyboard stayed initialized after reboot, but doesn't work after cold boot. Even when booting into the advanced startup menu or into the UEFI setup menu, the builtin keyboard does not work. Needed to use a USB keyboard to exit this state. Windows boot manager also throws an error that it could not load winload.efi, when attempting to enter the advanced startup menu. |
I suspected there might be problems with PS/2. Similar things happened on MSI too (even before fast boot was implemented), that depending o nwarmboto or cold boot the PS/2 would or would not work in OS. Some initialization of PS/2 controller (not keyboard) seem to be required on boot, regardless of keyboard presence.
That's weird and have no idea where it may come from. I have not encountered that. |
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.