diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c index 087d6bf434..6b3d29ba3b 100644 --- a/src/boot/efi/boot.c +++ b/src/boot/efi/boot.c @@ -2660,6 +2660,12 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) { /* Uncomment the next line if you need to wait for debugger. */ // debug_break(); + /* The firmware may skip initializing some devices for the sake of a faster boot. This is especially + * true for fastboot enabled firmwares. But this means that things we use like input devices or the + * xbootldr partition may not be available yet. Reconnect all drivers should hopefully make the + * firmware initialize everything we need. */ + (void) reconnect_all_drivers(); + err = BS->OpenProtocol(image, &LoadedImageProtocol, (void **)&loaded_image,