You can import this changeset into BK by piping this whole message to '| bk receive [path to repository]' or apply the patch as usual. =================================================================== ChangeSet@1.504, 2002-08-13 22:24:31-05:00, Matt_Domsch@dell.com Move include/asm-ia64/efi.h to include/linux/efi.h This is required now that non-ia64 architectures are using EFI code, particularly the EFI GUID Partition Table (GPT) scheme for large disks. b/arch/ia64/hp/common/sba_iommu.c | 2 b/arch/ia64/hp/zx1/hpzx1_misc.c | 2 b/arch/ia64/kernel/acpi.c | 2 b/arch/ia64/kernel/efi.c | 2 b/arch/ia64/kernel/efivars.c | 2 b/arch/ia64/kernel/fw-emu.c | 2 b/arch/ia64/kernel/palinfo.c | 2 b/arch/ia64/kernel/process.c | 2 b/arch/ia64/kernel/setup.c | 2 b/arch/ia64/kernel/smp.c | 2 b/arch/ia64/kernel/smpboot.c | 2 b/arch/ia64/kernel/time.c | 2 b/arch/ia64/mm/init.c | 2 b/arch/ia64/sn/fakeprom/fpmem.c | 2 b/arch/ia64/sn/fakeprom/fw-emu.c | 2 b/arch/ia64/sn/io/efi-rtc.c | 2 b/arch/ia64/sn/kernel/llsc4.c | 2 b/drivers/acpi/osl.c | 2 b/drivers/char/efirtc.c | 2 b/fs/partitions/efi.h | 6 b/include/asm-ia64/sal.h | 2 b/include/linux/efi.h | 284 ++++++++++++++++++++++++++++++++++++++ include/asm-ia64/efi.h | 284 -------------------------------------- 23 files changed, 305 insertions, 309 deletions diff -Nru a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c --- a/arch/ia64/hp/common/sba_iommu.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/hp/common/sba_iommu.c Tue Aug 13 22:32:06 2002 @@ -30,11 +30,11 @@ #include #include #include +#include #include /* ia64_get_itc() */ #include #include /* PAGE_OFFSET */ -#include #define DRIVER_NAME "SBA" diff -Nru a/arch/ia64/hp/zx1/hpzx1_misc.c b/arch/ia64/hp/zx1/hpzx1_misc.c --- a/arch/ia64/hp/zx1/hpzx1_misc.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/hp/zx1/hpzx1_misc.c Tue Aug 13 22:32:06 2002 @@ -12,9 +12,9 @@ #include #include #include +#include #include -#include #include extern acpi_status acpi_evaluate_integer (acpi_handle, acpi_string, acpi_object_list *, diff -Nru a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c --- a/arch/ia64/kernel/acpi.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/acpi.c Tue Aug 13 22:32:06 2002 @@ -37,7 +37,7 @@ #include #include #include -#include +#include #include #include #include diff -Nru a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c --- a/arch/ia64/kernel/efi.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/efi.c Tue Aug 13 22:32:06 2002 @@ -24,8 +24,8 @@ #include #include #include +#include -#include #include #include #include diff -Nru a/arch/ia64/kernel/efivars.c b/arch/ia64/kernel/efivars.c --- a/arch/ia64/kernel/efivars.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/efivars.c Tue Aug 13 22:32:06 2002 @@ -65,8 +65,8 @@ #include #include #include +#include -#include #include MODULE_AUTHOR("Matt Domsch "); diff -Nru a/arch/ia64/kernel/fw-emu.c b/arch/ia64/kernel/fw-emu.c --- a/arch/ia64/kernel/fw-emu.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/fw-emu.c Tue Aug 13 22:32:06 2002 @@ -13,7 +13,7 @@ # include #endif -#include +#include #include #include #include diff -Nru a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c --- a/arch/ia64/kernel/palinfo.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/palinfo.c Tue Aug 13 22:32:06 2002 @@ -21,10 +21,10 @@ #include #include #include +#include #include #include -#include #include #include #ifdef CONFIG_SMP diff -Nru a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c --- a/arch/ia64/kernel/process.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/process.c Tue Aug 13 22:32:06 2002 @@ -19,9 +19,9 @@ #include #include #include +#include #include -#include #include #include #include diff -Nru a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c --- a/arch/ia64/kernel/setup.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/setup.c Tue Aug 13 22:32:06 2002 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -37,7 +38,6 @@ #include #include #include -#include #include #include diff -Nru a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c --- a/arch/ia64/kernel/smp.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/smp.c Tue Aug 13 22:32:06 2002 @@ -32,12 +32,12 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include diff -Nru a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c --- a/arch/ia64/kernel/smpboot.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/smpboot.c Tue Aug 13 22:32:06 2002 @@ -27,13 +27,13 @@ #include #include #include +#include #include #include #include #include #include -#include #include #include #include diff -Nru a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c --- a/arch/ia64/kernel/time.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/kernel/time.c Tue Aug 13 22:32:06 2002 @@ -15,9 +15,9 @@ #include #include #include +#include #include -#include #include #include #include diff -Nru a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c --- a/arch/ia64/mm/init.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/mm/init.c Tue Aug 13 22:32:06 2002 @@ -14,11 +14,11 @@ #include #include #include +#include #include #include #include -#include #include #include #include diff -Nru a/arch/ia64/sn/fakeprom/fpmem.c b/arch/ia64/sn/fakeprom/fpmem.c --- a/arch/ia64/sn/fakeprom/fpmem.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/sn/fakeprom/fpmem.c Tue Aug 13 22:32:06 2002 @@ -18,7 +18,7 @@ */ #include -#include +#include #include "fpmem.h" /* diff -Nru a/arch/ia64/sn/fakeprom/fw-emu.c b/arch/ia64/sn/fakeprom/fw-emu.c --- a/arch/ia64/sn/fakeprom/fw-emu.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/sn/fakeprom/fw-emu.c Tue Aug 13 22:32:06 2002 @@ -36,7 +36,7 @@ * http://oss.sgi.com/projects/GenInfo/NoticeExplan */ #include -#include +#include #include #include #include diff -Nru a/arch/ia64/sn/io/efi-rtc.c b/arch/ia64/sn/io/efi-rtc.c --- a/arch/ia64/sn/io/efi-rtc.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/sn/io/efi-rtc.c Tue Aug 13 22:32:06 2002 @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include /* diff -Nru a/arch/ia64/sn/kernel/llsc4.c b/arch/ia64/sn/kernel/llsc4.c --- a/arch/ia64/sn/kernel/llsc4.c Tue Aug 13 22:32:06 2002 +++ b/arch/ia64/sn/kernel/llsc4.c Tue Aug 13 22:32:06 2002 @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff -Nru a/drivers/acpi/osl.c b/drivers/acpi/osl.c --- a/drivers/acpi/osl.c Tue Aug 13 22:32:06 2002 +++ b/drivers/acpi/osl.c Tue Aug 13 22:32:06 2002 @@ -38,7 +38,7 @@ #include "acpi.h" #ifdef CONFIG_ACPI_EFI -#include +#include u64 efi_mem_attributes (u64 phys_addr); #endif diff -Nru a/drivers/char/efirtc.c b/drivers/char/efirtc.c --- a/drivers/char/efirtc.c Tue Aug 13 22:32:06 2002 +++ b/drivers/char/efirtc.c Tue Aug 13 22:32:06 2002 @@ -35,8 +35,8 @@ #include #include #include +#include -#include #include #include diff -Nru a/fs/partitions/efi.h b/fs/partitions/efi.h --- a/fs/partitions/efi.h Tue Aug 13 22:32:06 2002 +++ b/fs/partitions/efi.h Tue Aug 13 22:32:06 2002 @@ -33,11 +33,7 @@ #include #include #include -/* - * Yes, specifying asm-ia64 is ugly, but this lets it build on - * other platforms too, until efi.h moves to include/linux. - */ -#include +#include #define MSDOS_MBR_SIGNATURE 0xaa55 #define EFI_PMBR_OSTYPE_EFI 0xEF diff -Nru a/include/asm-ia64/efi.h b/include/asm-ia64/efi.h --- a/include/asm-ia64/efi.h Tue Aug 13 22:32:06 2002 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,284 +0,0 @@ -#ifndef _ASM_IA64_EFI_H -#define _ASM_IA64_EFI_H - -/* - * Extensible Firmware Interface - * Based on 'Extensible Firmware Interface Specification' version 0.9, April 30, 1999 - * - * Copyright (C) 1999 VA Linux Systems - * Copyright (C) 1999 Walt Drummond - * Copyright (C) 1999, 2002 Hewlett-Packard Co. - * David Mosberger-Tang - * Stephane Eranian - */ -#include -#include -#include -#include -#include - -#include -#include - -#define EFI_SUCCESS 0 -#define EFI_LOAD_ERROR (1L | (1L << 63)) -#define EFI_INVALID_PARAMETER (2L | (1L << 63)) -#define EFI_UNSUPPORTED (3L | (1L << 63)) -#define EFI_BAD_BUFFER_SIZE (4L | (1L << 63)) -#define EFI_BUFFER_TOO_SMALL (5L | (1L << 63)) -#define EFI_NOT_FOUND (14L | (1L << 63)) - -typedef unsigned long efi_status_t; -typedef u8 efi_bool_t; -typedef u16 efi_char16_t; /* UNICODE character */ - - -typedef struct { - u8 b[16]; -} efi_guid_t; - -#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \ -((efi_guid_t) \ -{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ - (b) & 0xff, ((b) >> 8) & 0xff, \ - (c) & 0xff, ((c) >> 8) & 0xff, \ - (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) - -/* - * Generic EFI table header - */ -typedef struct { - u64 signature; - u32 revision; - u32 headersize; - u32 crc32; - u32 reserved; -} efi_table_hdr_t; - -/* - * Memory map descriptor: - */ - -/* Memory types: */ -#define EFI_RESERVED_TYPE 0 -#define EFI_LOADER_CODE 1 -#define EFI_LOADER_DATA 2 -#define EFI_BOOT_SERVICES_CODE 3 -#define EFI_BOOT_SERVICES_DATA 4 -#define EFI_RUNTIME_SERVICES_CODE 5 -#define EFI_RUNTIME_SERVICES_DATA 6 -#define EFI_CONVENTIONAL_MEMORY 7 -#define EFI_UNUSABLE_MEMORY 8 -#define EFI_ACPI_RECLAIM_MEMORY 9 -#define EFI_ACPI_MEMORY_NVS 10 -#define EFI_MEMORY_MAPPED_IO 11 -#define EFI_MEMORY_MAPPED_IO_PORT_SPACE 12 -#define EFI_PAL_CODE 13 -#define EFI_MAX_MEMORY_TYPE 14 - -/* Attribute values: */ -#define EFI_MEMORY_UC 0x0000000000000001 /* uncached */ -#define EFI_MEMORY_WC 0x0000000000000002 /* write-coalescing */ -#define EFI_MEMORY_WT 0x0000000000000004 /* write-through */ -#define EFI_MEMORY_WB 0x0000000000000008 /* write-back */ -#define EFI_MEMORY_WP 0x0000000000001000 /* write-protect */ -#define EFI_MEMORY_RP 0x0000000000002000 /* read-protect */ -#define EFI_MEMORY_XP 0x0000000000004000 /* execute-protect */ -#define EFI_MEMORY_RUNTIME 0x8000000000000000 /* range requires runtime mapping */ -#define EFI_MEMORY_DESCRIPTOR_VERSION 1 - -#define EFI_PAGE_SHIFT 12 - -typedef struct { - u32 type; - u32 pad; - u64 phys_addr; - u64 virt_addr; - u64 num_pages; - u64 attribute; -} efi_memory_desc_t; - -typedef int efi_freemem_callback_t (u64 start, u64 end, void *arg); - -/* - * Types and defines for Time Services - */ -#define EFI_TIME_ADJUST_DAYLIGHT 0x1 -#define EFI_TIME_IN_DAYLIGHT 0x2 -#define EFI_UNSPECIFIED_TIMEZONE 0x07ff - -typedef struct { - u16 year; - u8 month; - u8 day; - u8 hour; - u8 minute; - u8 second; - u8 pad1; - u32 nanosecond; - s16 timezone; - u8 daylight; - u8 pad2; -} efi_time_t; - -typedef struct { - u32 resolution; - u32 accuracy; - u8 sets_to_zero; -} efi_time_cap_t; - -/* - * Types and defines for EFI ResetSystem - */ -#define EFI_RESET_COLD 0 -#define EFI_RESET_WARM 1 - -/* - * EFI Runtime Services table - */ -#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552 -#define EFI_RUNTIME_SERVICES_REVISION 0x00010000 - -typedef struct { - efi_table_hdr_t hdr; - u64 get_time; - u64 set_time; - u64 get_wakeup_time; - u64 set_wakeup_time; - u64 set_virtual_address_map; - u64 convert_pointer; - u64 get_variable; - u64 get_next_variable; - u64 set_variable; - u64 get_next_high_mono_count; - u64 reset_system; -} efi_runtime_services_t; - -typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc); -typedef efi_status_t efi_set_time_t (efi_time_t *tm); -typedef efi_status_t efi_get_wakeup_time_t (efi_bool_t *enabled, efi_bool_t *pending, - efi_time_t *tm); -typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm); -typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr, - unsigned long *data_size, void *data); -typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name, - efi_guid_t *vendor); -typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 attr, - unsigned long data_size, void *data); -typedef efi_status_t efi_get_next_high_mono_count_t (u64 *count); -typedef void efi_reset_system_t (int reset_type, efi_status_t status, - unsigned long data_size, efi_char16_t *data); - -/* - * EFI Configuration Table and GUID definitions - */ -#define NULL_GUID \ - EFI_GUID( 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ) - -#define MPS_TABLE_GUID \ - EFI_GUID( 0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) - -#define ACPI_TABLE_GUID \ - EFI_GUID( 0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) - -#define ACPI_20_TABLE_GUID \ - EFI_GUID( 0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 ) - -#define SMBIOS_TABLE_GUID \ - EFI_GUID( 0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) - -#define SAL_SYSTEM_TABLE_GUID \ - EFI_GUID( 0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) - -#define HCDP_TABLE_GUID \ - EFI_GUID( 0xf951938d, 0x620b, 0x42ef, 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 ) - -typedef struct { - efi_guid_t guid; - u64 table; -} efi_config_table_t; - -#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249 -#define EFI_SYSTEM_TABLE_REVISION ((1 << 16) | 00) - -typedef struct { - efi_table_hdr_t hdr; - u64 fw_vendor; /* physical addr of CHAR16 vendor string */ - u32 fw_revision; - u64 con_in_handle; - u64 con_in; - u64 con_out_handle; - u64 con_out; - u64 stderr_handle; - u64 stderr; - u64 runtime; - u64 boottime; - u64 nr_tables; - u64 tables; -} efi_system_table_t; - -/* - * All runtime access to EFI goes through this structure: - */ -extern struct efi { - efi_system_table_t *systab; /* EFI system table */ - void *mps; /* MPS table */ - void *acpi; /* ACPI table (IA64 ext 0.71) */ - void *acpi20; /* ACPI table (ACPI 2.0) */ - void *smbios; /* SM BIOS table */ - void *sal_systab; /* SAL system table */ - void *boot_info; /* boot info table */ - void *hcdp; /* HCDP table */ - efi_get_time_t *get_time; - efi_set_time_t *set_time; - efi_get_wakeup_time_t *get_wakeup_time; - efi_set_wakeup_time_t *set_wakeup_time; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; -} efi; - -static inline int -efi_guidcmp (efi_guid_t left, efi_guid_t right) -{ - return memcmp(&left, &right, sizeof (efi_guid_t)); -} - -static inline char * -efi_guid_unparse(efi_guid_t *guid, char *out) -{ - sprintf(out, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", - guid->b[3], guid->b[2], guid->b[1], guid->b[0], - guid->b[5], guid->b[4], guid->b[7], guid->b[6], - guid->b[8], guid->b[9], guid->b[10], guid->b[11], - guid->b[12], guid->b[13], guid->b[14], guid->b[15]); - return out; -} - -extern void efi_init (void); -extern void efi_map_pal_code (void); -extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg); -extern void efi_gettimeofday (struct timeval *tv); -extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */ -extern u64 efi_get_iobase (void); -extern u32 efi_mem_type (unsigned long phys_addr); -extern u64 efi_mem_attributes (unsigned long phys_addr); - -/* - * Variable Attributes - */ -#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 -#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 -#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 - - -/* - * efi_dir is allocated in arch/ia64/kernel/efi.c. - */ -#ifdef CONFIG_PROC_FS -extern struct proc_dir_entry *efi_dir; -#endif - -#endif /* _ASM_IA64_EFI_H */ diff -Nru a/include/asm-ia64/sal.h b/include/asm-ia64/sal.h --- a/include/asm-ia64/sal.h Tue Aug 13 22:32:06 2002 +++ b/include/asm-ia64/sal.h Tue Aug 13 22:32:06 2002 @@ -24,9 +24,9 @@ */ #include +#include #include -#include #include #include diff -Nru a/include/linux/efi.h b/include/linux/efi.h --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/include/linux/efi.h Tue Aug 13 22:32:06 2002 @@ -0,0 +1,284 @@ +#ifndef _ASM_IA64_EFI_H +#define _ASM_IA64_EFI_H + +/* + * Extensible Firmware Interface + * Based on 'Extensible Firmware Interface Specification' version 0.9, April 30, 1999 + * + * Copyright (C) 1999 VA Linux Systems + * Copyright (C) 1999 Walt Drummond + * Copyright (C) 1999, 2002 Hewlett-Packard Co. + * David Mosberger-Tang + * Stephane Eranian + */ +#include +#include +#include +#include +#include + +#include +#include + +#define EFI_SUCCESS 0 +#define EFI_LOAD_ERROR (1L | (1L << 63)) +#define EFI_INVALID_PARAMETER (2L | (1L << 63)) +#define EFI_UNSUPPORTED (3L | (1L << 63)) +#define EFI_BAD_BUFFER_SIZE (4L | (1L << 63)) +#define EFI_BUFFER_TOO_SMALL (5L | (1L << 63)) +#define EFI_NOT_FOUND (14L | (1L << 63)) + +typedef unsigned long efi_status_t; +typedef u8 efi_bool_t; +typedef u16 efi_char16_t; /* UNICODE character */ + + +typedef struct { + u8 b[16]; +} efi_guid_t; + +#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \ +((efi_guid_t) \ +{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ + (b) & 0xff, ((b) >> 8) & 0xff, \ + (c) & 0xff, ((c) >> 8) & 0xff, \ + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) + +/* + * Generic EFI table header + */ +typedef struct { + u64 signature; + u32 revision; + u32 headersize; + u32 crc32; + u32 reserved; +} efi_table_hdr_t; + +/* + * Memory map descriptor: + */ + +/* Memory types: */ +#define EFI_RESERVED_TYPE 0 +#define EFI_LOADER_CODE 1 +#define EFI_LOADER_DATA 2 +#define EFI_BOOT_SERVICES_CODE 3 +#define EFI_BOOT_SERVICES_DATA 4 +#define EFI_RUNTIME_SERVICES_CODE 5 +#define EFI_RUNTIME_SERVICES_DATA 6 +#define EFI_CONVENTIONAL_MEMORY 7 +#define EFI_UNUSABLE_MEMORY 8 +#define EFI_ACPI_RECLAIM_MEMORY 9 +#define EFI_ACPI_MEMORY_NVS 10 +#define EFI_MEMORY_MAPPED_IO 11 +#define EFI_MEMORY_MAPPED_IO_PORT_SPACE 12 +#define EFI_PAL_CODE 13 +#define EFI_MAX_MEMORY_TYPE 14 + +/* Attribute values: */ +#define EFI_MEMORY_UC 0x0000000000000001 /* uncached */ +#define EFI_MEMORY_WC 0x0000000000000002 /* write-coalescing */ +#define EFI_MEMORY_WT 0x0000000000000004 /* write-through */ +#define EFI_MEMORY_WB 0x0000000000000008 /* write-back */ +#define EFI_MEMORY_WP 0x0000000000001000 /* write-protect */ +#define EFI_MEMORY_RP 0x0000000000002000 /* read-protect */ +#define EFI_MEMORY_XP 0x0000000000004000 /* execute-protect */ +#define EFI_MEMORY_RUNTIME 0x8000000000000000 /* range requires runtime mapping */ +#define EFI_MEMORY_DESCRIPTOR_VERSION 1 + +#define EFI_PAGE_SHIFT 12 + +typedef struct { + u32 type; + u32 pad; + u64 phys_addr; + u64 virt_addr; + u64 num_pages; + u64 attribute; +} efi_memory_desc_t; + +typedef int efi_freemem_callback_t (u64 start, u64 end, void *arg); + +/* + * Types and defines for Time Services + */ +#define EFI_TIME_ADJUST_DAYLIGHT 0x1 +#define EFI_TIME_IN_DAYLIGHT 0x2 +#define EFI_UNSPECIFIED_TIMEZONE 0x07ff + +typedef struct { + u16 year; + u8 month; + u8 day; + u8 hour; + u8 minute; + u8 second; + u8 pad1; + u32 nanosecond; + s16 timezone; + u8 daylight; + u8 pad2; +} efi_time_t; + +typedef struct { + u32 resolution; + u32 accuracy; + u8 sets_to_zero; +} efi_time_cap_t; + +/* + * Types and defines for EFI ResetSystem + */ +#define EFI_RESET_COLD 0 +#define EFI_RESET_WARM 1 + +/* + * EFI Runtime Services table + */ +#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552 +#define EFI_RUNTIME_SERVICES_REVISION 0x00010000 + +typedef struct { + efi_table_hdr_t hdr; + u64 get_time; + u64 set_time; + u64 get_wakeup_time; + u64 set_wakeup_time; + u64 set_virtual_address_map; + u64 convert_pointer; + u64 get_variable; + u64 get_next_variable; + u64 set_variable; + u64 get_next_high_mono_count; + u64 reset_system; +} efi_runtime_services_t; + +typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc); +typedef efi_status_t efi_set_time_t (efi_time_t *tm); +typedef efi_status_t efi_get_wakeup_time_t (efi_bool_t *enabled, efi_bool_t *pending, + efi_time_t *tm); +typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm); +typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr, + unsigned long *data_size, void *data); +typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name, + efi_guid_t *vendor); +typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 attr, + unsigned long data_size, void *data); +typedef efi_status_t efi_get_next_high_mono_count_t (u64 *count); +typedef void efi_reset_system_t (int reset_type, efi_status_t status, + unsigned long data_size, efi_char16_t *data); + +/* + * EFI Configuration Table and GUID definitions + */ +#define NULL_GUID \ + EFI_GUID( 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ) + +#define MPS_TABLE_GUID \ + EFI_GUID( 0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) + +#define ACPI_TABLE_GUID \ + EFI_GUID( 0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) + +#define ACPI_20_TABLE_GUID \ + EFI_GUID( 0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 ) + +#define SMBIOS_TABLE_GUID \ + EFI_GUID( 0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) + +#define SAL_SYSTEM_TABLE_GUID \ + EFI_GUID( 0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) + +#define HCDP_TABLE_GUID \ + EFI_GUID( 0xf951938d, 0x620b, 0x42ef, 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 ) + +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_t; + +#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249 +#define EFI_SYSTEM_TABLE_REVISION ((1 << 16) | 00) + +typedef struct { + efi_table_hdr_t hdr; + u64 fw_vendor; /* physical addr of CHAR16 vendor string */ + u32 fw_revision; + u64 con_in_handle; + u64 con_in; + u64 con_out_handle; + u64 con_out; + u64 stderr_handle; + u64 stderr; + u64 runtime; + u64 boottime; + u64 nr_tables; + u64 tables; +} efi_system_table_t; + +/* + * All runtime access to EFI goes through this structure: + */ +extern struct efi { + efi_system_table_t *systab; /* EFI system table */ + void *mps; /* MPS table */ + void *acpi; /* ACPI table (IA64 ext 0.71) */ + void *acpi20; /* ACPI table (ACPI 2.0) */ + void *smbios; /* SM BIOS table */ + void *sal_systab; /* SAL system table */ + void *boot_info; /* boot info table */ + void *hcdp; /* HCDP table */ + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; +} efi; + +static inline int +efi_guidcmp (efi_guid_t left, efi_guid_t right) +{ + return memcmp(&left, &right, sizeof (efi_guid_t)); +} + +static inline char * +efi_guid_unparse(efi_guid_t *guid, char *out) +{ + sprintf(out, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + guid->b[3], guid->b[2], guid->b[1], guid->b[0], + guid->b[5], guid->b[4], guid->b[7], guid->b[6], + guid->b[8], guid->b[9], guid->b[10], guid->b[11], + guid->b[12], guid->b[13], guid->b[14], guid->b[15]); + return out; +} + +extern void efi_init (void); +extern void efi_map_pal_code (void); +extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg); +extern void efi_gettimeofday (struct timeval *tv); +extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */ +extern u64 efi_get_iobase (void); +extern u32 efi_mem_type (unsigned long phys_addr); +extern u64 efi_mem_attributes (unsigned long phys_addr); + +/* + * Variable Attributes + */ +#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 +#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 +#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 + + +/* + * efi_dir is allocated in arch/ia64/kernel/efi.c. + */ +#ifdef CONFIG_PROC_FS +extern struct proc_dir_entry *efi_dir; +#endif + +#endif /* _ASM_IA64_EFI_H */ =================================================================== This BitKeeper patch contains the following changesets: + ## Wrapped with gzip_uu ## begin 664 bkpatch20213 M'XL(`#;/63T``]U;;6_;1A+^'/X*`OG2XD[2ON_2N`1NZS87Y(H+TW)/5"47Q/`E2V9=FFI-%HYIG99V9VG]L?$A/?//M=I^G' MNRA,W)7UW/YGE*0WSSRS7L_=*(0+[Z((+BQ646@6H5<\;;%\6*R#S>Z/&9GS MF?&#E05/?*M3=V4_FCBY>8;G]'@E_;(U-\_>_?KJP[]^>F=9+U[8OZSTYM[\ MQZ3VBQ=6&L6/>NTEMSI=K:/-/(WU)@E-JO/WSXY/S0A"!+XYEA1QD6&!F,Q< M[&&L&38>(DP)9H7!YCZZ->O4S%>[^JL5I@13066&,5+*NK/QG"-F([)`:H&I M3<@-83<4SQ"_0AA>]7P6)#;?8_'<7Q,:S-]%G.UWI%/[8%!)L';NK M(#5NNHM-`O\9>Y>`G>Q??WMMNY%G_@YBMCI.`W>WUO'Z"[S<%`^^^O#Z#KP( MCZ1!M+'?Z^7:V#^\>OO^1QML8D)C^U%LPVONC>T%R4,RM][8@CG(>GMRLC4; M^6592"/KI>WIQ\`+;S_K8+W3\]5V#3^%;?//LRALL]HN_O<'AE]P_S$,$G?N MEO9F2"!,'"0SA*C#,H\0R0CV&*$<27?9Z-LA@A5FB!*&94:X$AS4[,;!2>2# MB3=FO4B#T!R$%:@`>3A#A!.>N>Y2T*44!&.F`1M]6C:(/.F',>5.KWY>'.0A MNW!7.LXQ%:=N33O$,BP)(9D`"TJ..1/*HQ239NTZ!%9T8]A!XVV7A-L&TV%% M9&8\'R.7+8W11B*W1;DNB2?M*&6$]6IW$:B)!H16P]WA+&.`0I)AXQ@#@:'Y M$A*.5LW:=4FLX@ZQ?K]>?-*MAKSA1PWV<[CD](Y!-D.".].H+,O9IG8BLPI$S1P9D& M+H01J+G4'P/X3Z1QV? MN50AB5!&&('8H)XVRO7S-*.8I\5`E]:D5H!'A#BIV!6ZD`:"*!?B/2W\^H#>$^]"$];`@&0)-86'R MD>.XRO%\)8'+]&:67*I^,)>"*YYFA.#Q\>M_GIE3FCJ%;P&N$`9/<@DM%*'84$EQPQKT63S=4!!75@/DB6)(HF^#?7-:E2_6:IE=4#UG>G MI`GFTVVR2\S<,YF?++:'TBBI&C_7Q,$.5'E4(DXS[&A/:>-HX0NPF=.L3JNX M"J=2D*DF)97&:(6L(G):I:BC7;T$%J`8AB0]*JNTQ"R"D)A`"_(5J0EWF*O, M%<+#`FIE(-1@SJ$,ORKR;-D5HFA&7"Z&>5?B^RS'1['Y"^G\!ZC0S8^MR[%$ M#A2"BB'(JF3?KE#U9@66GEW<6R:GFVX://\6YL#YS<"[J=FY/1;5W]'Q*.E*XP0PH)1J/480@4BY%6'>UFSUB#18XL)\'A-23LP[JB$!R_@46_N M#0?'M'[C,&BTM1Q+8+",<$'$$U@'RM9I%S#JEI@""\PZ8($O85&O.'-,?,<" M>`C>FB4SC%$^R0!`@.BG0`S*8KX5$'4S3$&#D!UH`%)>1T.MP#^!X9NW&KY2 M+O!#J!2)4\"`7#<,BJY)*PQJ5IC")##/:6)QW\$DFAIW_;/*Z>W#UM6AHX.( M"&0`!RI\#MF@9`MD+%U@WVN2^9/G&>\R@)\?&[3/;3^*\I^96XA/\K_G?^(_ M]T==!DN:%0]$EK0&CR3A3,H-T;&9UZ6J!;E9%5VNO:_/Z41:<_7#Y MJN+7>I@ENWN]V87Z-GS\-%\&]^MH:>90I7[:]A7!!+Z`5$`1G)=C.7+P=1/- MLIKO6SY*(TPJ+E%17`ZN/ZHMKPE`&-%\&\`KF_IO1T*)&"T))3C^FA%0-A(' M$(AIY(&(#O)`5!N5/'3')F!@5(-]%$V]D`Q,@@`YX>2`!7[54"C'!7U0.%AA M$HD0!8GHP$0C&HZS\@EP&#F]'T`IFP7O.25'&:*080HXB*N&0[$/H0\-1RM, M2@ZT*SFTUIE'?C$%#N/&YU:\2](OM_F]&\4%$N9Z-V!^3K$DDM&,.52R($,(P:=`Z%0FW260)!0K&A'%X6&]=- M&,J1;1\0]E;XYDW)@DHVPR"<"(+A6^,&0R!L``"E6)4`P%>^+A2;_'H!$$YU M?U?SL=/]Y0QZ&@3&3,6'EPX7@W&H'RE#+&-<*O04"LARPC\`#*4=)BT+3M>0 M0K0!HMS;.P$-8_89#X="52JX`B'&02K&F*`GT(8NMTSWP:"TP:2)1%.NRS'^'[GS<\@8XF+W)T*<"D8RHLB^2"!7WGDNMK&V>OYH@$E>[VP>X*;) M0WW7WAC_3]M*.&P(T;R;\%`TYMT)1Y$"#U?.#HM=D5V#B+HEIO01"M]WU@L= MP)C06IJX'VPL-,Z$G["!F*.>0D.AV-DV#!I?T6.B.5UX33M(PP4VSL\ZC`3& MZ,,7M:-VO:6B)T"3T-FB!A['V/T9GS$;JAJ-/YZ'L-J=^9C0[-39O_9R];_9]OJ:_Y MO^FIX[U?=>WY*<`)WAUQ'K&]".B2>MB'Q#,P*B[7=N>J0[L\6]GBVG,3?/LQ =8A';AU/S[LJX#\DN?$'