1 Reply Latest reply on Jun 25, 2014 3:26 PM by JPMontero_Intel

    UEFI application development for Galileo with Gnu-Efi

    Phil_Gekni

      Hi,

       

      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 ?

      Thanks!