[OpenBIOS] Fix boot-script parsing for openSUSE ppc media
Laurent Vivier
Laurent at vivier.eu
Mon Feb 2 12:39:59 CET 2009
Le 2 févr. 09 à 12:17, Stefan Assmann a écrit :
> laurent at vivier.eu wrote:
>>>> Fix boot-script parsing for openSUSE ppc media
>>> applied, thanks
>>
>> I've applied it, as it breaks nothing and allows to use Suse, but a
>> better fix should be:
>>
>> - correctly parse the script to replace &device; by the boot device
>> ("cd:", and not "cd:0", which is "&bootdevice;:&partition;")
>
> Working on a patch for that.
>
>>
>> - correctly manage CD partition to be able to use ":1" instead of ":
>> 0" (in fact, for the moment, we use mac partition on CD and ":0" to
>> use the entire disk).
>
> I couldn't figure this out yet. When I use cd:1\somepath it doesn't
> work
> for the openSUSE DVD, there's something wrong with the ihandle. Any
> idea
> why it doesn't work?
>
> Here's what parted tells about the iso:
> Disk openSUSE-11.1-DVD-ppc.iso: 4126MB
> Sector size (logical/physical): 512B/512B
> Partition Table: mac
>
> Number Start End Size File system Name Flags
> 1 512B 1535B 1024B
> Apple , , , , , , , , , , , , type=Apple_partition_map
> 2 8192B 4126MB 4126MB
> SU1110.001 , , , , , , , , , , , , type=Apple_HFS
Perhaps a bug in partition map decoding in openbios: Apple CD
partition map is complex to be able to manage 512 and 2048 bytes
block size on the same disk.
see http://developer.apple.com/technotes/tn/tn1189.html#Non512ByteBlockDevices
Moreover, you have HFS and ISO9660 filesystems on the same disk.
>
> works:
>>> =============================================================
>>> OpenBIOS 1.0RC1 [Feb 2 2009 09:52]
>>> Configuration device id QEMU version 1 machine id 2
>>> CPUs: 1
>>> Memory: 256M
>>> UUID: 00000000-0000-0000-0000-000000000000
>>> CPU type PowerPC,750
>>> ELF - yaboot_startup: Entering boot, no path
>>> ELF - try_bootinfo: Trying cd:0,ppc\bootinfo.txt
>>> ELF - open_io: ih
>>> ELF - try_bootinfo: got bootscript boot &device;:0,\suseboot
>>> \yaboot.ibm
>>> ELF - try_bootinfo: fixed bootscript boot cd:0,\suseboot\yaboot.ibm
>>> ELF - yaboot_startup: Entering boot, path cd:0,\suseboot\yaboot.ibm
>>> ELF - try_path: Trying cd:0,\suseboot\yaboot.ibm
>>> ELF - open_io: ih
>
> doesn't work:
>>> CPU type PowerPC,750
>>> ELF - yaboot_startup: Entering boot, no path
>>> ELF - try_bootinfo: Trying cd:0,ppc\bootinfo.txt
>>> ELF - open_io: ih
>>> ELF - try_bootinfo: got bootscript boot &device;:1,\suseboot
>>> \yaboot.ibm
>>> ELF - try_bootinfo: fixed bootscript boot cd:1,\suseboot\yaboot.ibm
>>> ELF - yaboot_startup: Entering boot, path cd:1,\suseboot\yaboot.ibm
>>> ELF - try_path: Trying cd:1,\suseboot\yaboot.ibm
>>> ELF - open_io: !ih
>
> open_io calls open_dev which dives into forth and that's were I lost
> track.
look at:
- drivers:ide.c, ob_ide_open().
- modules/disk-label.c (which is the parent), dlabel_open()
- and then partitions and filesystems.
Regards,
Laurent
More information about the OpenBIOS
mailing list