multiboot: set boot_device to first partition

Submitted by Arun Thomas on April 28, 2011, 2:11 p.m.

Details

Message ID 1303999871-9955-1-git-send-email-arun.thomas@gmail.com
State New
Headers show

Commit Message

Arun Thomas April 28, 2011, 2:11 p.m.
The multiboot info struct's 'boot_device' field has 'part1' set to 0x01, which
maps to the second primary partition. To specify the first primary partition,
'part1' should be set to 0x00, since partition numbers start from zero
according to the multiboot spec.

Signed-off-by: Arun Thomas <arun.thomas@gmail.com>

---
 hw/multiboot.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Stefan Hajnoczi May 1, 2011, 4:35 p.m.
On Thu, Apr 28, 2011 at 3:11 PM, Arun Thomas <arun.thomas@gmail.com> wrote:
> The multiboot info struct's 'boot_device' field has 'part1' set to 0x01, which
> maps to the second primary partition. To specify the first primary partition,
> 'part1' should be set to 0x00, since partition numbers start from zero
> according to the multiboot spec.
>
> Signed-off-by: Arun Thomas <arun.thomas@gmail.com>

Which OSes have you tested?  Xen?  Solaris?

Stefan
Arun Thomas May 18, 2011, 9:49 p.m.
On Sun, May 1, 2011 at 6:35 PM, Stefan Hajnoczi <stefanha@gmail.com> wrote:
> On Thu, Apr 28, 2011 at 3:11 PM, Arun Thomas <arun.thomas@gmail.com> wrote:
>> The multiboot info struct's 'boot_device' field has 'part1' set to 0x01, which
>> maps to the second primary partition. To specify the first primary partition,
>> 'part1' should be set to 0x00, since partition numbers start from zero
>> according to the multiboot spec.
>>
>> Signed-off-by: Arun Thomas <arun.thomas@gmail.com>
>
> Which OSes have you tested?  Xen?  Solaris?

I tested Solaris (OpenIndiana Build 148), and it boots fine. I haven't
been able to try Xen. Linux also boots fine, as expected.

Thanks,
Arun
Stefan Hajnoczi May 19, 2011, 8:17 a.m.
On Wed, May 18, 2011 at 11:49:26PM +0200, Arun Thomas wrote:
> On Sun, May 1, 2011 at 6:35 PM, Stefan Hajnoczi <stefanha@gmail.com> wrote:
> > On Thu, Apr 28, 2011 at 3:11 PM, Arun Thomas <arun.thomas@gmail.com> wrote:
> >> The multiboot info struct's 'boot_device' field has 'part1' set to 0x01, which
> >> maps to the second primary partition. To specify the first primary partition,
> >> 'part1' should be set to 0x00, since partition numbers start from zero
> >> according to the multiboot spec.
> >>
> >> Signed-off-by: Arun Thomas <arun.thomas@gmail.com>
> >
> > Which OSes have you tested?  Xen?  Solaris?
> 
> I tested Solaris (OpenIndiana Build 148), and it boots fine. I haven't
> been able to try Xen. Linux also boots fine, as expected.

Okay, if Solaris boots that's a good sign.  According to the spec your
change is correct, I think this patch should be applied.

Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Aurelien Jarno June 3, 2011, 8:33 p.m.
On Thu, Apr 28, 2011 at 04:11:11PM +0200, Arun Thomas wrote:
> The multiboot info struct's 'boot_device' field has 'part1' set to 0x01, which
> maps to the second primary partition. To specify the first primary partition,
> 'part1' should be set to 0x00, since partition numbers start from zero
> according to the multiboot spec.
> 
> Signed-off-by: Arun Thomas <arun.thomas@gmail.com>
> 
> ---
>  hw/multiboot.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)

Thanks, applied.

> diff --git a/hw/multiboot.c b/hw/multiboot.c
> index 394ed01..6e6cfb9 100644
> --- a/hw/multiboot.c
> +++ b/hw/multiboot.c
> @@ -307,7 +307,7 @@ int load_multiboot(void *fw_cfg,
>                                  | MULTIBOOT_FLAGS_MMAP);
>      stl_p(bootinfo + MBI_MEM_LOWER,   640);
>      stl_p(bootinfo + MBI_MEM_UPPER,   (ram_size / 1024) - 1024);
> -    stl_p(bootinfo + MBI_BOOT_DEVICE, 0x8001ffff); /* XXX: use the -boot switch? */
> +    stl_p(bootinfo + MBI_BOOT_DEVICE, 0x8000ffff); /* XXX: use the -boot switch? */
>      stl_p(bootinfo + MBI_MMAP_ADDR,   ADDR_E820_MAP);
>  
>      mb_debug("multiboot: mh_entry_addr = %#x\n", mh_entry_addr);
> -- 
> tg: (d16e0f0..) bootdev (depends on: master)
> 
>

Patch hide | download patch | download mbox

diff --git a/hw/multiboot.c b/hw/multiboot.c
index 394ed01..6e6cfb9 100644
--- a/hw/multiboot.c
+++ b/hw/multiboot.c
@@ -307,7 +307,7 @@  int load_multiboot(void *fw_cfg,
                                 | MULTIBOOT_FLAGS_MMAP);
     stl_p(bootinfo + MBI_MEM_LOWER,   640);
     stl_p(bootinfo + MBI_MEM_UPPER,   (ram_size / 1024) - 1024);
-    stl_p(bootinfo + MBI_BOOT_DEVICE, 0x8001ffff); /* XXX: use the -boot switch? */
+    stl_p(bootinfo + MBI_BOOT_DEVICE, 0x8000ffff); /* XXX: use the -boot switch? */
     stl_p(bootinfo + MBI_MMAP_ADDR,   ADDR_E820_MAP);
 
     mb_debug("multiboot: mh_entry_addr = %#x\n", mh_entry_addr);