* [PATCH] arm64/efi: set PE/COFF file alignment to 512 bytes
@ 2014-10-10 16:58 Ard Biesheuvel
[not found] ` <1412960335-22905-1-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
0 siblings, 1 reply; 8+ messages in thread
From: Ard Biesheuvel @ 2014-10-10 16:58 UTC (permalink / raw)
To: leif.lindholm-QSEj5FYQhm4dnm+yROfE0A,
roy.franz-QSEj5FYQhm4dnm+yROfE0A, will.deacon-5wv7dgnIgG8,
mark.rutland-5wv7dgnIgG8, matt.fleming-ral2JQCrhuEAvxtiuMwx3w,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-efi-u79uwXL29TY76Z2rM5mHXA, msalter-H+wXaHxf7aLQT0dZR+AlfA
Cc: Ard Biesheuvel
Change our PE/COFF header to use the minimum file alignment of
512 bytes (0x200), as mandated by the PE/COFF spec v8.3
Also update the linker script so that the Image file itself is also a
round multiple of FileAlignment.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
Another one from the PE/COFF rabbit hole. I will follow up next week and repost
as a coherent series, once I have collected all the feedback.
arch/arm64/kernel/head.S | 2 +-
arch/arm64/kernel/vmlinux.lds.S | 17 +++++++++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
index ba715ce3f7f1..e7e83b3128fd 100644
--- a/arch/arm64/kernel/head.S
+++ b/arch/arm64/kernel/head.S
@@ -162,7 +162,7 @@ optional_header:
extra_header_fields:
.quad 0 // ImageBase
.long 0x1000 // SectionAlignment
- .long 0x8 // FileAlignment
+ .long PECOFF_FILE_ALIGNMENT // FileAlignment
.short 0 // MajorOperatingSystemVersion
.short 0 // MinorOperatingSystemVersion
.short 0 // MajorImageVersion
diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
index edf8715ba39b..4596f46d0244 100644
--- a/arch/arm64/kernel/vmlinux.lds.S
+++ b/arch/arm64/kernel/vmlinux.lds.S
@@ -32,6 +32,22 @@ jiffies = jiffies_64;
*(.hyp.text) \
VMLINUX_SYMBOL(__hyp_text_end) = .;
+/*
+ * The size of the PE/COFF section that covers the kernel image, which
+ * runs from stext to _edata, must be a round multiple of the PE/COFF
+ * FileAlignment, which we set to its minimum value of 0x200. 'stext'
+ * itself is 4 KB aligned, so padding out _edata to a 0x200 aligned
+ * boundary should be sufficient.
+ */
+PECOFF_FILE_ALIGNMENT = 0x200;
+
+#ifdef CONFIG_EFI
+#define PECOFF_EDATA_PADDING \
+ .pecoff_edata_padding : { BYTE(0); . = ALIGN(PECOFF_FILE_ALIGNMENT); }
+#else
+#define PECOFF_EDATA_PADDING
+#endif
+
SECTIONS
{
/*
@@ -103,6 +119,7 @@ SECTIONS
_data = .;
_sdata = .;
RW_DATA_SECTION(64, PAGE_SIZE, THREAD_SIZE)
+ PECOFF_EDATA_PADDING
_edata = .;
BSS_SECTION(0, 0, 0)
--
1.8.3.2
^ permalink raw reply related [flat|nested] 8+ messages in thread[parent not found: <1412960335-22905-1-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>]
* Re: [PATCH] arm64/efi: set PE/COFF file alignment to 512 bytes [not found] ` <1412960335-22905-1-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> @ 2014-10-10 17:07 ` Roy Franz [not found] ` <CAFECyb8zwUwXAThPVOHNxZGzD6e=WVq4JMZdofNwztnw4YgYwA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-10-16 16:51 ` Catalin Marinas 2014-10-21 12:35 ` Matt Fleming 2 siblings, 1 reply; 8+ messages in thread From: Roy Franz @ 2014-10-10 17:07 UTC (permalink / raw) To: Ard Biesheuvel Cc: Leif Lindholm, Will Deacon, Mark Rutland, Matt Fleming, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mark Salter On Fri, Oct 10, 2014 at 9:58 AM, Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote: > Change our PE/COFF header to use the minimum file alignment of > 512 bytes (0x200), as mandated by the PE/COFF spec v8.3 > > Also update the linker script so that the Image file itself is also a > round multiple of FileAlignment. > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > --- Signed-off-by: Roy Franz <roy.franz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > > Another one from the PE/COFF rabbit hole. I will follow up next week and repost > as a coherent series, once I have collected all the feedback. > > arch/arm64/kernel/head.S | 2 +- > arch/arm64/kernel/vmlinux.lds.S | 17 +++++++++++++++++ > 2 files changed, 18 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S > index ba715ce3f7f1..e7e83b3128fd 100644 > --- a/arch/arm64/kernel/head.S > +++ b/arch/arm64/kernel/head.S > @@ -162,7 +162,7 @@ optional_header: > extra_header_fields: > .quad 0 // ImageBase > .long 0x1000 // SectionAlignment > - .long 0x8 // FileAlignment > + .long PECOFF_FILE_ALIGNMENT // FileAlignment > .short 0 // MajorOperatingSystemVersion > .short 0 // MinorOperatingSystemVersion > .short 0 // MajorImageVersion > diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S > index edf8715ba39b..4596f46d0244 100644 > --- a/arch/arm64/kernel/vmlinux.lds.S > +++ b/arch/arm64/kernel/vmlinux.lds.S > @@ -32,6 +32,22 @@ jiffies = jiffies_64; > *(.hyp.text) \ > VMLINUX_SYMBOL(__hyp_text_end) = .; > > +/* > + * The size of the PE/COFF section that covers the kernel image, which > + * runs from stext to _edata, must be a round multiple of the PE/COFF > + * FileAlignment, which we set to its minimum value of 0x200. 'stext' > + * itself is 4 KB aligned, so padding out _edata to a 0x200 aligned > + * boundary should be sufficient. > + */ > +PECOFF_FILE_ALIGNMENT = 0x200; > + > +#ifdef CONFIG_EFI > +#define PECOFF_EDATA_PADDING \ > + .pecoff_edata_padding : { BYTE(0); . = ALIGN(PECOFF_FILE_ALIGNMENT); } > +#else > +#define PECOFF_EDATA_PADDING > +#endif > + > SECTIONS > { > /* > @@ -103,6 +119,7 @@ SECTIONS > _data = .; > _sdata = .; > RW_DATA_SECTION(64, PAGE_SIZE, THREAD_SIZE) > + PECOFF_EDATA_PADDING > _edata = .; > > BSS_SECTION(0, 0, 0) > -- > 1.8.3.2 > ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CAFECyb8zwUwXAThPVOHNxZGzD6e=WVq4JMZdofNwztnw4YgYwA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH] arm64/efi: set PE/COFF file alignment to 512 bytes [not found] ` <CAFECyb8zwUwXAThPVOHNxZGzD6e=WVq4JMZdofNwztnw4YgYwA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2014-10-16 13:52 ` Matt Fleming [not found] ` <20141016135239.GG14343-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Matt Fleming @ 2014-10-16 13:52 UTC (permalink / raw) To: Roy Franz Cc: Ard Biesheuvel, Leif Lindholm, Will Deacon, Mark Rutland, Matt Fleming, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mark Salter On Fri, 10 Oct, at 10:07:48AM, Roy Franz wrote: > On Fri, Oct 10, 2014 at 9:58 AM, Ard Biesheuvel > <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote: > > Change our PE/COFF header to use the minimum file alignment of > > 512 bytes (0x200), as mandated by the PE/COFF spec v8.3 > > > > Also update the linker script so that the Image file itself is also a > > round multiple of FileAlignment. > > > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > > --- > > Signed-off-by: Roy Franz <roy.franz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Whut? Is there some patch authorship madness going on here? Who wrote the patch? -- Matt Fleming, Intel Open Source Technology Center ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20141016135239.GG14343-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>]
* Re: [PATCH] arm64/efi: set PE/COFF file alignment to 512 bytes [not found] ` <20141016135239.GG14343-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org> @ 2014-10-16 16:06 ` Ard Biesheuvel [not found] ` <CAKv+Gu_Ky6jUe-Br2E_nThA9ZKYUM2VbuhkRiHwviHh_8hbO-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 8+ messages in thread From: Ard Biesheuvel @ 2014-10-16 16:06 UTC (permalink / raw) To: Matt Fleming Cc: Roy Franz, Leif Lindholm, Will Deacon, Mark Rutland, Matt Fleming, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mark Salter On 16 October 2014 15:52, Matt Fleming <matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org> wrote: > On Fri, 10 Oct, at 10:07:48AM, Roy Franz wrote: >> On Fri, Oct 10, 2014 at 9:58 AM, Ard Biesheuvel >> <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote: >> > Change our PE/COFF header to use the minimum file alignment of >> > 512 bytes (0x200), as mandated by the PE/COFF spec v8.3 >> > >> > Also update the linker script so that the Image file itself is also a >> > round multiple of FileAlignment. >> > >> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> >> > --- >> >> Signed-off-by: Roy Franz <roy.franz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > > Whut? Is there some patch authorship madness going on here? > > Who wrote the patch? > I wrote the patch, and I suppose Roy meant to ack it. Roy? -- Ard. ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CAKv+Gu_Ky6jUe-Br2E_nThA9ZKYUM2VbuhkRiHwviHh_8hbO-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH] arm64/efi: set PE/COFF file alignment to 512 bytes [not found] ` <CAKv+Gu_Ky6jUe-Br2E_nThA9ZKYUM2VbuhkRiHwviHh_8hbO-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2014-10-16 17:54 ` Roy Franz 0 siblings, 0 replies; 8+ messages in thread From: Roy Franz @ 2014-10-16 17:54 UTC (permalink / raw) To: Ard Biesheuvel Cc: Matt Fleming, Leif Lindholm, Will Deacon, Mark Rutland, Matt Fleming, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mark Salter On Thu, Oct 16, 2014 at 9:06 AM, Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote: > On 16 October 2014 15:52, Matt Fleming <matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org> wrote: >> On Fri, 10 Oct, at 10:07:48AM, Roy Franz wrote: >>> On Fri, Oct 10, 2014 at 9:58 AM, Ard Biesheuvel >>> <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote: >>> > Change our PE/COFF header to use the minimum file alignment of >>> > 512 bytes (0x200), as mandated by the PE/COFF spec v8.3 >>> > >>> > Also update the linker script so that the Image file itself is also a >>> > round multiple of FileAlignment. >>> > >>> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> >>> > --- >>> >>> Signed-off-by: Roy Franz <roy.franz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> >> >> Whut? Is there some patch authorship madness going on here? >> >> Who wrote the patch? >> > > I wrote the patch, and I suppose Roy meant to ack it. > > Roy? > > -- > Ard. Sorry! Acked-by: Roy Franz <roy.franz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] arm64/efi: set PE/COFF file alignment to 512 bytes [not found] ` <1412960335-22905-1-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> 2014-10-10 17:07 ` Roy Franz @ 2014-10-16 16:51 ` Catalin Marinas 2014-10-21 12:35 ` Matt Fleming 2 siblings, 0 replies; 8+ messages in thread From: Catalin Marinas @ 2014-10-16 16:51 UTC (permalink / raw) To: Ard Biesheuvel Cc: leif.lindholm-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, roy.franz-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, Will Deacon, Mark Rutland, matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, msalter-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org On Fri, Oct 10, 2014 at 05:58:55PM +0100, Ard Biesheuvel wrote: > Change our PE/COFF header to use the minimum file alignment of > 512 bytes (0x200), as mandated by the PE/COFF spec v8.3 > > Also update the linker script so that the Image file itself is also a > round multiple of FileAlignment. > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > --- > > Another one from the PE/COFF rabbit hole. I will follow up next week and repost > as a coherent series, once I have collected all the feedback. If Matt is taking more patches in this series, here's my ack: Acked-by: Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] arm64/efi: set PE/COFF file alignment to 512 bytes [not found] ` <1412960335-22905-1-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> 2014-10-10 17:07 ` Roy Franz 2014-10-16 16:51 ` Catalin Marinas @ 2014-10-21 12:35 ` Matt Fleming [not found] ` <20141021123526.GH12020-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org> 2 siblings, 1 reply; 8+ messages in thread From: Matt Fleming @ 2014-10-21 12:35 UTC (permalink / raw) To: Ard Biesheuvel Cc: leif.lindholm-QSEj5FYQhm4dnm+yROfE0A, roy.franz-QSEj5FYQhm4dnm+yROfE0A, will.deacon-5wv7dgnIgG8, mark.rutland-5wv7dgnIgG8, matt.fleming-ral2JQCrhuEAvxtiuMwx3w, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-efi-u79uwXL29TY76Z2rM5mHXA, msalter-H+wXaHxf7aLQT0dZR+AlfA On Fri, 10 Oct, at 06:58:55PM, Ard Biesheuvel wrote: > Change our PE/COFF header to use the minimum file alignment of > 512 bytes (0x200), as mandated by the PE/COFF spec v8.3 > > Also update the linker script so that the Image file itself is also a > round multiple of FileAlignment. > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > --- > > Another one from the PE/COFF rabbit hole. I will follow up next week and repost > as a coherent series, once I have collected all the feedback. It appears a though next week never came. Should I pick up this version and apply ACK tags from the mailing list? Or are you planning on sending a larger series? It sounds like this should be tagged for stable, and placed into the EFI urgent queue? -- Matt Fleming, Intel Open Source Technology Center ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20141021123526.GH12020-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>]
* Re: [PATCH] arm64/efi: set PE/COFF file alignment to 512 bytes [not found] ` <20141021123526.GH12020-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org> @ 2014-10-22 8:02 ` Ard Biesheuvel 0 siblings, 0 replies; 8+ messages in thread From: Ard Biesheuvel @ 2014-10-22 8:02 UTC (permalink / raw) To: Matt Fleming Cc: Leif Lindholm, Roy Franz, Will Deacon, Mark Rutland, Matt Fleming, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mark Salter On 21 October 2014 14:35, Matt Fleming <matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org> wrote: > On Fri, 10 Oct, at 06:58:55PM, Ard Biesheuvel wrote: >> Change our PE/COFF header to use the minimum file alignment of >> 512 bytes (0x200), as mandated by the PE/COFF spec v8.3 >> >> Also update the linker script so that the Image file itself is also a >> round multiple of FileAlignment. >> >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> >> --- >> >> Another one from the PE/COFF rabbit hole. I will follow up next week and repost >> as a coherent series, once I have collected all the feedback. > > It appears a though next week never came. > > Should I pick up this version and apply ACK tags from the mailing list? > Or are you planning on sending a larger series? > > It sounds like this should be tagged for stable, and placed into the EFI > urgent queue? > I have a couple of patches like this one in my queue, and I don't think any of them are urgent. These alignment fixes etc are mainly for full compliance with the various specs, and there are no known issues being solved by them. I was going to wait for -rc1 and rebase on top of that, but it appears your branch hasn't been picked up? -- Ard. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-10-22 8:02 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-10 16:58 [PATCH] arm64/efi: set PE/COFF file alignment to 512 bytes Ard Biesheuvel
[not found] ` <1412960335-22905-1-git-send-email-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2014-10-10 17:07 ` Roy Franz
[not found] ` <CAFECyb8zwUwXAThPVOHNxZGzD6e=WVq4JMZdofNwztnw4YgYwA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-10-16 13:52 ` Matt Fleming
[not found] ` <20141016135239.GG14343-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-10-16 16:06 ` Ard Biesheuvel
[not found] ` <CAKv+Gu_Ky6jUe-Br2E_nThA9ZKYUM2VbuhkRiHwviHh_8hbO-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-10-16 17:54 ` Roy Franz
2014-10-16 16:51 ` Catalin Marinas
2014-10-21 12:35 ` Matt Fleming
[not found] ` <20141021123526.GH12020-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2014-10-22 8:02 ` Ard Biesheuvel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox