[OpenBIOS] [commit] r832 - in trunk/openbios-devel: arch/sparc32 drivers

Blue Swirl blauwirbel at gmail.com
Sun Aug 8 20:24:24 CEST 2010


On Sun, Aug 8, 2010 at 11:56 AM, Mark Cave-Ayland
<mark.cave-ayland at siriusit.co.uk> wrote:
> Blue Swirl wrote:
>
>>> Ah I see. Looks like the return value is different between open_io() and
>>> open_ih() :(
>>
>> Not really. ;-)
>
> Hmmm I seem to remember based on existing code that the return value was
> wrong - obviously I changed the wrong end, so there may be some other
> breakage somewhere else.
>
>>>> I think it's better to postpone these changes until multiple boot
>>>> devices can be used in openbios.c.
>>>
>>> I'm confused. Surely if the "cdrom" alias is fixed, then once it is
>>> changed
>>> then it doesn't matter anymore as you would specify -boot d on the qemu
>>> command line? Or do you mean there is something still not right with the
>>> multiple boot-device code?
>>
>> Yes, it doesn't work with reversed list either.
>
> I've just tried adding a "cdrom:d" prefix to the cdrom boot-device list in
> arch/sparc32/openbios.c and it boots fine for me. Can you give me an example
> of where the code is not working as expected?

The problem is that some images don't have a bootable partition in
'd', but 'a', any of these fail because only the first device is
attempted in boot-device list. The automagic partition change hack may
mask this.

fdisk -l aurora-1.0-sparc-disc1.iso aurora-2.0-sparc-boot.iso
debian-40r5-sparc-businesscard.iso NetBSD_5.0.1_sparccd.iso
suse-sparc-7.3-CD1.iso zoot-sparc.iso OpenBSD-4.4.iso

Disk aurora-1.0-sparc-disc1.iso (Sun disk label): 1 heads, 640
sectors, 2024 cylinders
Units = cylinders of 640 * 512 bytes

                     Device Flag    Start       End    Blocks   Id  System
aurora-1.0-sparc-disc1.iso1   r         0      2024    647616   83  Linux native

Disk aurora-2.0-sparc-boot.iso (Sun disk label): 1 heads, 640 sectors,
2048 cylinders
Units = cylinders of 640 * 512 bytes

                    Device Flag    Start       End    Blocks   Id  System
aurora-2.0-sparc-boot.iso1   r         0        63     20160    4  SunOS usr
aurora-2.0-sparc-boot.iso2   r         0        63     20160    2  SunOS root
aurora-2.0-sparc-boot.iso3   r         0        63     20160    2  SunOS root
aurora-2.0-sparc-boot.iso4   r         0        63     20160    2  SunOS root
aurora-2.0-sparc-boot.iso5   r         0        63     20160    2  SunOS root
aurora-2.0-sparc-boot.iso6   r         0        63     20160    2  SunOS root
aurora-2.0-sparc-boot.iso7   r         0        63     20160    2  SunOS root
aurora-2.0-sparc-boot.iso8   r         0        63     20160    2  SunOS root

Disk debian-40r5-sparc-businesscard.iso (Sun disk label): 1 heads, 640
sectors, 2048 cylinders
Units = cylinders of 640 * 512 bytes

                             Device Flag    Start       End    Blocks
 Id  System
debian-40r5-sparc-businesscard.iso1   r         0        77     24640
  4  SunOS usr
debian-40r5-sparc-businesscard.iso2   r         0        77     24640
  2  SunOS root
debian-40r5-sparc-businesscard.iso3   r         0        77     24640
  2  SunOS root
debian-40r5-sparc-businesscard.iso4   r         0        77     24640
  2  SunOS root
debian-40r5-sparc-businesscard.iso5   r         0        77     24640
  2  SunOS root
debian-40r5-sparc-businesscard.iso6   r         0        77     24640
  2  SunOS root
debian-40r5-sparc-businesscard.iso7   r         0        77     24640
  2  SunOS root
debian-40r5-sparc-businesscard.iso8   r         0        77     24640
  2  SunOS root
Detected sun disklabel with wrong version [0x00000000].
Detected sun disklabel with wrong sanity [0x00000000].
Detected sun disklabel with wrong num_partitions [0].
Warning: Wrong values need to be fixed up and will be corrected by w(rite)

Disk NetBSD_5.0.1_sparccd.iso (Sun disk label): 1 heads, 640 sectors,
599 cylinders
Units = cylinders of 640 * 512 bytes

                   Device Flag    Start       End    Blocks   Id  System
NetBSD_5.0.1_sparccd.iso1             0       594    190080    0  Unassigned
NetBSD_5.0.1_sparccd.iso2           594       599      1600    0  Unassigned
NetBSD_5.0.1_sparccd.iso3           594       599      1600    0  Unassigned
NetBSD_5.0.1_sparccd.iso4           594       599      1600    0  Unassigned

Disk suse-sparc-7.3-CD1.iso (Sun disk label): 1 heads, 640 sectors,
2035 cylinders
Units = cylinders of 640 * 512 bytes

                 Device Flag    Start       End    Blocks   Id  System
suse-sparc-7.3-CD1.iso1   r         0      2035    651104   83  Linux native

Disk zoot-sparc.iso (Sun disk label): 1 heads, 640 sectors, 1904 cylinders
Units = cylinders of 640 * 512 bytes

         Device Flag    Start       End    Blocks   Id  System
zoot-sparc.iso1   r         0      1904    609152   83  Linux native

Disk OpenBSD-4.4.iso (Sun disk label): 1 heads, 640 sectors, 2048 cylinders
Units = cylinders of 640 * 512 bytes

          Device Flag    Start       End    Blocks   Id  System
OpenBSD-4.4.iso1             0      2048    655360    0  Unassigned
OpenBSD-4.4.iso2             0      2048    655360    0  Unassigned
OpenBSD-4.4.iso3             0      2048    655360    0  Unassigned
OpenBSD-4.4.iso4             0      2048    655360    0  Unassigned

In the NetBSD case, 'a' is not bootable but 'd' is. Aurora 1.0, Zoot
(Red Hat Linux 4.0) and SuSE 7.3 only boot from 'a'. In some images
(for example Debian 4.0R5) 'a' and 'd' are equivalent.



More information about the OpenBIOS mailing list