From: Matt_Domsch@Dell.com
To: linux-ia64@vger.kernel.org
Subject: RE: [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ?
Date: Thu, 15 Aug 2002 16:55:10 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590701905941@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590701905936@msgid-missing>
[-- Attachment #1: Type: text/plain, Size: 1970 bytes --]
> I'll post a similar patch against 2.4.x
> current BK tree soon as I have a moment to make it.
David and Bjorn, three patches against Marcelo's current 2.4.x BK tree:
1)
http://domsch.com/linux/patches/gpt/linux-2.4-gpt-efiguidt.cset
has been in the IA64 port for a while. This fixes the endianness issues
with the efi_guid_t type and adds the NULL_GUID definition needed to compile
the GPT code.
2)
http://domsch.com/linux/patches/ia64/linux-2.4-efihmove.cset
moves include/asm-ia64/efi.h to include/linux/efi.h similar to the 2.5
patches. This is needed to allow the GPT code to compile on non-IA64
platforms too, necessary for the use of really big disks.
3)
http://domsch.com/linux/patches/gpt/linux-2.4-gpt-efiguidt-unparse.cset
has been the IA64 port for a while. This fixes efi_guid_unparse for
endianness.
These need to be applied in the above order, as #1 touches efi.h, #2
touches and moves efi.h, and #3 touches it then too. You've got #1 and #3
already in your tree, but Marcelo and Alan don't have any of these three.
I've compiled this on x86 against BK-current building in GPT with no
troubles.
Because ia64 isn't sync'd with Marcelo ATM, on ia64 against
2.4.18-ia64-020722 then applying #2, one fixup to arch/ia64/kernel/acpi.c
needed, and by moving asm-ia64/efi.h to linux/efi.h, it works great.
Because acpi.c and efi.h changed in your patch since you've sync'd with
Marcelo, patch 2 above has these problems - easily fixed. Patch attached
applies against 2.4.18-ia64-020722 accomplishes same as #2 patch above.
Please apply the attached patch to your local tree, and forward the three BK
patches above to Alan and Marcelo for inclusion in 2.4.x mainline. Any
other syncs I leave up to you. :-)
Thanks,
Matt
--
Matt Domsch
Sr. Software Engineer, Lead Engineer, Architect
Dell Linux Solutions www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com
#1 US Linux Server provider for 2001 and Q1/2002! (IDC May 2002)
[-- Attachment #2: linux-2.4.18-ia64-efihmove.patch --]
[-- Type: application/octet-stream, Size: 28361 bytes --]
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/efi.c linux-2.4.18-efihmove/arch/ia64/kernel/efi.c
--- linux-2.4.18-ia64/arch/ia64/kernel/efi.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/efi.c Wed Aug 14 17:10:15 2002
@@ -24,8 +24,8 @@
#include <linux/types.h>
#include <linux/time.h>
#include <linux/proc_fs.h>
+#include <linux/efi.h>
-#include <asm/efi.h>
#include <asm/io.h>
#include <asm/kregs.h>
#include <asm/pgtable.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/efivars.c linux-2.4.18-efihmove/arch/ia64/kernel/efivars.c
--- linux-2.4.18-ia64/arch/ia64/kernel/efivars.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/efivars.c Wed Aug 14 17:10:15 2002
@@ -65,8 +65,8 @@
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/smp.h>
+#include <linux/efi.h>
-#include <asm/efi.h>
#include <asm/uaccess.h>
MODULE_AUTHOR("Matt Domsch <Matt_Domsch@Dell.com>");
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/fw-emu.c linux-2.4.18-efihmove/arch/ia64/kernel/fw-emu.c
--- linux-2.4.18-ia64/arch/ia64/kernel/fw-emu.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/fw-emu.c Wed Aug 14 17:10:15 2002
@@ -13,7 +13,7 @@
# include <linux/pci.h>
#endif
-#include <asm/efi.h>
+#include <linux/efi.h>
#include <asm/io.h>
#include <asm/pal.h>
#include <asm/sal.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/palinfo.c linux-2.4.18-efihmove/arch/ia64/kernel/palinfo.c
--- linux-2.4.18-ia64/arch/ia64/kernel/palinfo.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/palinfo.c Wed Aug 14 17:10:15 2002
@@ -21,10 +21,10 @@
#include <linux/proc_fs.h>
#include <linux/mm.h>
#include <linux/module.h>
+#include <linux/efi.h>
#include <asm/pal.h>
#include <asm/sal.h>
-#include <asm/efi.h>
#include <asm/page.h>
#include <asm/processor.h>
#ifdef CONFIG_SMP
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/process.c linux-2.4.18-efihmove/arch/ia64/kernel/process.c
--- linux-2.4.18-ia64/arch/ia64/kernel/process.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/process.c Wed Aug 14 17:10:15 2002
@@ -18,9 +18,9 @@
#include <linux/smp_lock.h>
#include <linux/stddef.h>
#include <linux/unistd.h>
+#include <linux/efi.h>
#include <asm/delay.h>
-#include <asm/efi.h>
#include <asm/perfmon.h>
#include <asm/pgtable.h>
#include <asm/processor.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/setup.c linux-2.4.18-efihmove/arch/ia64/kernel/setup.c
--- linux-2.4.18-ia64/arch/ia64/kernel/setup.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/setup.c Wed Aug 14 17:10:15 2002
@@ -29,6 +29,7 @@
#include <linux/string.h>
#include <linux/threads.h>
#include <linux/console.h>
+#include <linux/efi.h>
#include <asm/ia32.h>
#include <asm/page.h>
@@ -36,7 +37,6 @@
#include <asm/processor.h>
#include <asm/sal.h>
#include <asm/system.h>
-#include <asm/efi.h>
#include <asm/mca.h>
#include <asm/smp.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/smp.c linux-2.4.18-efihmove/arch/ia64/kernel/smp.c
--- linux-2.4.18-ia64/arch/ia64/kernel/smp.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/smp.c Wed Aug 14 17:10:15 2002
@@ -31,12 +31,12 @@
#include <linux/mm.h>
#include <linux/delay.h>
#include <linux/cache.h>
+#include <linux/efi.h>
#include <asm/atomic.h>
#include <asm/bitops.h>
#include <asm/current.h>
#include <asm/delay.h>
-#include <asm/efi.h>
#include <asm/machvec.h>
#include <asm/io.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/smpboot.c linux-2.4.18-efihmove/arch/ia64/kernel/smpboot.c
--- linux-2.4.18-ia64/arch/ia64/kernel/smpboot.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/smpboot.c Wed Aug 14 17:10:15 2002
@@ -23,13 +23,13 @@
#include <linux/smp.h>
#include <linux/smp_lock.h>
#include <linux/spinlock.h>
+#include <linux/efi.h>
#include <asm/atomic.h>
#include <asm/bitops.h>
#include <asm/cache.h>
#include <asm/current.h>
#include <asm/delay.h>
-#include <asm/efi.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/machvec.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/time.c linux-2.4.18-efihmove/arch/ia64/kernel/time.c
--- linux-2.4.18-ia64/arch/ia64/kernel/time.c Wed Aug 14 17:51:28 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/time.c Wed Aug 14 17:10:15 2002
@@ -15,9 +15,9 @@
#include <linux/sched.h>
#include <linux/time.h>
#include <linux/interrupt.h>
+#include <linux/efi.h>
#include <asm/delay.h>
-#include <asm/efi.h>
#include <asm/hw_irq.h>
#include <asm/ptrace.h>
#include <asm/sal.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/mm/init.c linux-2.4.18-efihmove/arch/ia64/mm/init.c
--- linux-2.4.18-ia64/arch/ia64/mm/init.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/mm/init.c Wed Aug 14 17:10:15 2002
@@ -14,10 +14,10 @@
#include <linux/reboot.h>
#include <linux/slab.h>
#include <linux/swap.h>
+#include <linux/efi.h>
#include <asm/bitops.h>
#include <asm/dma.h>
-#include <asm/efi.h>
#include <asm/ia32.h>
#include <asm/io.h>
#include <asm/machvec.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/sn/fakeprom/fpmem.c linux-2.4.18-efihmove/arch/ia64/sn/fakeprom/fpmem.c
--- linux-2.4.18-ia64/arch/ia64/sn/fakeprom/fpmem.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/sn/fakeprom/fpmem.c Wed Aug 14 17:10:15 2002
@@ -18,7 +18,7 @@
*/
#include <linux/config.h>
-#include <asm/efi.h>
+#include <linux/efi.h>
#include "fpmem.h"
/*
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/sn/fakeprom/fw-emu.c linux-2.4.18-efihmove/arch/ia64/sn/fakeprom/fw-emu.c
--- linux-2.4.18-ia64/arch/ia64/sn/fakeprom/fw-emu.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/sn/fakeprom/fw-emu.c Wed Aug 14 17:10:15 2002
@@ -36,7 +36,7 @@
* http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
#include <linux/config.h>
-#include <asm/efi.h>
+#include <linux/efi.h>
#include <asm/pal.h>
#include <asm/sal.h>
#include <asm/sn/sn_sal.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/sn/io/efi-rtc.c linux-2.4.18-efihmove/arch/ia64/sn/io/efi-rtc.c
--- linux-2.4.18-ia64/arch/ia64/sn/io/efi-rtc.c Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/sn/io/efi-rtc.c Wed Aug 14 17:10:15 2002
@@ -12,7 +12,7 @@
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/errno.h>
-#include <asm/efi.h>
+#include <linux/efi.h>
#include <asm/sn/klclock.h>
/*
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/sn/kernel/llsc4.c linux-2.4.18-efihmove/arch/ia64/sn/kernel/llsc4.c
--- linux-2.4.18-ia64/arch/ia64/sn/kernel/llsc4.c Wed Aug 14 18:41:16 2002
+++ linux-2.4.18-efihmove/arch/ia64/sn/kernel/llsc4.c Wed Aug 14 17:10:15 2002
@@ -17,7 +17,7 @@
#include <linux/mm.h>
#include <linux/delay.h>
#include <linux/string.h>
-#include <asm/efi.h>
+#include <linux/efi.h>
#include <asm/page.h>
#include <linux/threads.h>
#include <asm/sn/simulator.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/drivers/acpi/osl.c linux-2.4.18-efihmove/drivers/acpi/osl.c
--- linux-2.4.18-ia64/drivers/acpi/osl.c Wed Aug 14 18:41:17 2002
+++ linux-2.4.18-efihmove/drivers/acpi/osl.c Wed Aug 14 17:11:22 2002
@@ -37,7 +37,7 @@
#include "acpi.h"
#ifdef CONFIG_ACPI_EFI
-#include <asm/efi.h>
+#include <linux/efi.h>
u64 efi_mem_attributes (u64 phys_addr);
#endif
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/drivers/char/efirtc.c linux-2.4.18-efihmove/drivers/char/efirtc.c
--- linux-2.4.18-ia64/drivers/char/efirtc.c Wed Aug 14 18:41:17 2002
+++ linux-2.4.18-efihmove/drivers/char/efirtc.c Wed Aug 14 17:10:39 2002
@@ -35,8 +35,8 @@
#include <linux/init.h>
#include <linux/rtc.h>
#include <linux/proc_fs.h>
+#include <linux/efi.h>
-#include <asm/efi.h>
#include <asm/uaccess.h>
#include <asm/system.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/drivers/char/hcdp_serial.c linux-2.4.18-efihmove/drivers/char/hcdp_serial.c
--- linux-2.4.18-ia64/drivers/char/hcdp_serial.c Wed Aug 14 18:41:17 2002
+++ linux-2.4.18-efihmove/drivers/char/hcdp_serial.c Wed Aug 14 17:10:39 2002
@@ -15,9 +15,9 @@
#include <linux/init.h>
#include <linux/serial.h>
#include <linux/serialP.h>
+#include <linux/efi.h>
#include <asm/serial.h>
#include <asm/io.h>
-#include <asm/efi.h>
#include <linux/hcdp_serial.h>
#undef SERIAL_DEBUG_HCDP
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/fs/partitions/efi.h linux-2.4.18-efihmove/fs/partitions/efi.h
--- linux-2.4.18-ia64/fs/partitions/efi.h Wed Aug 14 18:41:19 2002
+++ linux-2.4.18-efihmove/fs/partitions/efi.h Thu Aug 15 11:38:46 2002
@@ -33,11 +33,7 @@
#include <linux/major.h>
#include <linux/string.h>
#include <linux/blk.h>
-/*
- * Yes, specifying asm-ia64 is ugly, but this lets it build on
- * other platforms too, until efi.h moves to include/linux.
- */
-#include <asm-ia64/efi.h>
+#include <linux/efi.h>
#define MSDOS_MBR_SIGNATURE 0xaa55
#define EFI_PMBR_OSTYPE_EFI 0xEF
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/include/asm-ia64/efi.h linux-2.4.18-efihmove/include/asm-ia64/efi.h
--- linux-2.4.18-ia64/include/asm-ia64/efi.h Wed Aug 14 18:41:19 2002
+++ linux-2.4.18-efihmove/include/asm-ia64/efi.h Wed Dec 31 18: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 <drummond@valinux.com>
- * Copyright (C) 1999, 2002 Hewlett-Packard Co.
- * David Mosberger-Tang <davidm@hpl.hp.com>
- * Stephane Eranian <eranian@hpl.hp.com>
- */
-#include <linux/init.h>
-#include <linux/string.h>
-#include <linux/time.h>
-#include <linux/types.h>
-#include <linux/proc_fs.h>
-
-#include <asm/page.h>
-#include <asm/system.h>
-
-#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 *hcdp; /* HCDP table */
- void *boot_info; /* boot info 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 -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/include/asm-ia64/sal.h linux-2.4.18-efihmove/include/asm-ia64/sal.h
--- linux-2.4.18-ia64/include/asm-ia64/sal.h Wed Aug 14 18:41:19 2002
+++ linux-2.4.18-efihmove/include/asm-ia64/sal.h Thu Aug 15 11:22:48 2002
@@ -24,9 +24,9 @@
*/
#include <linux/spinlock.h>
+#include <linux/efi.h>
#include <asm/pal.h>
-#include <asm/efi.h>
#include <asm/system.h>
#include <asm/fpu.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/include/linux/efi.h linux-2.4.18-efihmove/include/linux/efi.h
--- linux-2.4.18-ia64/include/linux/efi.h Wed Dec 31 18:00:00 1969
+++ linux-2.4.18-efihmove/include/linux/efi.h Thu Aug 15 11:22:35 2002
@@ -0,0 +1,284 @@
+#ifndef _LINUX_EFI_H
+#define _LINUX_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 <drummond@valinux.com>
+ * Copyright (C) 1999, 2002 Hewlett-Packard Co.
+ * David Mosberger-Tang <davidm@hpl.hp.com>
+ * Stephane Eranian <eranian@hpl.hp.com>
+ */
+#include <linux/init.h>
+#include <linux/string.h>
+#include <linux/time.h>
+#include <linux/types.h>
+#include <linux/proc_fs.h>
+
+#include <asm/page.h>
+#include <asm/system.h>
+
+#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 *hcdp; /* HCDP table */
+ void *boot_info; /* boot info 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 /* _LINUX_EFI_H */
prev parent reply other threads:[~2002-08-15 16:55 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-13 22:38 [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ? Matt_Domsch
2002-08-13 22:51 ` David Mosberger
2002-08-14 19:42 ` Matt_Domsch
2002-08-14 20:33 ` Matt_Domsch
2002-08-15 16:55 ` Matt_Domsch [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ia64-105590701905941@msgid-missing \
--to=matt_domsch@dell.com \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.