UEFI News and Commentary

Monday, March 26, 2012

UEFI Plugfest In May Will Feature ARM & Secure Boot

UEFI just sent me the flyer for the May plug-fest in Taipei, hosted by Phoenix Technologies and UEFI. The last two were hosted by Insyde out at the Holiday Inn. This one is being held at the Sunworld Dynasty Hotel in Taipei. I can't remember if I've been there before, but the pictures make it look nice. Interesting will be a presentation about UEFI on ARM, presented by ARM Holdings itself. ARM has been really active this past couple years, and has dedicated resources improving the TianoCore.org sample implementation of UEFI.

Then there will be stuff on getting Secure Boot set up correctly during PC manufacturing and something about firmware security holes (which I'm guessing will be an update to what Microsoft talked about at the February plugfest, although I haven't heard). I'll be there in a supporting role.

Tuesday, March 06, 2012

UEFI Driver Writer's Guide & Wizard Released

Many times I hear the question: How do I write a UEFI driver for X? Or, as it is more commonly expressed: "UEFI is so dang complicated. In XYZ standard (where XYZ = BIOS or coreboot or OpenFirmware) I could just initialize my hardware, provide a few hooks and I'm done. Stupid UEFI." And there is some truth in that. Actually, you can write very simple drivers for UEFI that just initialize the hardware and produce the required interfaces. But, the very simple kind are hard to debug and don't play nice with others. For example, when we're trying to boot quickly, the UEFI core firmware need devices that aren't part of the boot path to not initialize their devices so that boot will be faster. How do you know if you are in the boot path? By whether the Start() function of the Driver Binding protocol gets called. And what happens if your device is configurable? How do you expose your configuration settings? By publishing a form in the HII Database. And so on. There are a lot of pieces to creating a fully-featured driver.

Fortunately, Intel has recently released a series of resources as a part of the TianoCore's "Enabling Resources" page, including a (long delayed) Driver Writer's guide and the UEFI Driver Wizard, which creates driver skeleton for various types of UEFI drivers.

Go check it out. Now if they would only port the C Library to work with drivers instead of just shell apps...