From: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org,
msalter-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
toshi.kani-VXdhtT5mjnY@public.gmane.org,
matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org,
greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org,
x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org,
horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org,
bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org,
ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org,
hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org,
mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Subject: [PATCH v7 10/12] x86: add xloadflags bit for efi runtime support on kexec
Date: Fri, 20 Dec 2013 18:02:20 +0800 [thread overview]
Message-ID: <1387533742-18018-11-git-send-email-dyoung@redhat.com> (raw)
In-Reply-To: <1387533742-18018-1-git-send-email-dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Old kexec-tools can not load new kernel. The reason is kexec-tools do not fill
efi_info in x86 setup header previously, thus efi failed to initialize.
In new kexec-tools it will by default fill efi_info and pass other efi required
infomation to 2nd kernel so kexec kernel efi initialization can succeed finally.
To prevent from breaking userspace, add a new xloadflags bit so kexec-tools
can check the flag and switch to old logic.
changelog:
Matt: +&& defined(CONFIG_KEXEC)
improve patch description.
HPA: document the flag.
Signed-off-by: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Acked-by: Borislav Petkov <bp-l3A5Bk7waGM@public.gmane.org>
---
Documentation/x86/boot.txt | 3 +++
| 9 ++++++++-
arch/x86/include/uapi/asm/bootparam.h | 1 +
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt
index f4f268c..cb81741d 100644
--- a/Documentation/x86/boot.txt
+++ b/Documentation/x86/boot.txt
@@ -608,6 +608,9 @@ Protocol: 2.12+
- If 1, the kernel supports the 64-bit EFI handoff entry point
given at handover_offset + 0x200.
+ Bit 4 (read): XLF_EFI_KEXEC
+ - If 1, the kernel supports kexec EFI boot with EFI runtime support.
+
Field name: cmdline_size
Type: read
Offset/size: 0x238/4
--git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index 9ec06a1..ec3b8ba 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -391,7 +391,14 @@ xloadflags:
#else
# define XLF23 0
#endif
- .word XLF0 | XLF1 | XLF23
+
+#if defined(CONFIG_X86_64) && defined(CONFIG_EFI) && defined(CONFIG_KEXEC)
+# define XLF4 XLF_EFI_KEXEC
+#else
+# define XLF4 0
+#endif
+
+ .word XLF0 | XLF1 | XLF23 | XLF4
cmdline_size: .long COMMAND_LINE_SIZE-1 #length of the command line,
#added with boot protocol
diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h
index 64fe421..225b098 100644
--- a/arch/x86/include/uapi/asm/bootparam.h
+++ b/arch/x86/include/uapi/asm/bootparam.h
@@ -24,6 +24,7 @@
#define XLF_CAN_BE_LOADED_ABOVE_4G (1<<1)
#define XLF_EFI_HANDOVER_32 (1<<2)
#define XLF_EFI_HANDOVER_64 (1<<3)
+#define XLF_EFI_KEXEC (1<<4)
#ifndef __ASSEMBLY__
--
1.8.3.1
next prev parent reply other threads:[~2013-12-20 10:02 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-20 10:02 [PATCH v7 00/12] kexec kernel efi runtime support Dave Young
[not found] ` <1387533742-18018-1-git-send-email-dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-12-20 10:02 ` [PATCH v7 01/12] x86/mm: sparse warning fix for early_memremap Dave Young
2013-12-20 10:02 ` [PATCH v7 02/12] efi: Use early_memremap and early_memunmap to fix sparse warnings Dave Young
2013-12-20 10:02 ` [PATCH v7 03/12] efi: remove unused variables in __map_region Dave Young
2013-12-20 10:02 ` [PATCH v7 04/12] efi: add a wrapper function efi_map_region_fixed Dave Young
2013-12-20 10:02 ` [PATCH v7 05/12] efi: reserve boot service fix Dave Young
2013-12-20 10:02 ` [PATCH v7 06/12] efi: cleanup efi_enter_virtual_mode function Dave Young
2013-12-20 10:02 ` [PATCH v7 07/12] efi: export more efi table variable to sysfs Dave Young
2013-12-20 10:02 ` [PATCH v7 08/12] efi: export efi runtime memory mapping " Dave Young
2013-12-20 10:02 ` [PATCH v7 09/12] efi: passing kexec necessary efi data via setup_data Dave Young
[not found] ` <1387533742-18018-10-git-send-email-dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-12-21 14:53 ` Matt Fleming
[not found] ` <20131221145348.GC29501-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-12-23 2:06 ` Dave Young
2013-12-21 16:06 ` Matt Fleming
[not found] ` <20131221160416.GD29501-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-12-23 2:09 ` Dave Young
[not found] ` <20131223020958.GB3760-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-12-23 6:09 ` Dave Young
2013-12-23 8:07 ` Matt Fleming
[not found] ` <20131223080741.GB28919-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-12-25 3:12 ` Dave Young
[not found] ` <20131225031259.GB6333-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-12-25 3:32 ` Dave Young
[not found] ` <20131225033205.GC6333-je1gSBvt1TcFLmT5oZ11vB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2013-12-29 13:05 ` Matt Fleming
[not found] ` <20131229130546.GA2618-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-12-30 1:38 ` Dave Young
2013-12-20 10:02 ` Dave Young [this message]
2013-12-20 10:02 ` [PATCH v7 11/12] x86: export x86 boot_params to sysfs Dave Young
2013-12-20 10:02 ` [PATCH v7 12/12] x86: reserve setup_data ranges late after parsing memmap cmdline Dave Young
2013-12-20 18:01 ` [PATCH v7 00/12] kexec kernel efi runtime support Toshi Kani
2013-12-21 17:35 ` Matt Fleming
[not found] ` <20131221173515.GE29501-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-12-22 21:27 ` Toshi Kani
[not found] ` <1387747621.1848.2.camel-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org>
2013-12-23 7:36 ` Matt Fleming
[not found] ` <20131223073641.GA28919-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-12-24 20:31 ` Toshi Kani
2013-12-25 3:09 ` Dave Young
2013-12-23 2:32 ` Dave Young
2014-01-02 2:42 ` Dave Young
[not found] ` <20140102024256.GB2563-4/PLUo9XfK+sDdueE5tM26fLeoKvNuZc@public.gmane.org>
2014-01-02 10:35 ` Matt Fleming
[not found] ` <20140102103549.GC2618-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-01-03 4:12 ` Dave Young
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=1387533742-18018-11-git-send-email-dyoung@redhat.com \
--to=dyoung-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org \
--cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
--cc=greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org \
--cc=horms-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org \
--cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
--cc=kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org \
--cc=mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org \
--cc=msalter-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=toshi.kani-VXdhtT5mjnY@public.gmane.org \
--cc=vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox