aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/include/ia64/efi.h
diff options
context:
space:
mode:
Diffstat (limited to 'extras/mini-os/include/ia64/efi.h')
-rw-r--r--extras/mini-os/include/ia64/efi.h396
1 files changed, 0 insertions, 396 deletions
diff --git a/extras/mini-os/include/ia64/efi.h b/extras/mini-os/include/ia64/efi.h
deleted file mode 100644
index b70a0a8e24..0000000000
--- a/extras/mini-os/include/ia64/efi.h
+++ /dev/null
@@ -1,396 +0,0 @@
-/*
- * This is a short summary of declarations and definitions from different
- * efi header files of Intels' EFI_Toolkit_1.10.14.62
- * used for the minimal implementation in mini-os.
- * Changes: Dietmar Hahn <dietmar.hahn@fujitsu-siemens.com>
- *
- ****************************************************************************
- * Copyright (C) 2001-2004, Intel Corporation.
- * THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER,
- * INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR
- * ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY
- * PROPOSAL, SPECIFICATION OR SAMPLE. Except for a limited copyright license
- * to copy this specification for internal use only, no license, express or
- * implied, by estoppel or otherwise, to any intellectual property rights is
- * granted herein. Intel disclaims all liability, including liability for
- * infringement of any proprietary rights, relating to implementation of
- * information in this specification. Intel does not warrant or represent
- * that such implementation(s) will not infringe such rights. Designers must
- * not rely on the absence or characteristics of any features or instructions
- * marked "reserved" or "undefined." Intel reserves these for future
- * definition and shall have no responsibility whatsoever for conflicts or
- * incompatibilities arising from future changes to them.
- * This document is an intermediate draft for comment only and is subject to
- * change without notice. Readers should not design products based on this
- * document.
- * Intel, the Intel logo, and Itanium are trademarks or registered trademarks
- * of Intel Corporation or its subsidiaries in the United States and other
- * countries.
- * Other names and brands may be claimed as the property of others.
- */
-
-#ifndef _EFI_H_
-#define _EFI_H_
-
-#include <mini-os/types.h>
-
-
-#define EFIWARN(a) (a)
-#define EFI_ERROR(a) (((int64_t) a) < 0)
-
-
-#define EFI_SUCCESS 0
-#define EFI_LOAD_ERROR EFIERR(1)
-#define EFI_INVALID_PARAMETER EFIERR(2)
-#define EFI_UNSUPPORTED EFIERR(3)
-#define EFI_BAD_BUFFER_SIZE EFIERR(4)
-#define EFI_BUFFER_TOO_SMALL EFIERR(5)
-#define EFI_NOT_READY EFIERR(6)
-#define EFI_DEVICE_ERROR EFIERR(7)
-#define EFI_WRITE_PROTECTED EFIERR(8)
-#define EFI_OUT_OF_RESOURCES EFIERR(9)
-#define EFI_VOLUME_CORRUPTED EFIERR(10)
-#define EFI_VOLUME_FULL EFIERR(11)
-#define EFI_NO_MEDIA EFIERR(12)
-#define EFI_MEDIA_CHANGED EFIERR(13)
-#define EFI_NOT_FOUND EFIERR(14)
-#define EFI_ACCESS_DENIED EFIERR(15)
-#define EFI_NO_RESPONSE EFIERR(16)
-#define EFI_NO_MAPPING EFIERR(17)
-#define EFI_TIMEOUT EFIERR(18)
-#define EFI_NOT_STARTED EFIERR(19)
-#define EFI_ALREADY_STARTED EFIERR(20)
-#define EFI_ABORTED EFIERR(21)
-#define EFI_ICMP_ERROR EFIERR(22)
-#define EFI_TFTP_ERROR EFIERR(23)
-#define EFI_PROTOCOL_ERROR EFIERR(24)
-
-#define EFI_WARN_UNKOWN_GLYPH EFIWARN(1)
-#define EFI_WARN_DELETE_FAILURE EFIWARN(2)
-#define EFI_WARN_WRITE_FAILURE EFIWARN(3)
-#define EFI_WARN_BUFFER_TOO_SMALL EFIWARN(4)
-
-
-typedef uint64_t efi_status_t;
-typedef void* efi_handle_t;
-typedef void* efi_event_t;
-typedef uint16_t efi_char16_t;
-
-
-/*
- * Standard EFI table header
- */
-
-struct efi_table_header
-{
- uint64_t Signature;
- // Revision of EFI table specification,
- // upper 16 bit - major revision number
- // lower 16 bit - minor revision number
- uint32_t Revision;
- uint32_t HeaderSize;
- uint32_t CRC32;
- uint32_t Reserved;
-};
-typedef struct efi_table_header efi_table_header_t;
-
-/*
- * EFI Time
- */
-typedef struct
-{
- uint16_t Year; /* 1998 - 20XX */
- uint8_t Month; /* 1 - 12 */
- uint8_t Day; /* 1 - 31 */
- uint8_t Hour; /* 0 - 23 */
- uint8_t Minute; /* 0 - 59 */
- uint8_t Second; /* 0 - 59 */
- uint8_t Pad1;
- uint32_t Nanosecond; /* 0 - 999,999,999 */
- int16_t TimeZone; /* -1440 to 1440 or 2047 */
- uint8_t Daylight;
- uint8_t Pad2;
-} efi_time_t;
-
-/* Bit definitions for efi_time_t.Daylight */
-#define EFI_TIME_ADJUST_DAYLIGHT 0x01
-#define EFI_TIME_IN_DAYLIGHT 0x02
-
-/* Value definition for efi_time_t.TimeZone */
-#define EFI_UNSPECIFIED_TIMEZONE 0x07FF
-
-
-
-typedef struct
-{
- uint32_t Resolution; /* 1e-6 parts per million */
- uint32_t Accuracy; /* hertz */
- uint8_t SetsToZero; /* Set clears sub-second time */
-} efi_time_capabilities_t;
-
-
-typedef efi_status_t (*efi_get_time_t) (efi_time_t*, efi_time_capabilities_t*);
-typedef efi_status_t (*efi_set_time_t) (efi_time_t*);
-typedef efi_status_t (*efi_get_wakeup_time_t) (uint8_t*, uint8_t*, efi_time_t*);
-typedef efi_status_t (*efi_set_wakeup_time_t) (uint8_t, efi_time_t*);
-
-/*
- * Memory
- * Preseve the attr on any range supplied.
- * ConventialMemory must have WB,SR,SW when supplied.
- * When allocating from ConventialMemory always make it WB,SR,SW
- * When returning to ConventialMemory always make it WB,SR,SW
- * When getting the memory map, or on RT for runtime types
- */
-
-typedef enum {
- EfiReservedMemoryType, /* 0 */
- EfiLoaderCode,
- EfiLoaderData,
- EfiBootServicesCode,
- EfiBootServicesData,
- EfiRuntimeServicesCode,
- EfiRuntimeServicesData, /* 6 */
- EfiConventionalMemory, /* 7 */
- EfiUnusableMemory,
- EfiACPIReclaimMemory, /* 9 */
- EfiACPIMemoryNVS, /* 10, a */
- EfiMemoryMappedIO,
- EfiMemoryMappedIOPortSpace, /* 12, c */
- EfiPalCode, /* 13, d */
- EfiMaxMemoryType /* 14, e */
-} efi_memory_type_t;
-
-/* possible caching types for the memory range */
-#define EFI_MEMORY_UC 0x0000000000000001
-#define EFI_MEMORY_WC 0x0000000000000002
-#define EFI_MEMORY_WT 0x0000000000000004
-#define EFI_MEMORY_WB 0x0000000000000008
-#define EFI_MEMORY_UCE 0x0000000000000010
-/* physical memory protection on range */
-#define EFI_MEMORY_WP 0x0000000000001000
-#define EFI_MEMORY_RP 0x0000000000002000
-#define EFI_MEMORY_XP 0x0000000000004000
-/* range requires a runtime mapping */
-#define EFI_MEMORY_RUNTIME 0x8000000000000000
-
-#define EFI_MEMORY_DESCRIPTOR_VERSION 1
-
-typedef uint64_t efi_phys_addr_t;
-typedef uint64_t efi_virt_addr_t;
-
-typedef struct
-{
- uint32_t Type; /* 32 bit padding */
- efi_phys_addr_t PhysicalStart;
- efi_virt_addr_t VirtualStart;
- uint64_t NumberOfPages;
- uint64_t Attribute;
-} efi_memory_descriptor_t;
-
-#define NextMemoryDescriptor(Ptr,Size) ((efi_memory_descriptor_t*) (((uint8_t*) Ptr) + Size))
-
-
-typedef efi_status_t (*efi_set_virtual_address_map_t)
- (
- uint64_t MemoryMapSize,
- uint64_t DescriptorSize,
- uint32_t DescriptorVersion,
- efi_memory_descriptor_t* VirtualMap
- );
-
-typedef efi_status_t (*efi_convert_pointer_t)
- (
- uint64_t DebugDisposition,
- void** Address
- );
-
-/*
- * A GUID
- */
-
-typedef struct
-{
- uint32_t Data1;
- uint16_t Data2;
- uint16_t Data3;
- uint8_t Data4[8];
-} efi_guid_t;
-
-/*
- * EFI Configuration Table and GUID definitions
- */
-
-#define MPS_TABLE_GUID \
- { 0xeb9d2d2f, 0x2d88, 0x11d3, \
- { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
-
-#define ACPI_TABLE_GUID \
- { 0xeb9d2d30, 0x2d88, 0x11d3, \
- { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
-
-#define ACPI_20_TABLE_GUID \
- { 0x8868e871, 0xe4f1, 0x11d3, \
- { 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
-
-#define SMBIOS_TABLE_GUID \
- { 0xeb9d2d31, 0x2d88, 0x11d3, \
- { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
-
-#define SAL_SYSTEM_TABLE_GUID \
- { 0xeb9d2d32, 0x2d88, 0x11d3, \
- { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
-
-/* DIG64 Headless Console & Debug Port Table. */
-#define HCDP_TABLE_GUID \
- {0xf951938d, 0x620b, 0x42ef, \
- {0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 } }
-
-
-typedef struct efi_configuration_table
-{
- efi_guid_t VendorGuid;
- void* VendorTable;
-} efi_configuration_table_t;
-
-
-/*
- * EFI platform variables
- */
-
-#define EFI_GLOBAL_VARIABLE \
- { 0x8BE4DF61, 0x93CA, 0x11d2, 0xAA, 0x0D, 0x00, \
- 0xE0, 0x98, 0x03, 0x2B, 0x8C }
-
-/* Variable attributes */
-#define EFI_VARIABLE_NON_VOLATILE 0x00000001
-#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
-#define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
-
-/* Variable size limitation */
-#define EFI_MAXIMUM_VARIABLE_SIZE 1024
-
-typedef efi_status_t (*efi_get_variable_t)
- (
- efi_char16_t* VariableName,
- efi_guid_t *VendorGuid,
- uint32_t* Attributes,
- uint64_t* DataSize,
- void* Data
- );
-
-typedef
-efi_status_t (*efi_get_next_variable_name_t)
- (
- uint64_t* VariableNameSize,
- efi_char16_t* VariableName,
- efi_guid_t* VendorGuid
- );
-
-typedef efi_status_t (*efi_set_variable_t)
- (
- efi_char16_t* VariableName,
- efi_guid_t* VendorGuid,
- uint32_t Attributes,
- uint64_t DataSize,
- void* Data
- );
-
-/*
- * Misc
- */
-
-typedef enum
-{
- EfiResetCold,
- EfiResetWarm,
- EfiResetShutdown
-} efi_reset_type_t;
-
-
-typedef efi_status_t (*efi_reset_system_t)
- (
- efi_reset_type_t ResetType,
- efi_status_t ResetStatus,
- uint64_t DataSize,
- efi_char16_t* ResetData
- );
-
-typedef efi_status_t (*efi_get_next_high_mono_count_t) (uint32_t* HighCount);
-
-
-/*
- * EFI Runtime Serivces Table
- */
-
-#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552ULL
-#define EFI_RUNTIME_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) \
- | (EFI_SPECIFICATION_MINOR_REVISION))
-
-typedef struct
-{
- efi_table_header_t Hdr;
- /* Time services */
- efi_get_time_t GetTime;
- efi_set_time_t SetTime;
- efi_get_wakeup_time_t GetWakeupTime;
- efi_set_wakeup_time_t SetWakeupTime;
- /* Virtual memory services */
- efi_set_virtual_address_map_t SetVirtualAddressMap;
- efi_convert_pointer_t ConvertPointer;
- /* Variable serviers */
- efi_get_variable_t GetVariable;
- efi_get_next_variable_name_t GetNextVariableName;
- efi_set_variable_t SetVariable;
- /* Misc */
- efi_get_next_high_mono_count_t GetNextHighMonotonicCount;
- efi_reset_system_t ResetSystem;
-
-} efi_runtime_services_t;
-
-
-#define EFI_SPECIFICATION_MAJOR_REVISION 1
-#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249
-#define EFI_SYSTEM_TABLE_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) \
- | (EFI_SPECIFICATION_MINOR_REVISION))
-
-struct efi_system_table
-{
- efi_table_header_t Hdr;
-
- uint64_t FirmwareVendor; // phys addr of CHAR16
- uint32_t FirmwareRevision; // Firmware vendor specific
-
- efi_handle_t ConsoleInHandle;
- uint64_t ConIn;
-
- efi_handle_t ConsoleOutHandle;
- uint64_t ConOut;
-
- efi_handle_t StandardErrorHandle;
- uint64_t StdErr;
-
- uint64_t RuntimeServices; // phys addr
- uint64_t BootServices; // phys addr
-
- uint64_t NumberOfTableEntries; // Number of entries in Config
- uint64_t ConfigurationTable; // phys addr of ConfigTable
-};
-
-typedef struct efi_system_table efi_system_table_t;
-
-
-#define EFI_PAGE_SIZE 4096
-#define EFI_PAGE_MASK 0xFFF
-#define EFI_PAGE_SHIFT 12
-
-#define EFI_SIZE_TO_PAGES(a) \
- ( ((a) >> EFI_PAGE_SHIFT) + ((a) & EFI_PAGE_MASK ? 1 : 0) )
-
-
-void init_efi(void);
-int efi_get_time(efi_time_t* tmP);
-efi_status_t ia64_call_efi_physical(void *, ...);
-
-
-#endif /* _EFI_H_ */