diff mbox series

[v10,05/14] arm64: add image head flag definitions

Message ID 20180623022058.10935-6-takahiro.akashi@linaro.org
State Superseded
Headers show
Series arm64: kexec: add kexec_file_load() support | expand

Commit Message

AKASHI Takahiro June 23, 2018, 2:20 a.m. UTC
Those image head's flags will be used later by kexec_file loader.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
---
 arch/arm64/include/asm/boot.h | 15 +++++++++++++++
 arch/arm64/kernel/head.S      |  2 +-
 2 files changed, 16 insertions(+), 1 deletion(-)

-- 
2.17.0

Comments

James Morse July 3, 2018, 4:34 p.m. UTC | #1
Hi Akashi,

On 23/06/18 03:20, AKASHI Takahiro wrote:
> Those image head's flags will be used later by kexec_file loader.


> 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			1

> +#define HEAD_FLAG_PAGE_SIZE_4K		1

> +#define HEAD_FLAG_PAGE_SIZE_16K		2

> +#define HEAD_FLAG_PAGE_SIZE_64K		3


These match the linker-script-header kernel/image.h.
Generating one from the other is something we can do later.

Acked-by: James Morse <james.morse@arm.com>



Thanks,

James
diff mbox series

Patch

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			1
+#define HEAD_FLAG_PAGE_SIZE_4K		1
+#define HEAD_FLAG_PAGE_SIZE_16K		2
+#define HEAD_FLAG_PAGE_SIZE_64K		3
+
+#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.