qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [Bug 1169856] Re: OpenBIOS seek fails on NetBSD CD image


From: Mark Cave-Ayland
Subject: [Qemu-devel] [Bug 1169856] Re: OpenBIOS seek fails on NetBSD CD image
Date: Sun, 21 Apr 2013 08:34:37 -0000

Thanks for the bug report!

This was a slight bug in the interpose logic within the OpenBIOS disk-
label package - we were always interposing a partition package if we
could detect a valid partition magic. In actual fact the interpose
should only happen when no arguments are specified when opening the
package, otherwise when opening the raw block device you "fall into" the
first valid partition by mistake.

I've committed a fix for this to OpenBIOS SVN trunk as r1127 and it
passes all my tests here so I am happy to close this out.


** Changed in: qemu
       Status: New => Fix Committed

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

Title:
  OpenBIOS seek fails on NetBSD CD image

Status in QEMU:
  Fix Committed

Bug description:
  With qemu 1.3.0 it is not possible to boot a NetBSD install CD image,
  using a command line like:

  qemu-system-sparc64 -nographic -boot d -cdrom
  NetBSD-6.99.19-sparc64.iso

  The image used here is a custom one with a bit of bootloader debugging
  added (see below). It is 310968320 bytes long (hex: 12890000) and when
  burned to a CD boots on real Sun hardware.

  The partition table on the CD is listed below, it consists of a big
  ISO9660 partition first (the root filesystem) and a small UFS/FFS
  partition only containing bootloader, kernel and a config file.

  Probably what happens is: "open" is called in OF, for the "cdrom"
  device. Then a "seek" call on this handle to the superblock of the UFS
  partition fails, maybe because OpenBIOS eroneously interprets the
  partition table and does not consider "cdrom" the full device?

  Before we get to this stage, the forth boot block opens "cdrom:f" and
  accesses the file system from there (without the full partition
  offset, of course), which works fine - this is how we get the
  secondary bootloader (ofwboot) loaded and executed.

  Could this be simple "cdrom" vs "cdrom:a" confusion or something like
  that?

  Here are the relevant excerpts from the boot messages - I can make the
  test image available, or just use a daily build HEAD image from
  NetBSD.org.

  I can also easily try patches or try to fix the bug myself, if you
  could give me a hint where this open/seek openfirmware functions are
  implemented.

  Thanks,

  Martin

  --8<--

  OpenBIOS for Sparc64
  Configuration device id QEMU version 1 machine id 0
  kernel cmdline
  CPUs: 1 x SUNW,UltraSPARC-IIi
  UUID: 00000000-0000-0000-0000-000000000000
  Welcome to OpenBIOS v1.0 built on Aug 19 2012 13:06
    Type 'help' for detailed information
  Trying cdrom:f...
  Not a bootable ELF image
  Not a bootable a.out image
  Loading FCode image...
  Loaded 7478 bytes
  entry point is 0x4000
  NetBSD IEEE 1275 Multi-FS Bootblock
  Version $NetBSD: bootblk.fth,v 1.13 2010/06/24 00:54:12 eeh Exp $
  ..
  Jumping to entry point 0000000000100000 for type 0000000000000001...
  switching to new context: entry point 0x100000 stack 0x00000000ffe86b39
  >> NetBSD/sparc64 OpenFirmware Boot, Revision 1.16 (Mon Apr 15 22:11:52 CEST 
20$
  bootoptions: device='cdrom:f', kernel='', options=''
  ..
  OF_open("cdrom")
  ... ok, handle: -3644496
  devopen: cdrom is now open
  devopen: trying to read disklabel
  ..
  partition 0 start 0 size 93a80
  partition 1 start 0 size 0
  partition 2 start 0 size 0
  partition 3 start 0 size 0
  partition 4 start 0 size 0
  partition 5 start 93a80 size a00
  partition 6 start 0 size 0
  partition 7 start 0 size 0
  disklabel_sun_to_bsd: success!
  devopen: setting partition 5 offset 93a80
  devopen: return 0
  ..
  strategy: block 10, partition offset 93a80, blksz 200
  strategy: seek position should be: 12752000
  strategy: seeking to 12752000
  OF_seek(handle -3644496, pos 309665792)
  OF_seek -> -1
  UFS read failed with 5

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



reply via email to

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