I'm porting UEFI BIOS. I'd like to download an Linux image (bzImage) to system memory by TFTP in my UEFI shell, and then boot the OS directly. I know we generally need another bootloader to do that. But is it possible to boot Linux in UEFI BIOS? And how?
migrated from stackoverflow.com Feb 10 '11 at 15:52
As far as I know, a UEFI firmware (not BIOS, that's something else) can only load UEFI applications corresponding to the EFI firmware architecture. So you can't directly load a Linux kernel, but you should be able to load a UEFI bootloader which will then load the Linux kernel into memory and jump to it. I know of GRUB2 and ELILO which support UEFI, you may want to check them out.
Update: Since I've posted this answer it has since become possible to compile a Linux kernel with the EFISTUB option, which allows to directly execute/load the kernel as an EFI image without having to use a boot loader (that being said, using a boot loader such as Gummiboot is probably still a good idea).
Basically, yes but firstly you need to enable the network card so that your target machine can ping the FTP server to get the kernel image.
Checkout the EDK Boot Loader (EBL) WiKi SourceForge link.