Commit Graph

12 Commits

Author SHA1 Message Date
Vladimir Serbinenko 21e4a6fa03 multiboot: disentangle multiboot and multiboot2.
Previously we had multiboot and multiboot2 declaring the same symbols.
This can potentially lead to aliasing and strange behaviours when e.g.
module instead of module2 is used with multiboot2.

Bug: #51137
2017-08-14 14:08:54 +02:00
Daniel Kiper 9862b24121 i386/relocator: Add grub_relocator64_efi relocator
Add grub_relocator64_efi relocator. It will be used on EFI 64-bit platforms
when multiboot2 compatible image requests MULTIBOOT_TAG_TYPE_EFI_BS. Relocator
will set lower parts of %rax and %rbx accordingly to multiboot2 specification.
On the other hand processor mode, just before jumping into loaded image, will
be set accordingly to Unified Extensible Firmware Interface Specification,
Version 2.4 Errata B, section 2.3.4, x64 Platforms, boot services. This way
loaded image will be able to use EFI boot services without any issues.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
2016-10-27 15:53:43 +02:00
Vladimir 'phcoder' Serbinenko 298ffd54b0 merge mainline into newreloc 2010-04-11 22:44:31 +02:00
Vladimir 'phcoder' Serbinenko 8c46a785e3 mips multiboot2 support 2010-04-03 14:14:48 +02:00
Vladimir 'phcoder' Serbinenko 5408044f4c Multiboot 2 tags support 2010-01-16 16:25:43 +01:00
Vladimir 'phcoder' Serbinenko 319fc3d213 Remove became useless i386/multiboot.h 2010-01-13 18:44:12 +01:00
Vladimir 'phcoder' Serbinenko ad184204b2 Remove leftover multiboot elpers 2010-01-13 18:41:49 +01:00
Vladimir 'phcoder' Serbinenko 14e43c6e02 First working newreloc 2010-01-10 15:06:17 +01:00
Robert Millan b50b77b9a8 Merge relocator branch 2009-12-13 18:37:44 +00:00
Vladimir 'phcoder' Serbinenko 636813f768 Split relocators from mips branch 2009-11-25 23:39:59 +01:00
Robert Millan 8d0edf4abd 2009-11-13 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/multiboot.h (struct grub_multiboot_header): Move
        from here ...
        * include/multiboot.h (struct multiboot_header): ... to here.  Update
        all users.
        * include/grub/multiboot.h (struct grub_multiboot_info): Move
        from here ...
        * include/multiboot.h (struct multiboot_info): ... to here.  Update
        all users.
        * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): Move
        from here ...
        * include/multiboot.h (struct multiboot_mmap_entry): ... to here.
        Update all users.
        * include/grub/multiboot.h (struct grub_mod_list): Move
        from here ...
        * include/multiboot.h (struct multiboot_mod_list): ... to here.
        Update all users.
2009-11-13 13:34:51 +00:00
robertmh c04d6e0548 2009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
Move multiboot helper out of kernel

        * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
        `loader/i386/multiboot_helper.S'.
        * conf/i386-coreboot.rmk: Likewise
        * conf/i386-ieee1275.rmk: Likewise

        * kern/i386/loader.S: Move multiboot helpers from here...
        * loader/i386/multiboot_helper.S: ...moved here
        * include/grub/i386/loader.h: Move declarations of multiboot
        helpers from here...
        * include/grub/i386/multiboot.h: ...moved here
        * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
2009-03-22 12:28:00 +00:00