mirror of
https://gitlab.com/bztsrc/bootboot.git
synced 2023-02-13 20:54:32 -05:00
Changed EFI PE subsystem per issue #4
This commit is contained in:
parent
0befcbe2af
commit
d08079c3d0
4 changed files with 6 additions and 1 deletions
BIN
bootboot.efi
BIN
bootboot.efi
Binary file not shown.
BIN
bootboot.rom
BIN
bootboot.rom
Binary file not shown.
|
@ -14,7 +14,7 @@ all: tinflate.o $(TARGET)
|
|||
|
||||
%.efi: %.so
|
||||
@echo " src x86_64-efi (UEFI)"
|
||||
@objcopy -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc --target efi-app-$(ARCH) --subsystem=13 $^ $@
|
||||
@objcopy -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc --target efi-app-$(ARCH) --subsystem=10 $^ $@
|
||||
@echo -n "BOOTBOOT Loader do not " | dd conv=notrunc of=$(TARGET) bs=1 seek=78 1>/dev/null 2>/dev/null
|
||||
@gcc $(GNUEFI_INCLUDES) -Wall -fshort-wchar efirom.c -o efirom $(LIBS)
|
||||
@./efirom $(TARGET) ../bootboot.rom || true
|
||||
|
|
|
@ -90,6 +90,11 @@ static void read_pe_info ( void *pe, uint16_t *machine,
|
|||
dos = pe;
|
||||
nt = ( pe + dos->e_lfanew );
|
||||
|
||||
/* issue 4: TianoCore demands subsystem 10, so we must use EFI_APPLICATION
|
||||
* in the PE header. Therefore we force EFI_ROM subsystem in this code here. */
|
||||
if(nt->nt64.OptionalHeader.Subsystem == 10)
|
||||
nt->nt64.OptionalHeader.Subsystem = 13;
|
||||
|
||||
/* Parse out PE information */
|
||||
*machine = nt->nt64.FileHeader.Machine;
|
||||
*subsystem = nt->nt64.OptionalHeader.Subsystem;
|
||||
|
|
Loading…
Reference in a new issue