[haiku-development] Re: test on PPC

  • From: Alexander von Gluck <kallisti5@xxxxxxxxxxx>
  • To: <haiku-development@xxxxxxxxxxxxx>
  • Date: Wed, 26 Aug 2009 09:42:36 -0500

>> 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);

Other related posts: