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