On 02/19/2014 02:20 PM, Bill Paul wrote: > Of all the gin joints in all the towns in all the world, Stephen Polkowski had > to walk into mine at 10:26:19 on Wednesday 19 February 2014 and say: > >> Thanks for the reply Andrew! >> >> I admit there are but a few reasons to program without >> "C". I can think of two. For example, educators might want to offer a >> course in assembly language programming to their students. An other reason >> would be to build an embedded OS without using the EDK2. No offense, but >> the EDK2 is a configuration mess and way too complicated for a college >> freshman. It would be way easier to give them one header file "uefi.inc" >> with some structures and a template block of code. >> >> Anyhow, I guess I'll take a look at the Linux UEFI Stub. Somehow, they >> figured out how to boot linux in UEFI without using the EDK2 build >> environment. > > There exists a thing called GNU EFI (http://sourceforge.net/projects/gnu- > efi/). It's a package which allows you to create EFI applications using a GCC > that's targeted for ELF (you still need a binutils that understands the pei- > i386 and pei-x86-64, but most systems support that by default these days). > It's much smaller than EDKII, but it's based on the EFI 1.1 development > environment and can't be used to create a complete firmware implementation for > a given platform. It is handy if you just want to create an OS loader app > though.
Several Linux-centric EFI applications (ELILO, shim, PreLoader, some versions of rEFIt, and probably others) build with GNU-EFI. My own rEFInd can build with either GNU-EFI or EDKII. I agree that it's an easier way to get started with EFI programming, particularly if the target audience is familiar with Linux/Unix-style Makefiles and whatnot. That's why I used it for my introductory EFI programming page: http://www.rodsbooks.com/efi-programming/index.html That's REALLY basic stuff. I might expand it eventually, but I've been busy with other things recently. FWIW, I'm pretty sure that GRUB 2 uses a self-rolled bare-bones EFI interface library, much like the kernel does. It might be worth looking at that, too -- but for a basic undergraduate introduction to EFI, GNU-EFI is probably the path of least resistance. -- Rod Smith rodsm...@rodsbooks.com http://www.rodsbooks.com ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel