[OpenBIOS] [Qemu-ppc] Changing CD-ROM path
Programmingkid
magiccatsoftware at gmail.com
Sat Jun 22 21:05:27 CEST 2013
On Jun 22, 2013, at 2:05 PM, Alexander Graf wrote:
>
> On 22.06.2013, at 19:53, Programmingkid wrote:
>
>>
>> On Jun 22, 2013, at 1:27 PM, Alexander Graf wrote:
>>
>>>
>>> On 22.06.2013, at 18:50, Programmingkid wrote:
>>>
>>>> Mac OS 10.2 requires the boot CD-ROM to be located here: /pci/mac-io/ide at 1000/@0:9. It is currently located here: /pci at 80000000/pci-ata at 4/ata-2 at 500/cdrom at 0. How would I go about changing the CD-ROM to this location? I'm looking for a specific file or files to make this change.
>>>
>>> This is an OF path, which is up to OpenBIOS to construct.
>>>
>>> What makes you think that Mac OS searches at that exact location?
>>>
>>>
>>> Alex
>>>
>>
>> XNU (Mac OS X's kernel) prints this line to the screen:
>> From path: “ide1/@0:9,\mach_kernel”, Waiting on <dict ID=”0”><key>IOPathMatch</key><string ID=”1”>IODeviceTree:/pci/mac-io/ide at 1000/@0:9</string></dict>
>>
>> The key IOPathMatch means the location of the cdrom has to be at a certain location. In this case it is /pci/mac-io/ide at 1000/@0:9.
>
> Yes, but I don't see where Mac OS X has this hardcoded. It gets passed in somehow.
I think a kernel extension does it. I don't know which one.
>
> What machine type is this? g3beige?
g3beige.
> On there, I don't see an ide1 alias anywhere:
>
> 0 > dev /aliases ok
> 0 > ls
> ok
> 0 > .properties
> name "aliases"
> screen "/pci at 80000000/mac-io at 3/escc/ch-b"
> mac-io "/pci at 80000000/mac-io at 3"
> via-cuda "/pci at 80000000/mac-io at 3/via-cuda"
> adb-keyboard "/pci at 80000000/mac-io at 3/via-cuda/adb/keyboard"
> adb-mouse "/pci at 80000000/mac-io at 3/via-cuda/adb/mouse"
> rtc "/pci at 80000000/mac-io at 3/via-cuda/rtc"
> nvram "/pci at 80000000/mac-io at 3/nvram"
> ttya "/pci at 80000000/mac-io at 3/escc/ch-a"
> scca "/pci at 80000000/mac-io at 3/escc/ch-a"
> ttyb "/pci at 80000000/mac-io at 3/escc/ch-b"
> sccb "/pci at 80000000/mac-io at 3/escc/ch-b"
> ide0 "/pci at 80000000/pci-ata at 4/ata-2/cdrom"
> cd "/pci at 80000000/pci-ata at 4/ata-2/cdrom"
> cdrom "/pci at 80000000/pci-ata at 4/ata-2/cdrom"
> keyboard "/pci at 80000000/mac-io at 3/via-cuda at 16000/adb/keyboard at 8"
> ok
>
> Somehow Mac OS resolves "ide1" into "/pci/mac-io/ide at 1000". That's the part where the logic fails.
Do you think adding ide1 to the /aliases node will fix things? I guessing ide1 should equal ide0. The problem I see with this plan is the pci-ata node. A real Beige G3 doesn't have one in that path.
>
> Please don't drop the CCs. There's a good reason I added Mark and the OpenBIOS list. This issue is very likely completely QEMU unrelated.
Sorry. Will try to keep them intact.
>
> Alex
>
>>
>> You say OpenBIOS construct's this path. In the file mac_oldworld.c, around line 280, it looks like it sets the location. Here is the code:
>> macio = pci_create(pci_bus, -1, TYPE_OLDWORLD_MACIO);
>> dev = DEVICE(macio);
>> qdev_connect_gpio_out(dev, 0, pic[0x12]); /* CUDA */
>> qdev_connect_gpio_out(dev, 1, pic[0x0D]); /* IDE */
>> qdev_connect_gpio_out(dev, 2, pic[0x02]); /* IDE DMA */
>> macio_init(macio, pic_mem, escc_bar);
>>
>> /* First IDE channel is a MAC IDE on the MacIO bus */
>> macio_ide = MACIO_IDE(object_resolve_path_component(OBJECT(macio),
>> "ide"));
>> macio_ide_init_drives(macio_ide, hd);
>>
>> /* Second IDE channel is a CMD646 on the PCI bus */
>> hd[0] = hd[MAX_IDE_DEVS];
>> hd[1] = hd[MAX_IDE_DEVS + 1];
>> hd[3] = hd[2] = NULL;
>> pci_cmd646_ide_init(pci_bus, hd, 0);
>>
>
More information about the OpenBIOS
mailing list