qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] Changing CD-ROM path


From: Programmingkid
Subject: Re: [Qemu-ppc] Changing CD-ROM path
Date: Sat, 22 Jun 2013 15:04:24 -0400

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/address@hidden/@0:9. It is currently located here:  
>>>> /address@hidden/address@hidden/address@hidden/address@hidden 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/address@hidden/@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/address@hidden/@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                    "/address@hidden/address@hidden/escc/ch-b"
> mac-io                    "/address@hidden/address@hidden"
> via-cuda                  "/address@hidden/address@hidden/via-cuda"
> adb-keyboard              
> "/address@hidden/address@hidden/via-cuda/adb/keyboard"
> adb-mouse                 "/address@hidden/address@hidden/via-cuda/adb/mouse"
> rtc                       "/address@hidden/address@hidden/via-cuda/rtc"
> nvram                     "/address@hidden/address@hidden/nvram"
> ttya                      "/address@hidden/address@hidden/escc/ch-a"
> scca                      "/address@hidden/address@hidden/escc/ch-a"
> ttyb                      "/address@hidden/address@hidden/escc/ch-b"
> sccb                      "/address@hidden/address@hidden/escc/ch-b"
> ide0                      "/address@hidden/address@hidden/ata-2/cdrom"
> cd                        "/address@hidden/address@hidden/ata-2/cdrom"
> cdrom                     "/address@hidden/address@hidden/ata-2/cdrom"
> keyboard                  
> "/address@hidden/address@hidden/address@hidden/adb/address@hidden"
> ok
> 
> Somehow Mac OS resolves "ide1" into "/pci/mac-io/address@hidden". 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);
>> 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]