[PATCH v15 07/16] arm64: add image head flag definitions
From: AKASHI Takahiro <hidden>
Date: 2018-10-02 07:58:17
Also in:
kexec, lkml
Hi Mark, On Mon, Oct 01, 2018 at 01:52:26PM +0100, Mark Rutland wrote:
On Fri, Sep 28, 2018 at 03:48:32PM +0900, AKASHI Takahiro wrote:quoted
Those image head's flags will be used later by kexec_file loader. Signed-off-by: AKASHI Takahiro <redacted> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <redacted> Acked-by: James Morse <james.morse@arm.com> --- arch/arm64/include/asm/boot.h | 15 +++++++++++++++ arch/arm64/kernel/head.S | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-)diff --git a/arch/arm64/include/asm/boot.h b/arch/arm64/include/asm/boot.h index 355e552a9175..0bab7eed3012 100644 --- a/arch/arm64/include/asm/boot.h +++ b/arch/arm64/include/asm/boot.h@@ -5,6 +5,21 @@ #include <asm/sizes.h> +#define ARM64_MAGIC "ARM\x64" + +#define HEAD_FLAG_BE_SHIFT 0 +#define HEAD_FLAG_PAGE_SIZE_SHIFT 1 +#define HEAD_FLAG_BE_MASK 0x1 +#define HEAD_FLAG_PAGE_SIZE_MASK 0x3 + +#define HEAD_FLAG_BE 1These already exist in some form in arch/arm64/kernel/image.h; can we please factor those out rather than duplicating them?
Sure.
I'd be happy if you'd update image.h to use the new HEAD_FLAG_* names, and removed the old definitions.
I want to make sure two things; 1. Do you assume all the existing __HEAD_FLAG_xyz's NOT be renamed (say, to HEAD_FLAG_xyz)? 2. Do you mind removing this check in image.h? (we also need to manage 'CONFIG_EFI' part of image.h.)
#ifndef LINKER_SCRIPT
#error This file should only be included in vmlinux.lds.S
#endifThanks, -Takahiro Akashi
quoted
+#define HEAD_FLAG_PAGE_SIZE_4K 1 +#define HEAD_FLAG_PAGE_SIZE_16K 2 +#define HEAD_FLAG_PAGE_SIZE_64K 3I appreciate these are new, since we didn't previously need definitions. Thanks, Mark.quoted
+ +#define head_flag_field(flags, field) \ + (((flags) >> field##_SHIFT) & field##_MASK) + /* * arm64 requires the DTB to be 8 byte aligned and * not exceed 2MB in size.diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S index b0853069702f..8cbac6232ed1 100644 --- a/arch/arm64/kernel/head.S +++ b/arch/arm64/kernel/head.S@@ -91,7 +91,7 @@ _head: .quad 0 // reserved .quad 0 // reserved .quad 0 // reserved - .ascii "ARM\x64" // Magic number + .ascii ARM64_MAGIC // Magic number #ifdef CONFIG_EFI .long pe_header - _head // Offset to the PE header.-- 2.19.0