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

Reply via email to