Apple has an innovate approach to using the EFI variables to set the boot device. It has its own set which the OS-X gui uses, but which the firmware ignores.

A GUID of "Apple" connotes a GUID of 7c436110-ab2a-4bbb-a8-80-fe-41-99-5c-9f-82.

Variable name GUID Description
efi-boot-device Apple Contains vile xml which describes to OS-X what the boot device has been set by, appears to be completely ignored by the firmware
efi-boot-device-data Apple Comntains a (possibly compressed) EFI_DEVICE_PATH, which points to the combination of boot device and file, appears to be ignored by the firmware
Boot%04X EFI_GLOBAL_VARIABLE Contains an EFI_LOAD_OPTION, for each possible boot device, bless sets only one (Boot0800). GNU-EFI doesn't seem to define EFI_LOAD_OPTION see below for a definition. The firmware looks at these variables.
BootOrder EFI_GLOBAL_VARIABLE An array of unsigned 16 bit integers, this sets the order in which the boot devices are tried. bless sets this to be the single number 0x0080, which means try the boot device specified in the variable Boot0080 only. The firmware uses this variable.
BootCurrent EFI_GLOBAL_VARIABLE An unsigned 16 bit integer. I beleive the firmware sets this to the value of the Boot%04X it sucessfully booted from.
Timeout EFI_GLOBAL_VARIABLE An unsigned 16 bit integer. The number of seconds to wait before trying to boot. The fireware looks at this variable.

An EFI_LOAD_OPTION is a packed structure containing, in order:
UINT32attributescan be set to 0, or LOAD_OPTION_ACTIVE
UINT16path_list_lengththe size in bytes of "path", use DevicePathSize to determine this.
CHAR16description[]A null terminated description of this boot option
EFI_DEVICE_PATHpathA device and path from which to boot