* [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header
@ 2018-01-02 23:54 Stephen Warren
2018-01-02 23:54 ` [U-Boot] [PATCH 2/2] ARM: tegra: use LINUX_KERNEL_IMAGE_HEADER Stephen Warren
2018-01-03 13:45 ` [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header Tom Rini
0 siblings, 2 replies; 8+ messages in thread
From: Stephen Warren @ 2018-01-02 23:54 UTC (permalink / raw)
To: u-boot
From: Stephen Warren <swarren@nvidia.com>
Allow placing a Linux kernel image header at the start of the U-Boot
binary. This is useful since the image header reports the amount of memory
(BSS and similar) that U-Boot needs to use, but that isn't part of the
binary size. This can be used by the code that loads U-Boot into memory to
determine where to load U-Boot, based on other users of memory.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
This series relies (at the very least for diff context) on the previous
series I sent Dec 19: ARM: tegra: don't use CONFIG_SPL_TEXT_BASE when no
SPL ... ARM: tegra: use CONFIG_SYS_INIT_SP_BSS_OFFSET.
arch/arm/Kconfig | 16 ++++
| 86 ++++++++++++++++++++++
arch/arm/cpu/armv8/start.S | 4 +-
arch/arm/cpu/armv8/u-boot.lds | 4 +
| 49 ++++++++++++
5 files changed, 158 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/cpu/armv8/linux-kernel-image-header-vars.h
create mode 100644 arch/arm/include/asm/boot0-linux-kernel-header.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 93b93c142929..69f304b6d7e6 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -32,6 +32,22 @@ config SYS_INIT_SP_BSS_OFFSET
calculate the stack pointer. This offset should be large enough so
that the early malloc region, global data (gd), and early stack usage
do not overlap any appended DTB.
+
+config LINUX_KERNEL_IMAGE_HEADER
+ bool
+ help
+ Place a Linux kernel image header at the start of the U-Boot binary.
+ This is useful since the image header reports the amount of memory
+ (BSS and similar) that U-Boot needs to use, but that isn't part of
+ the binary size.
+
+if LINUX_KERNEL_IMAGE_HEADER
+config LNX_KRNL_IMG_TEXT_OFFSET_BASE
+ hex
+ help
+ The value subtracted from CONFIG_SYS_TEXT_BASE to calculate the
+ TEXT_OFFSET value written in to the Linux kernel image header.
+endif
endif
config STATIC_RELA
--git a/arch/arm/cpu/armv8/linux-kernel-image-header-vars.h b/arch/arm/cpu/armv8/linux-kernel-image-header-vars.h
new file mode 100644
index 000000000000..3e720937f012
--- /dev/null
+++ b/arch/arm/cpu/armv8/linux-kernel-image-header-vars.h
@@ -0,0 +1,86 @@
+/*
+ * (C) Copyright 2017 NVIDIA Corporation <www.nvidia.com>
+ *
+ * Derived from Linux kernel v4.14 files:
+ *
+ * arch/arm64/include/asm/assembler.h:
+ * Based on arch/arm/include/asm/assembler.h, arch/arm/mm/proc-macros.S
+ * Copyright (C) 1996-2000 Russell King
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * arch/arm64/kernel/head.S:
+ * Based on arch/arm/kernel/head.S
+ * Copyright (C) 1994-2002 Russell King
+ * Copyright (C) 2003-2012 ARM Ltd.
+ * Authors: Catalin Marinas <catalin.marinas@arm.com>
+ * Will Deacon <will.deacon@arm.com>
+ *
+ * arch/arm64/kernel/image.h:
+ * Copyright (C) 2014 ARM Ltd.
+ *
+ * SPDX-License-Identifier: GPL-2.0
+ */
+
+/*
+ * There aren't any ELF relocations we can use to endian-swap values known only
+ * at link time (e.g. the subtraction of two symbol addresses), so we must get
+ * the linker to endian-swap certain values before emitting them.
+ *
+ * Note that, in order for this to work when building the ELF64 PIE executable
+ * (for KASLR), these values should not be referenced via R_AARCH64_ABS64
+ * relocations, since these are fixed up at runtime rather than at build time
+ * when PIE is in effect. So we need to split them up in 32-bit high and low
+ * words.
+ */
+#ifdef CONFIG_CPU_BIG_ENDIAN
+#define DATA_LE32(data) \
+ ((((data) & 0x000000ff) << 24) | \
+ (((data) & 0x0000ff00) << 8) | \
+ (((data) & 0x00ff0000) >> 8) | \
+ (((data) & 0xff000000) >> 24))
+#else
+#define DATA_LE32(data) ((data) & 0xffffffff)
+#endif
+
+#define DEFINE_IMAGE_LE64(sym, data) \
+ sym##_lo32 = DATA_LE32((data) & 0xffffffff); \
+ sym##_hi32 = DATA_LE32((data) >> 32)
+
+#define __MAX(a, b) (((a) > (b)) ? (a) : (b))
+#define __CODE_DATA_SIZE (__bss_start - _start)
+#define __BSS_SIZE (__bss_end - __bss_start)
+#ifdef CONFIG_SYS_INIT_SP_BSS_OFFSET
+#define __MAX_EXTRA_RAM_USAGE __MAX(__BSS_SIZE, CONFIG_SYS_INIT_SP_BSS_OFFSET)
+#else
+#define __MAX_EXTRA_RAM_USAGE __BSS_SIZE
+#endif
+#define __MEM_USAGE (__CODE_DATA_SIZE + __MAX_EXTRA_RAM_USAGE)
+
+#ifdef CONFIG_CPU_BIG_ENDIAN
+#define __HEAD_FLAG_BE 1
+#else
+#define __HEAD_FLAG_BE 0
+#endif
+
+#define __HEAD_FLAG_PAGE_SIZE 1 /* 4K hard-coded */
+
+#define __HEAD_FLAG_PHYS_BASE 1
+
+#define __HEAD_FLAGS ((__HEAD_FLAG_BE << 0) | \
+ (__HEAD_FLAG_PAGE_SIZE << 1) | \
+ (__HEAD_FLAG_PHYS_BASE << 3))
+
+#define TEXT_OFFSET (CONFIG_SYS_TEXT_BASE - \
+ CONFIG_LNX_KRNL_IMG_TEXT_OFFSET_BASE)
+
+/*
+ * These will output as part of the Image header, which should be little-endian
+ * regardless of the endianness of the kernel. While constant values could be
+ * endian swapped in head.S, all are done here for consistency.
+ */
+#define HEAD_SYMBOLS \
+ DEFINE_IMAGE_LE64(_kernel_size_le, __MEM_USAGE); \
+ DEFINE_IMAGE_LE64(_kernel_offset_le, TEXT_OFFSET); \
+ DEFINE_IMAGE_LE64(_kernel_flags_le, __HEAD_FLAGS);
+
+ HEAD_SYMBOLS
diff --git a/arch/arm/cpu/armv8/start.S b/arch/arm/cpu/armv8/start.S
index 03e744e4a673..7c6807f4e1fd 100644
--- a/arch/arm/cpu/armv8/start.S
+++ b/arch/arm/cpu/armv8/start.S
@@ -19,7 +19,9 @@
.globl _start
_start:
-#ifdef CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK
+#if defined(LINUX_KERNEL_IMAGE_HEADER)
+#include <asm/boot0-linux-kernel-header.h>
+#elif defined(CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK)
/*
* Various SoCs need something special and SoC-specific up front in
* order to boot, allow them to set that in their boot0.h file and then
diff --git a/arch/arm/cpu/armv8/u-boot.lds b/arch/arm/cpu/armv8/u-boot.lds
index 22195b8834b5..7b76e0f9f08e 100644
--- a/arch/arm/cpu/armv8/u-boot.lds
+++ b/arch/arm/cpu/armv8/u-boot.lds
@@ -159,4 +159,8 @@ SECTIONS
/DISCARD/ : { *(.plt*) }
/DISCARD/ : { *(.interp*) }
/DISCARD/ : { *(.gnu*) }
+
+#ifdef CONFIG_LINUX_KERNEL_IMAGE_HEADER
+#include "linux-kernel-image-header-vars.h"
+#endif
}
--git a/arch/arm/include/asm/boot0-linux-kernel-header.h b/arch/arm/include/asm/boot0-linux-kernel-header.h
new file mode 100644
index 000000000000..ca28780daac5
--- /dev/null
+++ b/arch/arm/include/asm/boot0-linux-kernel-header.h
@@ -0,0 +1,49 @@
+/*
+ * (C) Copyright 2017 NVIDIA Corporation <www.nvidia.com>
+ *
+ * Derived from Linux kernel v4.14 files:
+ *
+ * arch/arm64/include/asm/assembler.h:
+ * Based on arch/arm/include/asm/assembler.h, arch/arm/mm/proc-macros.S
+ * Copyright (C) 1996-2000 Russell King
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * arch/arm64/kernel/head.S:
+ * Based on arch/arm/kernel/head.S
+ * Copyright (C) 1994-2002 Russell King
+ * Copyright (C) 2003-2012 ARM Ltd.
+ * Authors: Catalin Marinas <catalin.marinas@arm.com>
+ * Will Deacon <will.deacon@arm.com>
+ *
+ * arch/arm64/kernel/image.h:
+ * Copyright (C) 2014 ARM Ltd.
+ *
+ * SPDX-License-Identifier: GPL-2.0
+ */
+
+ /*
+ * Emit a 64-bit absolute little endian symbol reference in a way that
+ * ensures that it will be resolved at build time, even when building a
+ * PIE binary. This requires cooperation from the linker script, which
+ * must emit the lo32/hi32 halves individually.
+ */
+ .macro le64sym, sym
+ .long \sym\()_lo32
+ .long \sym\()_hi32
+ .endm
+
+.globl _start
+_start:
+ /*
+ * DO NOT MODIFY. Image header expected by Linux boot-loaders.
+ */
+ b reset /* branch to kernel start, magic */
+ .long 0 /* reserved */
+ le64sym _kernel_offset_le /* Image load offset from start of RAM, little-endian */
+ le64sym _kernel_size_le /* Effective size of kernel image, little-endian */
+ le64sym _kernel_flags_le /* Informative flags, little-endian */
+ .quad 0 /* reserved */
+ .quad 0 /* reserved */
+ .quad 0 /* reserved */
+ .ascii "ARM\x64" /* Magic number */
+ .long 0 /* reserved */
--
2.15.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 2/2] ARM: tegra: use LINUX_KERNEL_IMAGE_HEADER
2018-01-02 23:54 [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header Stephen Warren
@ 2018-01-02 23:54 ` Stephen Warren
2018-01-08 4:50 ` Simon Glass
2018-01-03 13:45 ` [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header Tom Rini
1 sibling, 1 reply; 8+ messages in thread
From: Stephen Warren @ 2018-01-02 23:54 UTC (permalink / raw)
To: u-boot
From: Stephen Warren <swarren@nvidia.com>
Enable CONFIG_LINUX_KERNEL_IMAGE_HEADER for all 64-bit Tegra boards.
cboot (the boot SW that runs before U-Boot) will eventually use this
information.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
arch/arm/mach-tegra/Kconfig | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 51d143687b06..fd0082d22a33 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -60,8 +60,14 @@ config TEGRA_ARMV7_COMMON
config TEGRA_ARMV8_COMMON
bool "Tegra 64-bit common options"
select ARM64
+ select LINUX_KERNEL_IMAGE_HEADER
select TEGRA_COMMON
+if TEGRA_ARMV8_COMMON
+config LNX_KRNL_IMG_TEXT_OFFSET_BASE
+ default 0x80000000
+endif
+
choice
prompt "Tegra SoC select"
optional
--
2.15.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header
2018-01-02 23:54 [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header Stephen Warren
2018-01-02 23:54 ` [U-Boot] [PATCH 2/2] ARM: tegra: use LINUX_KERNEL_IMAGE_HEADER Stephen Warren
@ 2018-01-03 13:45 ` Tom Rini
2018-01-03 17:42 ` Stephen Warren
1 sibling, 1 reply; 8+ messages in thread
From: Tom Rini @ 2018-01-03 13:45 UTC (permalink / raw)
To: u-boot
On Tue, Jan 02, 2018 at 04:54:21PM -0700, Stephen Warren wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> Allow placing a Linux kernel image header at the start of the U-Boot
> binary. This is useful since the image header reports the amount of memory
> (BSS and similar) that U-Boot needs to use, but that isn't part of the
> binary size. This can be used by the code that loads U-Boot into memory to
> determine where to load U-Boot, based on other users of memory.
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
> This series relies (at the very least for diff context) on the previous
> series I sent Dec 19: ARM: tegra: don't use CONFIG_SPL_TEXT_BASE when no
> SPL ... ARM: tegra: use CONFIG_SYS_INIT_SP_BSS_OFFSET.
Neat. Are the Linux folks encouraging other projects to re-use this
header? Is there somewhere we can point to as reference for the format
for the Kconfig help as well, not just the text? Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180103/fd04853e/attachment.sig>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header
2018-01-03 13:45 ` [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header Tom Rini
@ 2018-01-03 17:42 ` Stephen Warren
2018-01-03 17:56 ` Tom Rini
0 siblings, 1 reply; 8+ messages in thread
From: Stephen Warren @ 2018-01-03 17:42 UTC (permalink / raw)
To: u-boot
On 01/03/2018 06:45 AM, Tom Rini wrote:
> On Tue, Jan 02, 2018 at 04:54:21PM -0700, Stephen Warren wrote:
>
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> Allow placing a Linux kernel image header at the start of the U-Boot
>> binary. This is useful since the image header reports the amount of memory
>> (BSS and similar) that U-Boot needs to use, but that isn't part of the
>> binary size. This can be used by the code that loads U-Boot into memory to
>> determine where to load U-Boot, based on other users of memory.
>>
>> Signed-off-by: Stephen Warren <swarren@nvidia.com>
>> ---
>> This series relies (at the very least for diff context) on the previous
>> series I sent Dec 19: ARM: tegra: don't use CONFIG_SPL_TEXT_BASE when no
>> SPL ... ARM: tegra: use CONFIG_SYS_INIT_SP_BSS_OFFSET.
>
> Neat. Are the Linux folks encouraging other projects to re-use this
> header?
Not that I'm aware of, but mainly because I haven't talked to upstream
kernel people about this at all. I implemented this because in recent
versions of Linux4Tegra, for all 64-bit SoCs, our main CPU EL2/EL1 boot
path is either:
cboot -> Linux kernel
cboot -> U-Boot -> Linux kernel
cboot is an NVIDIA binary bootloader. cboot wants to know about BSS/...
usage of the binary it loads, which can be determined from the Linux
kernel image header, but we don't want cboot to take different paths
when booting Linux or U-Boot (or indeed anything at all), so the
simplest thing was to make U-Boot look as identical to a Linux kernel as
possible.
> Is there somewhere we can point to as reference for the format
> for the Kconfig help as well, not just the text? Thanks!
The Linux kernel file Documentation/arm64/booting.txt does describe the
format. Should I respin and add that filename to the Kconfig text?
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header
2018-01-03 17:42 ` Stephen Warren
@ 2018-01-03 17:56 ` Tom Rini
2018-01-03 21:31 ` Stephen Warren
0 siblings, 1 reply; 8+ messages in thread
From: Tom Rini @ 2018-01-03 17:56 UTC (permalink / raw)
To: u-boot
On Wed, Jan 03, 2018 at 10:42:56AM -0700, Stephen Warren wrote:
> On 01/03/2018 06:45 AM, Tom Rini wrote:
> >On Tue, Jan 02, 2018 at 04:54:21PM -0700, Stephen Warren wrote:
> >
> >>From: Stephen Warren <swarren@nvidia.com>
> >>
> >>Allow placing a Linux kernel image header at the start of the U-Boot
> >>binary. This is useful since the image header reports the amount of memory
> >>(BSS and similar) that U-Boot needs to use, but that isn't part of the
> >>binary size. This can be used by the code that loads U-Boot into memory to
> >>determine where to load U-Boot, based on other users of memory.
> >>
> >>Signed-off-by: Stephen Warren <swarren@nvidia.com>
> >>---
> >>This series relies (at the very least for diff context) on the previous
> >>series I sent Dec 19: ARM: tegra: don't use CONFIG_SPL_TEXT_BASE when no
> >>SPL ... ARM: tegra: use CONFIG_SYS_INIT_SP_BSS_OFFSET.
> >
> >Neat. Are the Linux folks encouraging other projects to re-use this
> >header?
>
> Not that I'm aware of, but mainly because I haven't talked to upstream
> kernel people about this at all. I implemented this because in recent
> versions of Linux4Tegra, for all 64-bit SoCs, our main CPU EL2/EL1 boot path
> is either:
>
> cboot -> Linux kernel
> cboot -> U-Boot -> Linux kernel
>
> cboot is an NVIDIA binary bootloader. cboot wants to know about BSS/...
> usage of the binary it loads, which can be determined from the Linux kernel
> image header, but we don't want cboot to take different paths when booting
> Linux or U-Boot (or indeed anything at all), so the simplest thing was to
> make U-Boot look as identical to a Linux kernel as possible.
>
> >Is there somewhere we can point to as reference for the format
> >for the Kconfig help as well, not just the text? Thanks!
>
> The Linux kernel file Documentation/arm64/booting.txt does describe the
> format. Should I respin and add that filename to the Kconfig text?
Yes, and I feel like it can't hurt to let the arm64 maintainers know too
as frankly it's a good idea and more projects should make use of it, so
maybe it should be a bit more formally documented (in one of those fancy
new rst files?) or something.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180103/68583c20/attachment.sig>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header
2018-01-03 17:56 ` Tom Rini
@ 2018-01-03 21:31 ` Stephen Warren
0 siblings, 0 replies; 8+ messages in thread
From: Stephen Warren @ 2018-01-03 21:31 UTC (permalink / raw)
To: u-boot
On 01/03/2018 10:56 AM, Tom Rini wrote:
> On Wed, Jan 03, 2018 at 10:42:56AM -0700, Stephen Warren wrote:
>> On 01/03/2018 06:45 AM, Tom Rini wrote:
>>> On Tue, Jan 02, 2018 at 04:54:21PM -0700, Stephen Warren wrote:
>>>
>>>> From: Stephen Warren <swarren@nvidia.com>
>>>>
>>>> Allow placing a Linux kernel image header at the start of the U-Boot
>>>> binary. This is useful since the image header reports the amount of memory
>>>> (BSS and similar) that U-Boot needs to use, but that isn't part of the
>>>> binary size. This can be used by the code that loads U-Boot into memory to
>>>> determine where to load U-Boot, based on other users of memory.
>>>>
>>>> Signed-off-by: Stephen Warren <swarren@nvidia.com>
>>>> ---
>>>> This series relies (at the very least for diff context) on the previous
>>>> series I sent Dec 19: ARM: tegra: don't use CONFIG_SPL_TEXT_BASE when no
>>>> SPL ... ARM: tegra: use CONFIG_SYS_INIT_SP_BSS_OFFSET.
>>>
>>> Neat. Are the Linux folks encouraging other projects to re-use this
>>> header?
>>
>> Not that I'm aware of, but mainly because I haven't talked to upstream
>> kernel people about this at all. I implemented this because in recent
>> versions of Linux4Tegra, for all 64-bit SoCs, our main CPU EL2/EL1 boot path
>> is either:
>>
>> cboot -> Linux kernel
>> cboot -> U-Boot -> Linux kernel
>>
>> cboot is an NVIDIA binary bootloader. cboot wants to know about BSS/...
>> usage of the binary it loads, which can be determined from the Linux kernel
>> image header, but we don't want cboot to take different paths when booting
>> Linux or U-Boot (or indeed anything at all), so the simplest thing was to
>> make U-Boot look as identical to a Linux kernel as possible.
>>
>>> Is there somewhere we can point to as reference for the format
>>> for the Kconfig help as well, not just the text? Thanks!
>>
>> The Linux kernel file Documentation/arm64/booting.txt does describe the
>> format. Should I respin and add that filename to the Kconfig text?
>
> Yes, and I feel like it can't hurt to let the arm64 maintainers know too
> as frankly it's a good idea and more projects should make use of it, so
> maybe it should be a bit more formally documented (in one of those fancy
> new rst files?) or something.
I talked to Catalin Marinas (one of the arch/arm64 maintainers) on IRC
and he said he didn't see any issue with this approach.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 2/2] ARM: tegra: use LINUX_KERNEL_IMAGE_HEADER
2018-01-02 23:54 ` [U-Boot] [PATCH 2/2] ARM: tegra: use LINUX_KERNEL_IMAGE_HEADER Stephen Warren
@ 2018-01-08 4:50 ` Simon Glass
2018-01-08 18:23 ` Stephen Warren
0 siblings, 1 reply; 8+ messages in thread
From: Simon Glass @ 2018-01-08 4:50 UTC (permalink / raw)
To: u-boot
Hi Stephen,
On 2 January 2018 at 16:54, Stephen Warren <swarren@wwwdotorg.org> wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> Enable CONFIG_LINUX_KERNEL_IMAGE_HEADER for all 64-bit Tegra boards.
> cboot (the boot SW that runs before U-Boot) will eventually use this
> information.
How does U-Boot use it? Does it not come from the FIT?
>
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
> arch/arm/mach-tegra/Kconfig | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
> index 51d143687b06..fd0082d22a33 100644
> --- a/arch/arm/mach-tegra/Kconfig
> +++ b/arch/arm/mach-tegra/Kconfig
> @@ -60,8 +60,14 @@ config TEGRA_ARMV7_COMMON
> config TEGRA_ARMV8_COMMON
> bool "Tegra 64-bit common options"
> select ARM64
> + select LINUX_KERNEL_IMAGE_HEADER
> select TEGRA_COMMON
>
> +if TEGRA_ARMV8_COMMON
> +config LNX_KRNL_IMG_TEXT_OFFSET_BASE
> + default 0x80000000
> +endif
> +
> choice
> prompt "Tegra SoC select"
> optional
> --
> 2.15.1
>
Regards,
Simon
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH 2/2] ARM: tegra: use LINUX_KERNEL_IMAGE_HEADER
2018-01-08 4:50 ` Simon Glass
@ 2018-01-08 18:23 ` Stephen Warren
0 siblings, 0 replies; 8+ messages in thread
From: Stephen Warren @ 2018-01-08 18:23 UTC (permalink / raw)
To: u-boot
On 01/07/2018 09:50 PM, Simon Glass wrote:
> Hi Stephen,
>
> On 2 January 2018 at 16:54, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> Enable CONFIG_LINUX_KERNEL_IMAGE_HEADER for all 64-bit Tegra boards.
>> cboot (the boot SW that runs before U-Boot) will eventually use this
>> information.
>
> How does U-Boot use it? Does it not come from the FIT?
U-Boot doesn't use the header itself. Rather, the header provides
information (e.g. BSS usage) to whatever SW is loading U-Boot into RAM.
We don't use FIT at all; I'd rather our boot flow not know about
bootloader-specific data formats.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-01-08 18:23 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-02 23:54 [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header Stephen Warren
2018-01-02 23:54 ` [U-Boot] [PATCH 2/2] ARM: tegra: use LINUX_KERNEL_IMAGE_HEADER Stephen Warren
2018-01-08 4:50 ` Simon Glass
2018-01-08 18:23 ` Stephen Warren
2018-01-03 13:45 ` [U-Boot] [PATCH 1/2] ARMv8: add optional Linux kernel image header Tom Rini
2018-01-03 17:42 ` Stephen Warren
2018-01-03 17:56 ` Tom Rini
2018-01-03 21:31 ` Stephen Warren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox