>> but I got this result unfortunately ( see the picture attached ) > We access those drives paths through OpenFirmware so we should not be > locking up so early on. What kind of partition layout do you have on your > first disk? Is it MBR or GPT? I have compiled a version of the boot loader which is very chatty during the code that is failing for you, you can find it at: http://unixzen.com/haiku-ppc/pub/haiku_ppc-r32712-boot-debug.iso Please try booting this one and taking a screenshot. Also, for the curious the diff attached to this email, please note this is just to troubleshoot this issue and is not a request to change this code :) -- Thanks! Alexander von Gluck
Index: src/system/boot/platform/openfirmware/devices.cpp =================================================================== --- src/system/boot/platform/openfirmware/devices.cpp (revision 32712) +++ src/system/boot/platform/openfirmware/devices.cpp (working copy) @@ -150,7 +150,9 @@ status_t status; while ((status = of_get_next_device(&cookie, 0, "block", path, sizeof(path))) == B_OK) { + printf("new device!\n"); if (!strcmp(path, sBootPath)) { + printf("dont add boot device twice\n"); // don't add the boot device twice continue; } @@ -168,16 +170,22 @@ printf("\t%s\n", path); + printf("calling of_path\n"); int handle = of_open(path); + printf("checking of_path results\n"); if (handle == OF_FAILED) { puts("\t\t(failed)"); continue; } + printf("adding device handle\n"); Handle *device = new(nothrow) Handle(handle); printf("\t\t(could open device, handle = %p, node = %p)\n", (void *)handle, device); + printf("device handle created\n"); + printf("adding device to devicesList\n"); devicesList->Add(device); + printf("device added to device list\n"); } printf("\t(loop ended with %ld)\n", status);