Gosh. cabc000 ~ 212M. I'm guessing this is a large boot_archive?
Wow, don't I feel stupid right about now. Default memory for qemu is 128 MB, and when the boot_archive on CD is 170 MB, it's going to be hard to load, eh? :-). Maybe the error message it threw should have been my first hint?!
So, after running qemu with "-m 512" to throw 512MB at it, I come up with the following (this is with fcode-debug? set to true):
0 > boot cdrom Not a Linux kernel image Not a bootable ELF image Not a bootable a.out image
Loading FCode image... Loaded 7420 bytes entry point is 0x4000 doheaders isn't unique. fs-pkg$ isn't unique. fs-type$ isn't unique. /buf-len isn't unique. roundup isn't unique. cstrlen isn't unique. cscount isn't unique. $append isn't unique. $= isn't unique. str++ isn't unique. die isn't unique. diag-cr? isn't unique. find-abort isn't unique. get-package isn't unique. cif-ph isn't unique. cif-open isn't unique. cif-close isn't unique. cif-read isn't unique. cif-seek isn't unique. cif-release isn't unique. find-cif-method isn't unique. chosen-ph isn't unique. get-property isn't unique. get-string-prop isn't unique. get-int-prop isn't unique. mmu-ih isn't unique. mem-ih isn't unique. mmu-claim isn't unique. mmu-map isn't unique. mem-claim isn't unique. (mem-alloc) isn't unique. vmem-alloc isn't unique. mem-alloc isn't unique. mem-free isn't unique. /rd-fcode isn't unique. rd-offset isn't unique. open-abort isn't unique. open-cstr isn't unique. dev-open isn't unique. dev-close isn't unique. read-disk isn't unique. root-ph isn't unique. fs-ih isn't unique. nested? isn't unique. file-sz isn't unique. boot-dev isn't unique. boot-dev$ isn't unique. loader-base isn't unique. load-pkg isn't unique. get-bootdev isn't unique. mount-root isn't unique. vmem-alloc-prop isn't unique. get-file isn't unique. is-elf? isn't unique. is-archive? isn't unique. check-elf isn't unique. check-fcode isn't unique.
bootblk isn't unique.
get-type isn't unique. fflag? isn't unique. boot-file isn't unique. boot-file$ isn't unique. kern? isn't unique. kern-file isn't unique. kern-file$ isn't unique. plat-name isn't unique. plat-name$ isn't unique. arch-name isn't unique. arch-name$ isn't unique. targ-file isn't unique. targ-file$ isn't unique. try-platname isn't unique. fj-check isn't unique. get-def-arch isn't unique. get-arch isn't unique. open-path isn't unique. lflag? isn't unique. zflag? isn't unique. fs-name isn't unique. fs-name$ isn't unique. open-zfs-fs isn't unique. next-str isn't unique. next-c isn't unique. halt? isn't unique. parse-bootargs isn't unique. rd-alloc-sz isn't unique. "ramdisk" isn't unique. setup-bootprops isn't unique. setup-ramdisk isn't unique. fix-elf-mem isn't unique. load-file isn't unique. setup-props isn't unique. exec-file isn't unique. do-boot isn't unique.
byte-load: warning stack overflow, diff 1
byte-load: warning stack overflow, diff 1
Jumping to entry point 00000000010071d8 for type 0000000000000001... switching to new context: entry point 0x10071d8 stack 0x00000000ffe02b59 warning:interpret: exception -13 caught Unhandled Exception 0x0000000020016000 PC = 0x0000000001014710 NPC = 0x0000000001014714 Stopping execution
Can this be debugged using the OpenBIOS/forth debugging, or do I need to whip out gdb, now? Looks like this error is after it actually switches over to the OpenSolaris kernel, so I'm guessing the OpenBIOS/fcode debugging is going to be of limited value.
-Nick
-------- This e-mail may contain confidential and privileged material for the sole use of the intended recipient. If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information. In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way. If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox. Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.
On 2010-8-16 11:42 PM, Nick Couchman wrote:
[...] do-boot isn't unique.
byte-load: warning stack overflow, diff 1
byte-load: warning stack overflow, diff 1
Jumping to entry point 00000000010071d8 for type 0000000000000001... switching to new context: entry point 0x10071d8 stack 0x00000000ffe02b59 warning:interpret: exception -13 caught Unhandled Exception 0x0000000020016000 PC = 0x0000000001014710 NPC = 0x0000000001014714 Stopping execution
Can this be debugged using the OpenBIOS/forth debugging, or do I need to whip out gdb, now? Looks like this error is after it actually switches over to the OpenSolaris kernel, so I'm guessing the OpenBIOS/fcode debugging is going to be of limited value.
I might figure out what's going on with the stack overflow in byte-load of the secondary booter. That shouldn't happen, and it might have trashed something used later.
Tarl Neustaedter wrote:
I might figure out what's going on with the stack overflow in byte-load of the secondary booter. That shouldn't happen, and it might have trashed something used later.
Could it be the same as this bug here?
http://lists.openbios.org/pipermail/openbios/2010-May/004812.html
Milax would always throw a stack overflow error due to a bug in older versions of the Solaris Fcode bootblock.
ATB,
Mark.
Nick Couchman wrote:
Wow, don't I feel stupid right about now. Default memory for qemu is 128 MB, and when the boot_archive on CD is 170 MB, it's going to be hard to load, eh? :-). Maybe the error message it threw should have been my first hint?!
So, after running qemu with "-m 512" to throw 512MB at it, I come up with the following (this is with fcode-debug? set to true):
0 > boot cdrom Not a Linux kernel image Not a bootable ELF image Not a bootable a.out image
Loading FCode image... Loaded 7420 bytes entry point is 0x4000 doheaders isn't unique. fs-pkg$ isn't unique. fs-type$ isn't unique. /buf-len isn't unique. roundup isn't unique. cstrlen isn't unique. cscount isn't unique. $append isn't unique. $= isn't unique. str++ isn't unique. die isn't unique. diag-cr? isn't unique. find-abort isn't unique. get-package isn't unique. cif-ph isn't unique. cif-open isn't unique. cif-close isn't unique. cif-read isn't unique. cif-seek isn't unique. cif-release isn't unique. find-cif-method isn't unique. chosen-ph isn't unique. get-property isn't unique. get-string-prop isn't unique. get-int-prop isn't unique. mmu-ih isn't unique. mem-ih isn't unique. mmu-claim isn't unique. mmu-map isn't unique. mem-claim isn't unique. (mem-alloc) isn't unique. vmem-alloc isn't unique. mem-alloc isn't unique. mem-free isn't unique. /rd-fcode isn't unique. rd-offset isn't unique. open-abort isn't unique. open-cstr isn't unique. dev-open isn't unique. dev-close isn't unique. read-disk isn't unique. root-ph isn't unique. fs-ih isn't unique. nested? isn't unique. file-sz isn't unique. boot-dev isn't unique. boot-dev$ isn't unique. loader-base isn't unique. load-pkg isn't unique. get-bootdev isn't unique. mount-root isn't unique. vmem-alloc-prop isn't unique. get-file isn't unique. is-elf? isn't unique. is-archive? isn't unique. check-elf isn't unique. check-fcode isn't unique.
bootblk isn't unique.
get-type isn't unique. fflag? isn't unique. boot-file isn't unique. boot-file$ isn't unique. kern? isn't unique. kern-file isn't unique. kern-file$ isn't unique. plat-name isn't unique. plat-name$ isn't unique. arch-name isn't unique. arch-name$ isn't unique. targ-file isn't unique. targ-file$ isn't unique. try-platname isn't unique. fj-check isn't unique. get-def-arch isn't unique. get-arch isn't unique. open-path isn't unique. lflag? isn't unique. zflag? isn't unique. fs-name isn't unique. fs-name$ isn't unique. open-zfs-fs isn't unique. next-str isn't unique. next-c isn't unique. halt? isn't unique. parse-bootargs isn't unique. rd-alloc-sz isn't unique. "ramdisk" isn't unique. setup-bootprops isn't unique. setup-ramdisk isn't unique. fix-elf-mem isn't unique. load-file isn't unique. setup-props isn't unique. exec-file isn't unique. do-boot isn't unique.
byte-load: warning stack overflow, diff 1
byte-load: warning stack overflow, diff 1
Jumping to entry point 00000000010071d8 for type 0000000000000001... switching to new context: entry point 0x10071d8 stack 0x00000000ffe02b59 warning:interpret: exception -13 caught Unhandled Exception 0x0000000020016000 PC = 0x0000000001014710 NPC = 0x0000000001014714 Stopping execution
Can this be debugged using the OpenBIOS/forth debugging, or do I need to whip out gdb, now? Looks like this error is after it actually switches over to the OpenSolaris kernel, so I'm guessing the OpenBIOS/fcode debugging is going to be of limited value.
Well, looking at that output I'd say that Solaris 10 is now getting as far as Milax does before failing which is a pretty good sign (you should be past the twirly baton stage by now) :)
The next step is to implement some Forth to handle the cpu register storage require for the sync callback if you fancy having a go.
HTH,
Mark.
Well, looking at that output I'd say that Solaris 10 is now getting as far as Milax does before failing which is a pretty good sign (you should be past the twirly baton stage by now) :)
Yes, I do get the twirly baton before the crash, here, so it looks like it's actually loading.
The next step is to implement some Forth to handle the cpu register storage require for the sync callback if you fancy having a go.
Wow :-). I'll see if I can figure anything out, but with my limited knowledge of Forth (and programming in general) this will likely take several weeks :-).
-Nick
-------- This e-mail may contain confidential and privileged material for the sole use of the intended recipient. If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information. In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way. If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox. Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.