Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752790AbbBXVzH (ORCPT ); Tue, 24 Feb 2015 16:55:07 -0500 Received: from mail-wi0-f177.google.com ([209.85.212.177]:62689 "EHLO mail-wi0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752504AbbBXVzF (ORCPT ); Tue, 24 Feb 2015 16:55:05 -0500 Date: Tue, 24 Feb 2015 21:55:01 +0000 From: Matt Fleming To: Yinghai Lu Cc: Thomas Gleixner , "H. Peter Anvin" , Ingo Molnar , Jonathan Corbet , Matt Fleming , Kees Cook , Junjie Mao , linux-doc@vger.kernel.org, linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] x86, boot: Allow 64bit EFI kernel to be loaded above 4G Message-ID: <20150224215501.GB9758@codeblueprint.co.uk> References: <1424663028-13066-1-git-send-email-yinghai@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1424663028-13066-1-git-send-email-yinghai@kernel.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2759 Lines: 69 On Sun, 22 Feb, at 07:43:48PM, Yinghai Lu wrote: > Index: linux-2.6/arch/x86/boot/header.S > =================================================================== > --- linux-2.6.orig/arch/x86/boot/header.S > +++ linux-2.6/arch/x86/boot/header.S > @@ -301,7 +301,7 @@ _start: > # Part 2 of the header, from the old setup.S > > .ascii "HdrS" # header signature > - .word 0x020d # header version number (>= 0x0105) > + .word 0x020e # header version number (>= 0x0105) > # or else old loadlin-1.5 will fail) > .globl realmode_swtch > realmode_swtch: .word 0, 0 # default_switch, SETUPSEG > @@ -449,6 +449,7 @@ pref_address: .quad LOAD_PHYSICAL_ADDR > #endif > init_size: .long INIT_SIZE # kernel initialization size > handover_offset: .long 0 # Filled in by build.c > +ext_code32_start: .long 0 # werid one! How about a comment like, "# Upper 32-bits of code32_start" ? > Index: linux-2.6/Documentation/x86/boot.txt > =================================================================== > --- linux-2.6.orig/Documentation/x86/boot.txt > +++ linux-2.6/Documentation/x86/boot.txt > @@ -61,6 +61,9 @@ Protocol 2.12: (Kernel 3.8) Added the xl > to struct boot_params for loading bzImage and ramdisk > above 4G in 64bit. > > +Protocol 2.14: (Kernel 3.20) Added the ext_code32_start to support 64bit > + EFI kernel to be loaded above 4G. > + > **** MEMORY LAYOUT > > The traditional memory map for the kernel loader, used for Image or > @@ -197,6 +200,7 @@ Offset Proto Name Meaning > 0258/8 2.10+ pref_address Preferred loading address > 0260/4 2.10+ init_size Linear memory required during initialization > 0264/4 2.11+ handover_offset Offset of handover entry point > +0268/4 2.14+ ext_code32_start Extended part for code32_start > > (1) For backwards compatibility, if the setup_sects field contains 0, the > real value is 4. > @@ -738,6 +742,14 @@ Offset/size: 0x264/4 > > See EFI HANDOVER PROTOCOL below for more details. > > +Field name: ext_code32_start > +Type: modify (optional, reloc) > +Offset/size: 0x268/4 > +Protocol: 2.14+ > + > + This field is the upper 32bits of load address when EFI 64bit kernel > + is loaded above 4G. And it is used with code32_start to compare to > + pref_address to decide if kernel need to be relocated further. I think we can delete the second sentence. But these are minimal changes and I'm happy to fix them up when applying this patch if that's OK? -- Matt Fleming, Intel Open Source Technology Center -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/