Requirements For Multiboot

We need to understand required information for Multiboot Specification, common information and arch-specific information.

Information is divided into the information passed from a boot loader to an OS image and that passed from an OS image to a boot loader. In Multiboot Specification, the former is called "Multiboot Information", while the latter is "Multiboot Header".

Multiboot Header

Multiboot Information

For reference, here is the old GRUB multiboot structure. Most of the fields do not make sense outside of x86:

struct grub_multiboot_info
{
  /* MultiBoot info version number */
  grub_uint32_t flags;
  
  /* Available memory from BIOS */
  grub_uint32_t mem_lower;
  grub_uint32_t mem_upper;

  /* "root" partition */
  grub_uint32_t boot_device;

  /* Kernel command line */
  grub_uint32_t cmdline;

  /* Boot-Module list */
  grub_uint32_t mods_count;
  grub_uint32_t mods_addr;

  grub_uint32_t syms[4];

  /* Memory Mapping buffer */
  grub_uint32_t mmap_length;
  grub_uint32_t mmap_addr;

  /* Drive Info buffer */
  grub_uint32_t drives_length;
  grub_uint32_t drives_addr;

  /* ROM configuration table */
  grub_uint32_t config_table;

  /* Boot Loader Name */
  grub_uint32_t boot_loader_name;

  /* APM table */
  grub_uint32_t apm_table;

  /* Video */
  grub_uint32_t vbe_control_info;
  grub_uint32_t vbe_mode_info;
  grub_uint16_t vbe_mode;
  grub_uint16_t vbe_interface_seg;
  grub_uint16_t vbe_interface_off;
  grub_uint16_t vbe_interface_len;
};


CategoryDeveloper

GrubWiki: MultibootRequirements (last edited 2008-05-16 19:02:18 by VesaJääskeläinen)