aboutsummaryrefslogtreecommitdiff
path: root/src/include/ipxe/efi/Protocol
AgeCommit message (Collapse)AuthorFilesLines
2016-10-16[efi] Mark AppleNetBoot.h as a native iPXE headerMichael Brown1-3/+3
AppleNetBoot.h is not taken from the EDK2 codebase and so cannot be imported using include/ipxe/efi/import.pl. Mark as a native iPXE header (by changing the include guard) to avoid breaking the import process. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2016-05-29[efi] Expose DHCP packets via the Apple NetBoot protocolMichael Brown1-0/+46
Mac OS X uses non-standard EFI protocols to obtain the DHCP packets from the UEFI firmware. Originally-implemented-by: Michael Kuron <m.kuron@gmx.de> Signed-off-by: Michael Brown <mcb30@ipxe.org>
2016-05-04[efi] Use a timer event to generate the currticks() timerMichael Brown1-302/+0
We currently use the EFI_CPU_ARCH_PROTOCOL's GetTimerValue() method to generate the currticks() timer, calibrated against a 1ms delay from the boot services Stall() method. This does not work on ARM platforms, where GetTimerValue() is an empty stub which just returns EFI_UNSUPPORTED. Fix by instead creating a periodic timer event, and using this event to increment a current tick counter. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2016-03-13[efi] Update to current EDK2 headersMichael Brown4-6/+26
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-10-07[efi] Import EFI_HII_FONT_PROTOCOL definitionsMichael Brown2-0/+830
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-10-07[efi] Update to current EDK2 headersMichael Brown5-26/+246
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-09-06[efi] Add USB headers and GUID definitionsMichael Brown3-0/+1627
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-09-01[efi] Add definitions of GUIDs observed when booting wdsmgfw.efiMichael Brown2-0/+352
Add definitions of protocols observed to be used by wdsmgfw.efi, and add a handle name type for ConIn, ConOut, and StdErr. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-08-27[efi] Add definitions of GUIDs observed when booting shim.efi and grub.efiMichael Brown3-0/+663
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-04-14[efi] Use the EFI_RNG_PROTOCOL as an entropy source if availableMichael Brown1-0/+158
Entropy gathering via timer ticks is slow under UEFI (of the order of 20-30 seconds on some machines). Use the EFI_RNG_PROTOCOL if available, to speed up the process of entropy gathering. Note that some implementations (including EDK2) will fail if we request fewer than 32 random bytes at a time, and that the RNG protocol provides no guarantees about the amount of entropy provided by a call to GetRNG(). We take the (hopefully pessimistic) view that a 32-byte block returned by GetRNG() will contain at least the 1.3 bits of entropy claimed by min_entropy_per_sample(). Signed-off-by: Michael Brown <mcb30@ipxe.org>
2014-09-25[efi] Add definitions of GUIDs observed when chainloading from Intel driverMichael Brown9-0/+4107
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2014-08-21[efi] Add definitions of GUIDs observed during Windows bootMichael Brown3-0/+1423
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2014-07-31[efi] Expand the range of well-known EFI GUIDs in debug messagesMichael Brown3-0/+292
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2014-07-16[efi] Include EFI_CONSOLE_CONTROL_PROTOCOL headerMichael Brown1-0/+124
The EFI_CONSOLE_CONTROL_PROTOCOL does not exist in the current UEFI specification, but is required to enable text output on some older EFI 1.10 implementations (observed on an old iMac). The header is not present in any of the standard include directories, but can still be found in the EDK2 codebase as part of EdkCompatibilityPkg. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2014-07-14[efi] Install our own disk I/O protocol and claim exclusive use of itMichael Brown1-0/+119
The EFI FAT filesystem driver has a bug: if a block device contains no FAT filesystem but does have an EFI_SIMPLE_FILE_SYSTEM_PROTOCOL instance, the FAT driver will assume that it must have previously installed the EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. This causes the FAT driver to claim control of our device, and to refuse to stop driving it, which prevents us from later uninstalling correctly. Work around this bug by opening the disk I/O protocol ourselves, thereby preventing the FAT driver from opening it. Note that the alternative approach of opening the block I/O protocol (and thereby in theory preventing DiskIo from attaching to the block I/O protocol) causes an endless loop of calls to our DRIVER_STOP method when starting the EFI shell. I have no idea why this is. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2014-07-14[efi] Update EDK2 headersMichael Brown7-24/+307
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-04-19[efi] Remove obsolete EFI I/O implementation using EFI_CPU_IO_PROTOCOLMichael Brown2-192/+0
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-19[efi] Add EFI-specific debugging macrosMichael Brown1-0/+87
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-13[efi] Expose downloaded images via EFI_SIMPLE_FILE_SYSTEM_PROTOCOLMichael Brown2-0/+646
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] Update to latest EDK2 headersMichael Brown1-3/+3
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 Brown9-85/+535
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2011-04-07[efi] Add support for HIIMichael Brown3-0/+917
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-03-31[efi] Synchronise EFI header filesMichael Brown4-5/+11
Synchronised to EDK2 SVN revision 11462. Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-06-02[efi] Add the "snpnet" driverGeoff Lywood1-0/+88
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[legal] Add FILE_LICENCE declarations to EFI header filesMichael Brown13-0/+26
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] Update UEFI header files with latest version from TianoCoreGeoff Lywood13-408/+1272
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2010-04-19[build] Rename gPXE to iPXEMichael Brown12-0/+4034
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>