Re: Linux kernel EFI stub bug?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--
To unsubscribe from this list: send the line "unsubscribe linux-efi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux