Opened 15 years ago
Last modified 5 years ago
#4385 assigned bug
blocking boot on powerbook G4
Reported by: | rayman | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | System/Boot Loader/Open Firmware | Version: | R1/pre-alpha1 |
Keywords: | Cc: | planche2k@… | |
Blocked By: | Blocking: | #5160 | |
Platform: | PowerPC |
Description
on powerbook G4 without Hard drive and a USB flash drive with haiku image ( hrev32480 ) blocking boot after partition detect.
see screenshot attached
Attachments (3)
Change History (16)
by , 15 years ago
Attachment: | bitmap_clip.jpg added |
---|
comment:1 by , 15 years ago
by , 15 years ago
Attachment: | devices.cpp added |
---|
comment:2 by , 15 years ago
sorry, function is of_open(path) not of_path.
boot/platform/openfirmware/network.cpp: fHandle = of_open(device); boot/platform/openfirmware/devices.cpp: int kernel = of_open(name); boot/platform/openfirmware/devices.cpp: int handle = of_open(sBootPath); boot/platform/openfirmware/devices.cpp: int handle = of_open(path); kernel/arch/ppc/arch_platform.cpp: fRTC = of_open(kernelArgs->platform_args.rtc_path); kernel/platform/openfirmware/openfirmware.c:of_open(const char *nodeName)
of_open calls gCallOpenFirmware... where the heck is gCallOpenFirmware defined?
/develop/haiku/src$ grep -R "CallOpenFirmware" * | grep -v svn system/kernel/platform/openfirmware/openfirmware.c:static int (*gCallOpenFirmware)(void *) = 0; system/kernel/platform/openfirmware/openfirmware.c: gCallOpenFirmware = openFirmwareEntry; system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED)
args.args[numArgs]) |
args.args[numArgs]) |
system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED)
args.handle == 0) |
system/kernel/platform/openfirmware/openfirmware.c: gCallOpenFirmware(&args); system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: return gCallOpenFirmware(&args); system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: gCallOpenFirmware(&args); system/kernel/platform/openfirmware/openfirmware.c: gCallOpenFirmware(&args);
comment:3 by , 15 years ago
Sorry for the last post.. freaking trac. If any trac admins see the last post.. feel free to delete it :)
of_open calls gCallOpenFirmware.. where the heck is gCallOpenFirmware defined?
/develop/haiku/src$ grep -R "CallOpenFirmware" * | grep -v svn system/kernel/platform/openfirmware/openfirmware.c:static int (*gCallOpenFirmware)(void *) = 0; system/kernel/platform/openfirmware/openfirmware.c: gCallOpenFirmware = openFirmwareEntry; system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED || args.args[numArgs]) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED || args.args[numArgs]) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED || args.handle == 0) system/kernel/platform/openfirmware/openfirmware.c: gCallOpenFirmware(&args); system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: return gCallOpenFirmware(&args); system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: if (gCallOpenFirmware(&args) == OF_FAILED) system/kernel/platform/openfirmware/openfirmware.c: gCallOpenFirmware(&args); system/kernel/platform/openfirmware/openfirmware.c: gCallOpenFirmware(&args);
comment:4 by , 15 years ago
Mailing list answered that FYI:
src/system/kernel/arch/ppc/arch_platform.cpp initializes that via status_t PPCOpenFirmware::Init(struct kernel_args *kernelArgs) { return of_init( (int(*)(void*))kernelArgs->platform_args.openfirmware_entry); } HTH, Rene
Thanks Rene!
comment:5 by , 15 years ago
hey rayman, a quick note.
Booting off of a Haiku PPC root image on a USB drive works on my G4 Quicksilver, but does not work at all on my G3 (not detected). If possible, please try burning the Haiku root image to a cd and booting from the bootloader via tftp (instructions here: http://unixzen.com/index.php?blog/category/Haiku-Dev.html) and let us know the results.
Thanks!
by , 15 years ago
Attachment: | bitmap_clip2.jpg added |
---|
comment:6 by , 15 years ago
hi kallisti5,
no problem, just time to reconfigure the tftpd on dano and boot powerbook with your instructions .... good for tftpboot ... but no for CD ... see last picture ... I had not put second test with usb drive because it's same result.
comment:7 by , 15 years ago
Cc: | added |
---|
comment:8 by , 15 years ago
Blocking: | 5160 added |
---|
comment:9 by , 13 years ago
Blocking: | 7665 added |
---|
comment:10 by , 10 years ago
Blocking: | 7665 removed |
---|
comment:11 by , 10 years ago
Milestone: | R1 → Unscheduled |
---|
comment:12 by , 8 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:13 by , 5 years ago
Component: | System/Boot Loader → System/Boot Loader/Open Firmware |
---|
It looks like we are locking up calling of_path here. Not sure why of_path would be locking up as its fairly basic.