diff options
author | Michael Brown | 2015-08-30 19:42:03 +0200 |
---|---|---|
committer | Michael Brown | 2015-09-01 02:34:58 +0200 |
commit | bd96c6fffd278b70158334056c714b286296edb6 (patch) | |
tree | ed8e5ab9aaf40062a058b9c327e20791267c64fd /src/interface | |
parent | [pxe] Construct all fake DHCP packets before starting PXE NBP (diff) | |
download | ipxe-bd96c6fffd278b70158334056c714b286296edb6.tar.gz ipxe-bd96c6fffd278b70158334056c714b286296edb6.tar.xz ipxe-bd96c6fffd278b70158334056c714b286296edb6.zip |
[efi] Add definitions of GUIDs observed when booting wdsmgfw.efi
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>
Diffstat (limited to 'src/interface')
-rw-r--r-- | src/interface/efi/efi_debug.c | 54 | ||||
-rw-r--r-- | src/interface/efi/efi_guid.c | 34 |
2 files changed, 88 insertions, 0 deletions
diff --git a/src/interface/efi/efi_debug.c b/src/interface/efi/efi_debug.c index bcf45cff..97f37c6d 100644 --- a/src/interface/efi/efi_debug.c +++ b/src/interface/efi/efi_debug.c @@ -69,6 +69,8 @@ struct efi_well_known_guid { /** Well-known GUIDs */ static struct efi_well_known_guid efi_well_known_guids[] = { + { &efi_absolute_pointer_protocol_guid, + "AbsolutePointer" }, { &efi_arp_protocol_guid, "Arp" }, { &efi_arp_service_binding_protocol_guid, @@ -137,12 +139,22 @@ static struct efi_well_known_guid efi_well_known_guids[] = { "SimpleFileSystem" }, { &efi_simple_network_protocol_guid, "SimpleNetwork" }, + { &efi_simple_pointer_protocol_guid, + "SimplePointer" }, + { &efi_simple_text_input_protocol_guid, + "SimpleTextInput" }, + { &efi_simple_text_input_ex_protocol_guid, + "SimpleTextInputEx" }, + { &efi_simple_text_output_protocol_guid, + "SimpleTextOutput" }, { &efi_tcg_protocol_guid, "Tcg" }, { &efi_tcp4_protocol_guid, "Tcp4" }, { &efi_tcp4_service_binding_protocol_guid, "Tcp4Sb" }, + { &efi_tree_protocol_guid, + "TrEE" }, { &efi_udp4_protocol_guid, "Udp4" }, { &efi_udp4_service_binding_protocol_guid, @@ -595,6 +607,42 @@ efi_loaded_image_filepath_name ( EFI_LOADED_IMAGE_PROTOCOL *loaded ) { return efi_devpath_text ( loaded->FilePath ); } +/** + * Get console input handle name + * + * @v input Simple text input protocol + * @ret name Console input handle name, or NULL + */ +static const char * +efi_conin_name ( EFI_SIMPLE_TEXT_INPUT_PROTOCOL *input ) { + + /* Check for match against ConIn */ + if ( input == efi_systab->ConIn ) + return "ConIn"; + + return NULL; +} + +/** + * Get console output handle name + * + * @v output Simple text output protocol + * @ret name Console output handle name, or NULL + */ +static const char * +efi_conout_name ( EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *output ) { + + /* Check for match against ConOut */ + if ( output == efi_systab->ConOut ) + return "ConOut"; + + /* Check for match against StdErr (if different from ConOut) */ + if ( output == efi_systab->StdErr ) + return "StdErr"; + + return NULL; +} + /** An EFI handle name type */ struct efi_handle_name_type { /** Protocol */ @@ -643,6 +691,12 @@ static struct efi_handle_name_type efi_handle_name_types[] = { /* Handle's loaded image file path (for image handles) */ EFI_HANDLE_NAME_TYPE ( &efi_loaded_image_protocol_guid, efi_loaded_image_filepath_name ), + /* Our standard input file handle */ + EFI_HANDLE_NAME_TYPE ( &efi_simple_text_input_protocol_guid, + efi_conin_name ), + /* Our standard output and standard error file handles */ + EFI_HANDLE_NAME_TYPE ( &efi_simple_text_output_protocol_guid, + efi_conout_name ), }; /** diff --git a/src/interface/efi/efi_guid.c b/src/interface/efi/efi_guid.c index 1025621e..0a841225 100644 --- a/src/interface/efi/efi_guid.c +++ b/src/interface/efi/efi_guid.c @@ -24,6 +24,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include <ipxe/efi/efi.h> +#include <ipxe/efi/Protocol/AbsolutePointer.h> #include <ipxe/efi/Protocol/Arp.h> #include <ipxe/efi/Protocol/BlockIo.h> #include <ipxe/efi/Protocol/BusSpecificDriverOverride.h> @@ -51,6 +52,10 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include <ipxe/efi/Protocol/SerialIo.h> #include <ipxe/efi/Protocol/SimpleFileSystem.h> #include <ipxe/efi/Protocol/SimpleNetwork.h> +#include <ipxe/efi/Protocol/SimplePointer.h> +#include <ipxe/efi/Protocol/SimpleTextIn.h> +#include <ipxe/efi/Protocol/SimpleTextInEx.h> +#include <ipxe/efi/Protocol/SimpleTextOut.h> #include <ipxe/efi/Protocol/TcgService.h> #include <ipxe/efi/Protocol/Tcp4.h> #include <ipxe/efi/Protocol/Udp4.h> @@ -64,6 +69,15 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); * */ +/* TrEE protocol GUID definition in EDK2 headers is broken (missing braces) */ +#define EFI_TREE_PROTOCOL_GUID \ + { 0x607f766c, 0x7455, 0x42be, \ + { 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f } } + +/** Absolute pointer protocol GUID */ +EFI_GUID efi_absolute_pointer_protocol_guid + = EFI_ABSOLUTE_POINTER_PROTOCOL_GUID; + /** ARP protocol GUID */ EFI_GUID efi_arp_protocol_guid = EFI_ARP_PROTOCOL_GUID; @@ -196,6 +210,22 @@ EFI_GUID efi_simple_file_system_protocol_guid EFI_GUID efi_simple_network_protocol_guid = EFI_SIMPLE_NETWORK_PROTOCOL_GUID; +/** Simple pointer protocol GUID */ +EFI_GUID efi_simple_pointer_protocol_guid + = EFI_SIMPLE_POINTER_PROTOCOL_GUID; + +/** Simple text input protocol GUID */ +EFI_GUID efi_simple_text_input_protocol_guid + = EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID; + +/** Simple text input extension protocol GUID */ +EFI_GUID efi_simple_text_input_ex_protocol_guid + = EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID; + +/** Simple text output protocol GUID */ +EFI_GUID efi_simple_text_output_protocol_guid + = EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID; + /** TCG protocol GUID */ EFI_GUID efi_tcg_protocol_guid = EFI_TCG_PROTOCOL_GUID; @@ -208,6 +238,10 @@ EFI_GUID efi_tcp4_protocol_guid EFI_GUID efi_tcp4_service_binding_protocol_guid = EFI_TCP4_SERVICE_BINDING_PROTOCOL_GUID; +/** TrEE protocol GUID */ +EFI_GUID efi_tree_protocol_guid + = EFI_TREE_PROTOCOL_GUID; + /** UDPv4 protocol GUID */ EFI_GUID efi_udp4_protocol_guid = EFI_UDP4_PROTOCOL_GUID; |