aboutsummaryrefslogtreecommitdiff
path: root/src/include/ipxe/efi
AgeCommit message (Collapse)AuthorFilesLines
2013-07-15[legal] Add missing FILE_LICENCE declarationsMarin Hannache2-0/+4
Signed-off-by: Marin Hannache <git@mareo.fr> Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-04-19[efi] Perform meaningful error code conversionsMichael Brown3-16/+14
Exploit the redefinition of iPXE error codes to include a "platform error code" to allow for meaningful conversion of EFI_STATUS values to iPXE errors and vice versa. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-04-19[efi] Remove obsolete EFI I/O implementation using EFI_CPU_IO_PROTOCOLMichael Brown3-372/+0
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-27[efi] Fetch device path for loaded image during initialisationMichael Brown1-0/+1
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-22[efi] Add "reboot" command for EFIMichael Brown1-0/+18
Abstract out the ability to reboot the system to a separate reboot() function (with platform-specific implementations), add an EFI implementation, and make the existing "reboot" command available under EFI. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-20[efi] Provide efi_guid_ntoa() for printing EFI GUIDsMichael Brown1-14/+5
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-19[efi] Add EFI-specific debugging macrosMichael Brown2-0/+121
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-13[efi] Add our own EFI_LOAD_FILE_PROTOCOL implementationMichael Brown1-0/+3
When iPXE is used as a UEFI driver, the UEFI PXE base code currently provides the TCP/IP stack, network protocols, and user interface. This represents a substantial downgrade from the standard BIOS iPXE user experience. Fix by installing our own EFI_LOAD_FILE_PROTOCOL implementation which initiates the standard iPXE boot procedure. This upgrades the UEFI iPXE user experience to match the standard BIOS iPXE user experience. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-13[efi] Expose downloaded images via EFI_SIMPLE_FILE_SYSTEM_PROTOCOLMichael Brown7-2/+800
Expose iPXE's images as a UEFI file system, allowing the booted image to access all images downloaded by iPXE. This functionality is complementary to the custom iPXE download protocol. The iPXE download protocol allows a booted image to utilise iPXE to download arbitrary URIs, but requires the booted image to specifically support the custom iPXE download protocol. The new functionality limits the booted image to accessing only files that were already downloaded by iPXE (e.g. as part of a script), but can work with any generic UEFI image (e.g. the UEFI shell). Both protocols are provided simultaneously, and are attached to the SNP device handle. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-13[efi] Add last_opened_snpdev()Michael Brown1-0/+1
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-13[efi] Update to latest EDK2 headersMichael Brown8-73/+125
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2012-11-05[uaccess] Add userptr_sub() to find the difference between two user pointersMichael Brown1-0/+6
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2012-10-23[efi] Add EFI_COMPONENT_NAME2_PROTOCOL instance for each SNP deviceMichael Brown1-0/+7
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2012-10-16[efi] Expose net device non-volatile settings via HIIMichael Brown1-123/+74
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2012-10-16[efi] Split SNP HII functionality into a separate fileMichael Brown1-0/+68
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2012-10-05[efi] Mark SNP formset compliant with IBM's Unified Configuration ManagerMichael Brown1-0/+5
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2012-07-19[efi] Add EFI_LOAD_FILE_PROTOCOL headerMichael Brown1-0/+90
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2012-07-19[efi] Update to current EDK2 headersMichael Brown24-156/+8026
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2012-07-19[efi] Standardise #include guard in ipxe_download.hMichael Brown1-4/+4
The script include/ipxe/efi/import.pl relies on a particular format for the #include guard in order to detect EFI headers that are not imported. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2012-02-15[efi] Add iPXE download protocolJarrod Johnson2-0/+156
iPXE exposes some extended capabilities via the PXE FILE API to allow NBPs such as pxelinux to use protocols other than TFTP. Provide an equivalent interface as a UEFI protocol so that EFI binaries may also take advantage of iPXE's extended capabilities. This can be used with a patched version of elilo, for example: http://comments.gmane.org/gmane.comp.boot-loaders.elilo.general/147 Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-04-07[efi] Add support for HIIMichael Brown6-0/+1316
Some EFI platforms expect us to provide an HII interface to display information about the driver. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-04-07[efi] Include MdeModulePkg directory in header import listMichael Brown1-1/+2
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-04-07[efi] Add EFI string formatting functionsMichael Brown1-0/+23
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-03-31[efi] Synchronise EFI header filesMichael Brown12-33/+100
Synchronised to EDK2 SVN revision 11462. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-03-15[efi] Mark SNP devices as children of EFI PCI deviceMichael Brown1-0/+6
Re-open the EFI_PCI_IO_PROTOCOL specifying an Attributes value of EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER. This causes the SNP devices to be marked as children of the EFI PCI device (as shown in the "devtree" command). On at least one IBM blade system, this is required in order to have the relevant drivers automatically attach to the SNP controller at device creation time. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-02-22[efi] Provide space for storing the EFI driver nameMichael Brown1-1/+1
Commit d7736fb ("[efi] Allow EFI to control PCI bus enumeration") introduced a bug in which the EFI driver name became an (uninitialised) pointer rather than an array. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-02-17[efi] Allow EFI to control PCI bus enumerationMichael Brown3-1/+89
EFI performs its own PCI bus enumeration. Respect this, and start controlling devices only when instructed to do so by EFI. As a side benefit, we should now correctly create multiple SNP instances for multi-port devices. This should also fix the problem of failing to enumerate devices because the PCI bridges have not yet been enabled at the time the iPXE driver is loaded. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-02-17[efi] Rename efi_pci.h to efi_pci_api.hMichael Brown1-5/+5
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-02-17[pci] Replace pci_max_bus() with pci_num_bus()Michael Brown1-4/+4
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-06-02[efi] Add the "snpnet" driverGeoff Lywood2-0/+90
Add a new network driver that consumes the EFI Simple Network Protocol. Also add a bus driver that can find the Simple Network Protocol that iPXE was loaded from; the resulting behavior is similar to the "undionly" driver for BIOS systems. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-05-29[efi] Tidy up output of EFI header import scriptMichael Brown3-19/+65
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-05-29[legal] Add FILE_LICENCE declarations to EFI header filesMichael Brown40-0/+96
Autodetect the BSD licence statement in EFI header files, and add a suitable FILE_LICENCE macro to the version imported into the iPXE tree. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-05-29[efi] Synchronise EFI header filesMichael Brown2-7/+10
Now that the PACKED macro conflict is resolved, we can use an unmodified import of the EFI header files (using include/ipxe/efi/import.pl). Synchronised to EDK2 SVN revision 10556. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-05-29[efi] Update UEFI header files with latest version from TianoCoreGeoff Lywood40-1612/+6071
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-04-19[build] Rename gPXE to iPXEMichael Brown44-0/+14326
Access to the gpxe.org and etherboot.org domains and associated resources has been revoked by the registrant of the domain. Work around this problem by renaming project from gPXE to iPXE, and updating URLs to match. Also update README, LOG and COPYRIGHTS to remove obsolete information. Signed-off-by: Michael Brown <mcb30@ipxe.org>