From: Michael Brown <mbrown-OViyBiuKJBuK421+ScFKDQ@public.gmane.org>
To: "H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Linux kernel EFI stub bug?
Date: Wed, 09 Jul 2014 16:44:11 +0100 [thread overview]
Message-ID: <53BD634B.9000709@fensystems.co.uk> (raw)
In-Reply-To: <53BD61AF.4090307-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
On 09/07/14 16:37, H. Peter Anvin wrote:
>> As far as I can tell, the underlying problem is that .bss variables in
>> eboot.o end up with addresses beyond the end of the loaded kernel.
>
> I would think we need to have an unallocated section -- as is typical
> for a .bss section -- so the image loader knows how much memory we are
> going to use. This could be complicated, as we export a whole lot of
> memory management information in the bzImage format, but I'm not sure if
> we can easily convey the same in PE/COFF. Does anyone know if very
> large aligments (2^21 bytes) is handled by existing pecoff loaders?
It is possible to create a .bss section in the PE/COFF header: iPXE does
this. For example:
objdump -x bin-x86_64-efi/ipxe.efi
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00081948 0000000000001000 0000000000001000 000002c0 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .rodata 0002bf5e 0000000000082960 0000000000082960 00081c20 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .data 0001fdf0 00000000000ae8c0 00000000000ae8c0 000adb80 2**4
CONTENTS, ALLOC, LOAD, DATA
3 .bss 000a27ac 00000000000ce700 00000000000ce700 00000000 2**4
ALLOC
4 .reloc 00001388 0000000000170ec0 0000000000170ec0 000cd980 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .debug 00000040 0000000000172260 0000000000172260 000ced20 2**0
CONTENTS, READONLY, DEBUGGING
If the bootloader is using the EFI handover protocol (rather than
calling the PE entry point), how is it (currently) supposed to know how
much memory to provide beyond the end of the bzImage file?
Michael
next prev parent reply other threads:[~2014-07-09 15:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-09 15:31 Linux kernel EFI stub bug? Michael Brown
[not found] ` <53BD6040.2040006-OViyBiuKJBuK421+ScFKDQ@public.gmane.org>
2014-07-09 15:37 ` H. Peter Anvin
[not found] ` <53BD61AF.4090307-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2014-07-09 15:44 ` Michael Brown [this message]
[not found] ` <53BD634B.9000709-OViyBiuKJBuK421+ScFKDQ@public.gmane.org>
2014-07-09 15:49 ` H. Peter Anvin
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=53BD634B.9000709@fensystems.co.uk \
--to=mbrown-oviybiukjbuk421+scfkdq@public.gmane.org \
--cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@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