There are some notes regarding the open-source UEFI implementations and CoreBoot, which is used on the laptop owned by OP.
Disclaimer: those information are just from my own and my friends experiences, then may or may be not correct.
So, the CoreBoot is an open-source "BIOS" which uses some blobs for initializing the low level hardware and "payloads" for frontends - aka bootloaders. There are tons of CoreBoot payloads, but usually are used one of those two:
SeaBIOS : which is like the BIOS - the one from QEMU, it is 32bit only and can boot 32bit and 64bit OSes, but does NOT support NVME drives.
TianCore : which is an open-source EFI implementation, and it is like the EFI support from VirtualBox, it have also a variant named UEFI DUET which I use to make some of my BIOS-only motherboards to have UEFI support. It have support also for NVME drives as any proprietary EFI. It can be 32bit or 64bit, BUT the 64bit builds has no CSM, then it can boot only 64bit EFI capable operating systems.
This TianCore (or UEFI DUET) is
really picky about the setup of system/boot EFI partitions. They must have the FAT32 filesystem and the hidden sectors setup accordingly. Believe or not, likely the FAT16 partitions will generate strange issues.
When it is used a MSDOS label, the system/boot EFI partition must be of type
EF and to be formatted with a command like:
Code:
mkdosfs -h 2048 -F32 -L ESP /dev/sda1
The "hidden sectors" value must be equal with the beginning/first sector of partition - in my example it is first partition and starts at sector 2048 . Of course, also the device should be customized as is the case.
A good size for this the system/boot partition is 512MB or 1GB.
Depending on the particular build this TianCore (and specialy UEFI DUET) may have issues with the EFI vars and specially with the boot variables - both at writing and reading.
Then, the fancy locations like those setup by the Slackware Setup:
/EFI/Boot/Slackware/elilo.efi will likely NOT work, and the proper solution is to use the default boot location:
/EFI/Boot/Bootx64.efi, then you can copy the elilo.efi and its config file to
/EFI/Boot then rename
elilo.efi as
Bootx64.efi - even better (and prefered by me) is to put in this default location a boot manager like
rEFInd, because you can load custom EFI drivers and detect on-fly new EFI boot devices like the plugged-in USB 3.0 hard drives.
I hope that those notes will help, considering that I managed to properly boot even Windows 10 from a NVME drive mounted in an adapter put in the PCIE x16 slot from a BIOS-only motherboard.
However, from my own experiences, booting from TianCore (or UEFI DUET) is not as simple as it looks - and I do not even started about how to setup the BIOS bootloaders (yes, you need two) for that UEFI DUET kernel named
Efildr20 to be bring up and lighting as wasn't the case in this particular thread...