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.
What machine type is this? 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.
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.
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);
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);
On 22.06.2013, at 21:04, Programmingkid wrote:
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.
Well, I've tried to grep through the full file system of the 10.2 ISO and don't find anything that would indicate the path above. It has to come from somewhere ...
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.
I think it's worth a try. It looks almost as if ide0 is a misnomer and it really should be ide1 there. Not sure.
How do you enable verbose boot in bootx?
Alex
On 22.06.2013, at 21:09, Alexander Graf wrote:
On 22.06.2013, at 21:04, Programmingkid wrote:
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.
Well, I've tried to grep through the full file system of the 10.2 ISO and don't find anything that would indicate the path above. It has to come from somewhere ...
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.
I think it's worth a try. It looks almost as if ide0 is a misnomer and it really should be ide1 there. Not sure.
Hrm. My wait message is actually different:
From path: "cd:9,\mach_kernel", Waiting on <dict ID="0"><key>IOPathMatch</key><string ID="1">IODeviceTree:/pci@80000000/@4:9</string></dict>
Seems almost like it's resolving the path wrong for me too. Fun.
How do you enable verbose boot in bootx?
Found it out. It's as simple as passing -prom-env 'boot-args=-v' to QEMU :).
Alex
On Jun 22, 2013, at 3:20 PM, Alexander Graf wrote:
On 22.06.2013, at 21:09, Alexander Graf wrote:
On 22.06.2013, at 21:04, Programmingkid wrote:
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.
Well, I've tried to grep through the full file system of the 10.2 ISO and don't find anything that would indicate the path above. It has to come from somewhere ...
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.
I think it's worth a try. It looks almost as if ide0 is a misnomer and it really should be ide1 there. Not sure.
I did make a new alias in the /aliases node for a ide1. It unfortunately didn't help boot Mac OS X. Its value was the same as ide0.
On Jun 22, 2013, at 3:09 PM, Alexander Graf wrote:
On 22.06.2013, at 21:04, Programmingkid wrote:
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.
Well, I've tried to grep through the full file system of the 10.2 ISO and don't find anything that would indicate the path above. It has to come from somewhere ...
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.
I think it's worth a try. It looks almost as if ide0 is a misnomer and it really should be ide1 there. Not sure.
Ok. I will try it.
How do you enable verbose boot in bootx?
Hold down the command key and v while starting up.
On Sat, Jun 22, 2013 at 03:21:50PM -0400, Programmingkid wrote:
On Jun 22, 2013, at 3:09 PM, Alexander Graf wrote:
On 22.06.2013, at 21:04, Programmingkid wrote:
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.
Well, I've tried to grep through the full file system of the 10.2 ISO and don't find anything that would indicate the path above. It has to come from somewhere ...
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.
I think it's worth a try. It looks almost as if ide0 is a misnomer and it really should be ide1 there. Not sure.
Ok. I will try it.
How do you enable verbose boot in bootx?
Hold down the command key and v while starting up.
Paths also depend on how you pass boot device:
For example with -drive file=/path/to/cdrom.iso,media=cdrom,index=0,if=ide
I get ide0 "/pci@80000000/mac-io@3/ata-1/cdrom" cd "/pci@80000000/mac-io@3/ata-1/cdrom" cdrom "/pci@80000000/mac-io@3/ata-1/cdrom" ide1 "/pci@80000000/pci-ata@4/ata-2/cdrom"
(also now that I look at it should this ide1 even be here?)
and with -cdrom /path/to/cdrom.iso
ide0 "/pci@80000000/pci-ata@4/ata-2/cdrom" cdrom "/pci@80000000/pci-ata@4/ata-2/cdrom" cd "/pci@80000000/pci-ata@4/ata-2/cdrom"
On Jun 22, 2013, at 3:37 PM, Amadeusz Sławiński wrote:
On Sat, Jun 22, 2013 at 03:21:50PM -0400, Programmingkid wrote:
On Jun 22, 2013, at 3:09 PM, Alexander Graf wrote:
On 22.06.2013, at 21:04, Programmingkid wrote:
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.
Well, I've tried to grep through the full file system of the 10.2 ISO and don't find anything that would indicate the path above. It has to come from somewhere ...
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.
I think it's worth a try. It looks almost as if ide0 is a misnomer and it really should be ide1 there. Not sure.
Ok. I will try it.
How do you enable verbose boot in bootx?
Hold down the command key and v while starting up.
Paths also depend on how you pass boot device:
For example with -drive file=/path/to/cdrom.iso,media=cdrom,index=0,if=ide
I get ide0 "/pci@80000000/mac-io@3/ata-1/cdrom" cd "/pci@80000000/mac-io@3/ata-1/cdrom" cdrom "/pci@80000000/mac-io@3/ata-1/cdrom" ide1 "/pci@80000000/pci-ata@4/ata-2/cdrom"
(also now that I look at it should this ide1 even be here?)
and with -cdrom /path/to/cdrom.iso
ide0 "/pci@80000000/pci-ata@4/ata-2/cdrom" cdrom "/pci@80000000/pci-ata@4/ata-2/cdrom" cd "/pci@80000000/pci-ata@4/ata-2/cdrom"
Thank you sooo much for this information. With it was able to go further than before in the boot process! This day was definitely a step forward in making Mac OS X boot in QEMU. The Mac OS 10.2 cd stopped after the COLOR display text, but the darwin 8 cd was able to boot considerably further than before.
Before I would only see up to this in on the screen: IOService:/GossamerPE/pci@80000000/AppleGracklePCI/pci-ata@4/CMD646Root/cdrom@0
After using your command line suggestion, I see this in QEMU when booting Darwin 8 (core of Mac OS X): IOService:/GossamerPE/pci@80000000/AppleGracklePCI/mac-io@3/Heathrow/ata-1@20000/HeathrowATA/ATADeviceNub@0/IOATAPIProtocolTransport/IOSCSIPeripheralDevieNub/IOSCSIPeripheralDeviceType05/IODVDServices/IODVDBlockStorageDriver/QEMU QEMU DVD-ROM Media
A lot more than before!
This is what I see on a real Beige G3: IOService:/GossamerPE/pci@80000000/AppleGracklePCI/mac-io@10/Heathrow/ide@21000/HeathrowATA/ATADeviceNub@0/ATAPIProtocolTransport/IOSCSIPeripheralDeviceNub/IOSCSIPeripheralDeviceType05/IODVDServices/IODVDBlockStorageDriver/HL-DT-ST DVD-RW GCA-4020B Media/IOCDPartitionScheme/Untitled 1@1/IOApplePartititionScheme/Mac_OS_X@9
So what's next is making the IOCDPartitionScheme show up.
This path change definitely needs to be made to QEMU.
If anyone wants to help but don't have Mac OS X, you can download the free Darwin 8 cd image here: darwinppc-801.cdr.gz.
On 22/06/13 22:47, Programmingkid wrote:
Paths also depend on how you pass boot device:
For example with -drive file=/path/to/cdrom.iso,media=cdrom,index=0,if=ide
I get ide0 "/pci@80000000/mac-io@3/ata-1/cdrom" cd "/pci@80000000/mac-io@3/ata-1/cdrom" cdrom "/pci@80000000/mac-io@3/ata-1/cdrom" ide1 "/pci@80000000/pci-ata@4/ata-2/cdrom"
(also now that I look at it should this ide1 even be here?)
and with -cdrom /path/to/cdrom.iso
ide0 "/pci@80000000/pci-ata@4/ata-2/cdrom" cdrom "/pci@80000000/pci-ata@4/ata-2/cdrom" cd "/pci@80000000/pci-ata@4/ata-2/cdrom"
Thank you sooo much for this information. With it was able to go further than before in the boot process! This day was definitely a step forward in making Mac OS X boot in QEMU. The Mac OS 10.2 cd stopped after the COLOR display text, but the darwin 8 cd was able to boot considerably further than before.
Before I would only see up to this in on the screen: IOService:/GossamerPE/pci@80000000/AppleGracklePCI/pci-ata@4/CMD646Root/cdrom@0
Hmmmm last time I tried I couldn't even get the IOService to match - maybe some of the recent IDE fixes in QEMU have got this to work?
After using your command line suggestion, I see this in QEMU when booting Darwin 8 (core of Mac OS X): IOService:/GossamerPE/pci@80000000/AppleGracklePCI/mac-io@3/Heathrow/ata-1@20000/HeathrowATA/ATADeviceNub@0/IOATAPIProtocolTransport/IOSCSIPeripheralDevieNub/IOSCSIPeripheralDeviceType05/IODVDServices/IODVDBlockStorageDriver/QEMU QEMU DVD-ROM Media
A lot more than before!
Excellent :)
This is what I see on a real Beige G3: IOService:/GossamerPE/pci@80000000/AppleGracklePCI/mac-io@10/Heathrow/ide@21000/HeathrowATA/ATADeviceNub@0/ATAPIProtocolTransport/IOSCSIPeripheralDeviceNub/IOSCSIPeripheralDeviceType05/IODVDServices/IODVDBlockStorageDriver/HL-DT-ST DVD-RW GCA-4020B Media/IOCDPartitionScheme/Untitled 1@1/IOApplePartititionScheme/Mac_OS_X@9
So what's next is making the IOCDPartitionScheme show up.
Have you had a look at the Darwin source to see how this is actually detected?
This path change definitely needs to be made to QEMU.
There seems to have been a lot to this thread over the weekend, however am I right in guessing that the primary change is switching the CDROM over from the CMD646 IDE bus to the MacIO IDE bus?
If anyone wants to help but don't have Mac OS X, you can download the free Darwin 8 cd image here: darwinppc-801.cdr.gz http://www.opensource.apple.com/static/iso/darwinppc-801.cdr.gz.
Will this actually work? Last I remember from Alex was that the Mac device model generated by QEMU would only work with MacOS <= 10.3, and the release notes in the same directory indicate that 801 is equivalent to the kernel for MacOS 10.4. It's for this reason that I've been using darwinppc-602.cdr.gz for all my tests here.
Also Amadeusz, didn't you have some extra patches for -M mac99 Darwin boot that still need to be reviewed by Alex?
ATB,
Mark.
On Mon, Jun 24, 2013 at 04:25:19PM +0100, Mark Cave-Ayland wrote:
On 22/06/13 22:47, Programmingkid wrote:
Paths also depend on how you pass boot device:
For example with -drive file=/path/to/cdrom.iso,media=cdrom,index=0,if=ide
I get ide0 "/pci@80000000/mac-io@3/ata-1/cdrom" cd "/pci@80000000/mac-io@3/ata-1/cdrom" cdrom "/pci@80000000/mac-io@3/ata-1/cdrom" ide1 "/pci@80000000/pci-ata@4/ata-2/cdrom"
(also now that I look at it should this ide1 even be here?)
and with -cdrom /path/to/cdrom.iso
ide0 "/pci@80000000/pci-ata@4/ata-2/cdrom" cdrom "/pci@80000000/pci-ata@4/ata-2/cdrom" cd "/pci@80000000/pci-ata@4/ata-2/cdrom"
Thank you sooo much for this information. With it was able to go further than before in the boot process! This day was definitely a step forward in making Mac OS X boot in QEMU. The Mac OS 10.2 cd stopped after the COLOR display text, but the darwin 8 cd was able to boot considerably further than before.
Before I would only see up to this in on the screen: IOService:/GossamerPE/pci@80000000/AppleGracklePCI/pci-ata@4/CMD646Root/cdrom@0
Hmmmm last time I tried I couldn't even get the IOService to match - maybe some of the recent IDE fixes in QEMU have got this to work?
Probably the BSY flag fix
After using your command line suggestion, I see this in QEMU when booting Darwin 8 (core of Mac OS X): IOService:/GossamerPE/pci@80000000/AppleGracklePCI/mac-io@3/Heathrow/ata-1@20000/HeathrowATA/ATADeviceNub@0/IOATAPIProtocolTransport/IOSCSIPeripheralDevieNub/IOSCSIPeripheralDeviceType05/IODVDServices/IODVDBlockStorageDriver/QEMU QEMU DVD-ROM Media
A lot more than before!
Excellent :)
This is what I see on a real Beige G3: IOService:/GossamerPE/pci@80000000/AppleGracklePCI/mac-io@10/Heathrow/ide@21000/HeathrowATA/ATADeviceNub@0/ATAPIProtocolTransport/IOSCSIPeripheralDeviceNub/IOSCSIPeripheralDeviceType05/IODVDServices/IODVDBlockStorageDriver/HL-DT-ST DVD-RW GCA-4020B Media/IOCDPartitionScheme/Untitled 1@1/IOApplePartititionScheme/Mac_OS_X@9
So what's next is making the IOCDPartitionScheme show up.
Have you had a look at the Darwin source to see how this is actually detected?
probably this one:
OSDictionary * IODiskMatching( const char * path, char * buf, int maxLen) ...
// scan the tail of the path for "@unit:partition" do { // Have to get the full path to the controller - an // alias may // tell us next to nothing, like "hd:8" ...
in iokit/bsddev/IOKitBSDInit.cpp
This path change definitely needs to be made to QEMU.
There seems to have been a lot to this thread over the weekend, however am I right in guessing that the primary change is switching the CDROM over from the CMD646 IDE bus to the MacIO IDE bus?
It always seemed to work better for me, so I'm in favor of changing default if possible.
If anyone wants to help but don't have Mac OS X, you can download the free Darwin 8 cd image here: darwinppc-801.cdr.gz http://www.opensource.apple.com/static/iso/darwinppc-801.cdr.gz.
Will this actually work? Last I remember from Alex was that the Mac device model generated by QEMU would only work with MacOS <= 10.3, and the release notes in the same directory indicate that 801 is equivalent to the kernel for MacOS 10.4. It's for this reason that I've been using darwinppc-602.cdr.gz for all my tests here.
Also Amadeusz, didn't you have some extra patches for -M mac99 Darwin boot that still need to be reviewed by Alex?
I will be done with exams in few days, I will resend them then.
Amadeusz