bug-grub
[Top][All Lists]
Advanced

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

Questions about Multiboot Specification


From: hun
Subject: Questions about Multiboot Specification
Date: 05 Jul 2004 22:02:50 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3

Hi,

when reading the multiboot specs, I ran into a few issues I didn't
understand, so I the included example kernel to print more
information.

However, I'd like to have these issues clarified, so I can submit a
clean patch to kernel.c/multiboot.h which prints all the fields
mentioned in the specification. 

A preliminary patch is attached.


========================================================================

---8<-------------------------------------------------------------------
   If bit 7 in the `flags' is set, then the `drives_*' fields are
valid, and indicate the address of the physical address of the first
drive structure and the size of drive structures. `drives_addr' is the
address, and `drives_length' is the total size of drive structures.
Note that `drives_length' may be zero. 
---8<-------------------------------------------------------------------

Hmm. So i have valid drives_* according to bit 7, and the values are:
   drives_length = 0
   drives_addr   = 0x30620

Am I right assuming that if (drives_length == 0), then the drives_addr
must be considered bogus? Thats a cautious assumption, but I think the
spec should say so explicitly :)


========================================================================

---8<-------------------------------------------------------------------
   If bit 8 in the `flags' is set, then the `config_table' field is
valid, and indicates the address of the ROM configuration table
returned by the "GET CONFIGURATION" BIOS call. If the BIOS call fails,
then the size of the table must be _zero_.
---8<-------------------------------------------------------------------

I get config_table == 0 on this machine.

So if "the size of the table" must be zero, where do I get that size
from, and what value should the address config_table field have in
that case?

Or should that read

   "If the BIOS call fails, then the *address* of the table
    (contained in config_table) must be zero."

?


========================================================================

Note that in grub/docs/ there are these files in CVS:

   boot.S
   kernel.c
   multiboot.h

and

   boot.S.texi
   kernel.c.texi
   multiboot.h.texi

while the latter three are automatically generated anyway. My patch
only patches the former three, so you'll have to regenerate the texi
files before you see the new source in texinfo.


Regards,

Uli

Attachment: multiboot-kernel-more-fields-1.patch
Description: Add additional fields from the specs to multiboot kernel


reply via email to

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