I currently working on UFEI Applications for Galileo.
I began work with EDK2. Applications makes with work correctly on virtual machine (QEMU with OVMF from EDK2) and a real board.
The problem is that EDK2 is heavy going to interface with my team's work.
So, I have chosen to use Gnu-Efi. I succeed in compiling a ia32 uefi application (for exemple a simple hello world) and lunched it on VM but when I try to turn it on a Galileo, I have no one output, yet I use the same structure between EDK2 and Gnu-Efi for my Hello World example.
I same try to don't use Gnu-Efi wrapper function (It seems it is not essential for Ia32 applications :http://www.rodsbooks.com/efi-programming/efi_services.html) but still no result.
I find this fact odd inasmuch as the Grub form bsp package for Galileo use Gnu-Efi and works great.
I have try to analyse tools chains from my project and the grub for Galileo... Too cryptic.
However, this is the log of "Hello World" Gnu-Efi compilation :
/usr/bin/gcc -I. -I./../inc -I./../inc/ia32 -I./../inc/protocol -mno-mmx -mno-sse -m32 -O2 \ -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -ffreestanding \ -fno-stack-protector -fno-stack-check -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args \ --std=c11 -DCONFIG_ia32 -march=i586 -D__KERNEL__ -I/usr/src/sys/build/include -c t.c -o t.o /usr/bin/ld -nostdlib --warn-common --no-undefined --fatal-warnings -shared -Bsymbolic -L../lib -L../gnuefi \ ../gnuefi/crt0-efi-ia32.o t.o -o t.so -lefi -lgnuefi /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.0/32/libgcc.a \ -T ./../gnuefi/elf_ia32_efi.lds /usr/bin/objcopy -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \ -j .rela -j .reloc --target=efi-app-ia32 t.so t.efi
Somebody have developed a UEFI Application for Galileo with Gnu-Efi ?
EDKII as provided by Quark BSP is the only support UEFI tool for Galileo. You can find more details in the UEFI firmware writer’s guide https://communities.intel.com/docs/DOC-22477