qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [Bug 1512134] [NEW] Multiboot v1 memory map offset wrong
@ 2015-11-01 19:02 Tristan Parisot
  2015-11-01 19:03 ` [Qemu-devel] [Bug 1512134] " Tristan Parisot
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Tristan Parisot @ 2015-11-01 19:02 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

I'm developping a multiboot kernel for multiboot v1
My multiboot header contains the V1 magic (0x1BADB002) and the flags 0x00010243  (with enabled memory detection, and boot loader name)


When booted in multiboot,
Qemu gives me two pointers:
unsigned long mmap_length;
unsigned long mmap_addr;

mmap_addr shall points to this structure:
struct multiboot_mmap_entry
{
multiboot_uint32_t size;
multiboot_uint64_t addr;
multiboot_uint64_t len;
multiboot_uint32_t type;
} 


According to the multiboot v1 specification, mmap_addr should not point  to the start of this structure, but instead, should point to the "addr "field.

Work-arround:
Detect if qemu is used using bootloader_name field.
If it is, do NOT apply a -4 offset to mmap_addr

http://git.savannah.gnu.org/cgit/grub.git/tree/doc/multiboot.texi?h=multiboot

** Affects: qemu
     Importance: Undecided
         Status: New


** Tags: multiboot

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1512134

Title:
  Multiboot v1 memory map offset wrong

Status in QEMU:
  New

Bug description:
  I'm developping a multiboot kernel for multiboot v1
  My multiboot header contains the V1 magic (0x1BADB002) and the flags 0x00010243  (with enabled memory detection, and boot loader name)

  
  When booted in multiboot,
  Qemu gives me two pointers:
  unsigned long mmap_length;
  unsigned long mmap_addr;

  mmap_addr shall points to this structure:
  struct multiboot_mmap_entry
  {
  multiboot_uint32_t size;
  multiboot_uint64_t addr;
  multiboot_uint64_t len;
  multiboot_uint32_t type;
  } 

  
  According to the multiboot v1 specification, mmap_addr should not point  to the start of this structure, but instead, should point to the "addr "field.

  Work-arround:
  Detect if qemu is used using bootloader_name field.
  If it is, do NOT apply a -4 offset to mmap_addr

  http://git.savannah.gnu.org/cgit/grub.git/tree/doc/multiboot.texi?h=multiboot

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1512134/+subscriptions

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-11-09 17:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-01 19:02 [Qemu-devel] [Bug 1512134] [NEW] Multiboot v1 memory map offset wrong Tristan Parisot
2015-11-01 19:03 ` [Qemu-devel] [Bug 1512134] " Tristan Parisot
2015-11-02 16:42 ` Max Reitz
2015-11-08 11:56 ` Tristan Parisot
2015-11-09 16:59 ` Max Reitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).