[OpenBIOS] How does one use the partition access functions

Laurent Vivier Laurent at vivier.eu
Mon Feb 9 19:11:26 CET 2009


Le 9 févr. 09 à 19:04, Lennart Sorensen a écrit :

> On Mon, Feb 09, 2009 at 06:25:16PM +0100, Laurent Vivier wrote:
>> Hi,
>>
>> look at CHRP System binding, http://www.openfirmware.info/data/docs/CHRP.ps
>> , p. 56:
>>
>> 11.1.2.  Open Method Algorithm
>> ...
>>
>> 11.1.2.7.6.  CHECK_FOR_MAC_DISK
>> 11.1.2.7.7.  If this is a Mac partitioned disk
>> 11.1.2.7.7.1.  Search the Mac partition table for the first
>> "bootable" partition. A partition is "bootable"
>> when the pmPartStatus flags indicate that this is
>> a valid, allocated, readable and bootable
>> partition and the pmProcessor field contains
>> "powerpc" (using case-insensitive matching).
>> 11.1.2.7.7.2.  If a Mac "bootable" partition is found
>> 11.1.2.7.7.2.1.  If FILENAME$ is "%BOOT"
>> 11.1.2.7.7.2.1.1.  If the Nth partition is marked bootable
>> 11.1.2.7.7.2.1.1.1.  Set D.OFFSET to the byte offset from the
>> beginning of the disk to the beginning of
>> the boot area, as given by the
>> pmLgBootStart field.
>> 11.1.2.7.7.2.1.1.2.  Set D.SIZE to the size of the partition in bytes
>> denoted by pmBootSize.
>> 11.1.2.7.7.2.1.1.3.  Return OKAY
>> 11.1.2.7.7.2.2.  Else
>> 11.1.2.7.7.2.2.1.  If the FILENAME$ is the null string
>> 11.1.2.7.7.2.2.1.1.  Set D.OFFSET to the byte offset of the "real"
>> partition data
>> 11.1.2.7.7.2.2.1.2.  Set D.SIZE to the size of the "real" partition
>> data
>> 11.1.2.7.7.2.2.2.  Else
>> 11.1.2.7.7.2.2.2.1.  INTERPOSE_BY_TYPE
>> 11.1.2.7.7.2.2.3.  Return OKAY
>> 11.1.2.7.7.3.  Else
>
> That looks pretty much like what I was planning to do, based on the
> structure and how quik fills it in.  At least something like it.
>
> Now I just have to figure out how to check the values of the mac
> partiton table structure from arch/ppc/qemu/main.c

I think you don't have to do this from qemu/main.c but from modules/ 
mac-parts.c.

In m	acparts_open(), if partnum is missing, you have to search for a  
bootable partition.

Regards,
Laurent


More information about the OpenBIOS mailing list