Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[efi] Allow for .efidrv images as well as .efi images
Merge in the changes that allow for building EFI driver images (that can be loaded using the EFI shell's "load" command) as well as EFI applications.
- Loading branch information
Michael Brown
committed
Jan 7, 2009
1 parent
314779e
commit 765efac
Showing
7 changed files
with
172 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,10 @@ | ||
# -*- makefile -*- : Force emacs to use Makefile mode | ||
|
||
# The EFI linker script | ||
# Specify EFI image builder | ||
# | ||
LDSCRIPT = arch/x86/scripts/efi.lds | ||
ELF2EFI = $(ELF2EFI32) | ||
|
||
# Retain relocation information for elf2efi | ||
# Include generic EFI Makefile | ||
# | ||
LDFLAGS += -q -S | ||
|
||
# Media types. | ||
# | ||
NON_AUTO_MEDIA += efi | ||
|
||
# Rule for building EFI files | ||
# | ||
$(BIN)/%.efi : $(BIN)/%.efi.tmp $(ELF2EFI32) | ||
$(QM)$(ECHO) " [FINISH] $@" | ||
$(Q)$(ELF2EFI32) $< $@ | ||
MAKEDEPS += arch/x86/Makefile.efi | ||
include arch/x86/Makefile.efi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# -*- makefile -*- : Force emacs to use Makefile mode | ||
|
||
# The EFI linker script | ||
# | ||
LDSCRIPT = arch/x86/scripts/efi.lds | ||
|
||
# Retain relocation information for elf2efi | ||
# | ||
LDFLAGS += -q -S | ||
|
||
# Media types. | ||
# | ||
NON_AUTO_MEDIA += efi | ||
NON_AUTO_MEDIA += efidrv | ||
|
||
# Rules for building EFI files | ||
# | ||
$(BIN)/%.efi : $(BIN)/%.efi.tmp $(ELF2EFI) | ||
$(QM)$(ECHO) " [FINISH] $@" | ||
$(Q)$(ELF2EFI) --subsystem=10 $< $@ | ||
|
||
$(BIN)/%.efidrv : $(BIN)/%.efidrv.tmp $(ELF2EFI) | ||
$(QM)$(ECHO) " [FINISH] $@" | ||
$(Q)$(ELF2EFI) --subsystem=11 $< $@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
/* | ||
* Copyright (C) 2009 Michael Brown <mbrown@fensystems.co.uk>. | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License as | ||
* published by the Free Software Foundation; either version 2 of the | ||
* License, or any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, but | ||
* WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
* General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
*/ | ||
|
||
#include <stdlib.h> | ||
#include <gpxe/init.h> | ||
#include <gpxe/efi/efi.h> | ||
|
||
/** | ||
* EFI entry point | ||
* | ||
* @v image_handle Image handle | ||
* @v systab System table | ||
* @ret efirc EFI return status code | ||
*/ | ||
EFI_STATUS EFIAPI _start ( EFI_HANDLE image_handle, | ||
EFI_SYSTEM_TABLE *systab ) { | ||
EFI_STATUS efirc; | ||
|
||
/* Initialise EFI environment */ | ||
if ( ( efirc = efi_init ( image_handle, systab ) ) != 0 ) | ||
return efirc; | ||
|
||
/* Initialise gPXE environment */ | ||
initialise(); | ||
startup(); | ||
|
||
/* Install SNP driver and return */ | ||
return RC_TO_EFIRC ( efi_snp_install () ); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,6 @@ | |
* | ||
*/ | ||
|
||
EXTERN ( _start ) | ||
ENTRY ( _start ) | ||
|
||
SECTIONS { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters