# HG changeset patch # User taiki # Date 1356500417 -32400 # Node ID d390aa667e3c1a1e6517c6e767075c83e3e02509 # Parent c778c27450cce9031c9a81b3f40939c3f356870f program test. diff -r c778c27450cc -r d390aa667e3c boot/Makefile --- a/boot/Makefile Wed Dec 19 01:10:08 2012 +0900 +++ b/boot/Makefile Wed Dec 26 14:40:17 2012 +0900 @@ -1,3 +1,8 @@ +LD = /home/taiki/local/bin/ld +OBJCOPY = /home/taiki/local/bin/objcopy + + + ARCH =$(shell uname -m |sed s,i[3456789]86,ia32,) LIB_PATH = /usr/lib64 EFI_INCLUDE = /usr/include/efi @@ -7,7 +12,7 @@ EFI_CRT_OBJS = $(EFI_PATH)/crt0-efi-$(ARCH).o EFI_LDS = $(EFI_PATH)/elf_$(ARCH)_efi.lds -CFLAGS = -fno-stack-protector -fpic -fshort-wchar -mno-red-zone $(EFI_INCLUDES) +CFLAGS = -O2 -Wall -fno-stack-protector -fpic -fshort-wchar -mno-red-zone $(EFI_INCLUDES) ifeq ($(ARCH),x86_64) CFLAGS += -DEFI_FUNCTION_WRAPPER endif @@ -25,7 +30,7 @@ $(LD) -o $@ $(LDFLAGS) $^ $(EFI_LIBS) %.efi: %.so - objcopy -j .text -j .sdata -j .data \ + $(OBJCOPY) -j .text -j .sdata -j .data \ -j .dynamic -j .dynsym -j .rel \ -j .rela -j .reloc -j .eh_frame \ --target=efi-app-$(ARCH) $^ $@ diff -r c778c27450cc -r d390aa667e3c boot/bootx64.c --- a/boot/bootx64.c Wed Dec 19 01:10:08 2012 +0900 +++ b/boot/bootx64.c Wed Dec 26 14:40:17 2012 +0900 @@ -1,12 +1,31 @@ #include #include - EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *system_table) { InitializeLib(image, system_table); - Print(L"Hello, World\n\r"); - EFI_STATUS ret = EFI_SUCCESS; - return ret; + /* + EFI_LOADED_IMAGE *loaded_image = NULL; + EFI_GUID loaded_image_protocol = LOADED_IMAGE_PROTOCOL; + EFI_STATUS status; + + uefi_call_wrapper(BS->SetWatchdogTimer, 4, 0, 0x0, 0, NULL); + + status = uefi_call_wrapper( + system_table->BootServices->HandleProtocol, + 3, + image, + &loaded_image_protocol, + (void **) &loaded_image); + + if (EFI_ERROR(status)) { + Print(L"handleprotocol: %r\n", status); + } + + Print(L"Image base: %lx\n", loaded_image->ImageBase); + Print(L"Image size: %lx\n", loaded_image->ImageSize); + Print(L"Image file: %s\n", DevicePathToStr(loaded_image->FilePath)); +*/ + return EFI_SUCCESS; } diff -r c778c27450cc -r d390aa667e3c boot/bootx64.efi Binary file boot/bootx64.efi has changed