From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754304AbXJ3Fxa (ORCPT ); Tue, 30 Oct 2007 01:53:30 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752964AbXJ3FxU (ORCPT ); Tue, 30 Oct 2007 01:53:20 -0400 Received: from mga03.intel.com ([143.182.124.21]:36669 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752868AbXJ3FxU (ORCPT ); Tue, 30 Oct 2007 01:53:20 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.21,345,1188802800"; d="scan'208";a="308136287" Subject: [PATCH 0/4 -v5] x86_64 EFI runtime service support From: "Huang, Ying" To: akpm@linux-foundation.org, "H. Peter Anvin" , Thomas Gleixner , Ingo Molnar , Andi Kleen , "Eric W. Biederman" , Chandramouli Narayanan Cc: linux-kernel@vger.kernel.org Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Tue, 30 Oct 2007 13:55:34 +0800 Message-Id: <1193723734.23935.345.camel@caritas-dev.intel.com> Mime-Version: 1.0 X-Mailer: Evolution 2.10.3 X-OriginalArrivalTime: 30 Oct 2007 05:52:33.0345 (UTC) FILETIME=[10D0CB10:01C81AB9] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Following patchset adds EFI/UEFI (Unified Extensible Firmware Interface) runtime services support to x86_64 architecture. The patchset have been tested against 2.6.24-rc1 kernel on Intel platforms with 64-bit EFI1.10 and UEFI2.0 firmware. Because the duplicated code between efi_32.c and efi_64.c is removed, the patchset is also tested on Intel platform with 32-bit EFI firmware. v5: - Remove the duplicated code between efi_32.c and efi_64.c. - Rename lin2win to efi_call. - Make EFI time runtime service default to off. - Use different bootloader signature for EFI32 and EFI64, so that kernel can know whether underlaying EFI firmware is 64-bit or 32-bit. v4: - EFI boot parameters are extended for 64-bit EFI in a 32-bit EFI compatible way. - Add EFI runtime services document. v3: - Remove E820_RUNTIME_CODE, the EFI memory map is used to deal with EFI runtime code area. - The method used to make EFI runtime code area executable is change: a. Before page allocation is usable, the PMD of direct mapping is changed temporarily before and after each EFI call. b. After page allocation is usable, change_page_attr_addr is used to change corresponding page attribute. - Use fixmap to map EFI memory mapped IO memory area to make kexec workable. - Add a kernel command line option "noefi" to make it possible to turn off EFI runtime services support. - Function pointers are used for EFI time runtime service. - EFI reboot runtime service is embedded into the framework of reboot_type. - A kernel command line option "noefi_time" is added to make it possible to fall back to CMOS based implementation. v2: - The EFI callwrapper is re-implemented in assembler. Best Regards, Huang Ying