[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