grub-devel
[Top][All Lists]
Advanced

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

[RFC] multiboot2 loader


From: Hollis Blanchard
Subject: [RFC] multiboot2 loader
Date: Mon, 13 Nov 2006 19:16:20 -0600

Hi, this is a first pass at a multiboot2 loader (and sample kernel). It
is working on qemu/x86, so I figured I'd send it out now for comments.

I've implemented the tags data structure described at 
http://grub.enbug.org/MultibootDraft . The new file layout is like this:
 conf/i386-pc.rmk                          |    4 
 conf/powerpc-ieee1275.rmk                 |   12 
 include/grub/i386/pc/loader.h             |    7 
 include/grub/i386/pc/multiboot.h          |  184 -----------
 include/grub/misc.h                       |    2 
 include/grub/multiboot.h                  |   39 ++
 include/multiboot.h                       |  136 ++++++++
 kern/i386/pc/startup.S                    |   12 
 loader/i386/pc/multiboot.c                |  437 +---------------------------
 loader/i386/pc/multiboot_normal.c         |   61 ---
 loader/multiboot.c                        |  466 ++++++++++++++++++++++++++++++
 loader/multiboot_normal.c                 |   61 +++
 loader/powerpc/ieee1275/multiboot.c       |   54 +++
 util/powerpc/ieee1275/grub-mkimage.c      |    3 
 15 files changed, 805 insertions(+), 857 deletions(-)

(Unfortunately CVS sucks, even with quilt, so this patch may have bits
in it that don't make sense or apply.)

Missing functionality:
- all arch-specific tags (e.g. memory map descriptors on x86)
- unloading
- non-ELF multiboot executables
- PowerPC support is untested

I've placed a generic multiboot.h directly into include/ (not in the
grub subdirectory), since it it suitable for using in kernels
independently of GRUB. As for the license, I believe that
include/multiboot.h should NOT be GPL, to allow it to be used directly
for non-GPL operating systems like the BSDs.

I've also included a multiboot "Hello world", suitable for testing the
loader. (I believe this is far more valuable than the "hello" module,
which we should remove.) It is based on the code scattered through the
GRUB Legacy documentation.

Actually, we probably want to leave the old x86-only multiboot loader
around to allow people to boot multiboot1 kernels... how should we name
the two?

All comments welcome.

-Hollis

Attachment: multiboot2-helloworld
Description: Text Data

Attachment: multiboot2
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]