[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