Я работаю над крошечным 64-битным ядром x86, совместимым с multiboot2, ядро загружается и запускается Grub. Требование состоит в том, что после того, как ядро завершит свою работу, ему необходимо перезапустить Grub. В системах, не основанных на UEFI, мы использовали для достижения этого, переводя процессор обратно в реальный режим, перескакивая на адрес 0x7c00.
В системах UEFI я пытаюсь понять, возможно ли что-то подобное, один из возможных подходов в моем разум состоит в том, чтобы перезагрузить Grub из ядра, используя процедуры EFI_IMAGE_LOAD и EFI_IMAGE_START в таблице служб загрузки EFI. Мое понимание внутреннего устройства UEFI очень ограничено, было бы очень полезно, если бы кто-нибудь мог подтвердить, будет ли этот подход работать или нет.