Nick Couchman wrote:
I assume this is the point where I really need the debugger and the breakpoints so that I can step through the rest of the boot process piece-by-piece.
-Nick
Yeah. I actually started on trying to get a Solaris 9 image to boot under Qemu at the beginning of the year, which resulted in several fixes to the Fcode evaluator so that it can now load the Forth bytecode successfully. At this point, I realised that I then needed a Forth debugger before I could continue any further, hence the recent debugging patches to the list.
So, I took a deep breath and used the debugger to step through the boot process of a SPARC64 Milax CD image to see what was happening:
: read-disk ( 8002000 800 8000 ffe4adc8 ) 00000000ffe32458: dup ( 8002000 800 8000 ffe4adc8 ffe4adc8 ) 00000000ffe32460: >r ( 8002000 800 8000 ffe4adc8 ) 00000000ffe32468: 0 ( 8002000 800 8000 ffe4adc8 0 ) 00000000ffe32470: swap ( 8002000 800 8000 0 ffe4adc8 ) 00000000ffe32478: cif-seek ( 8002000 800 ffffffffffffffff ) 00000000ffe32480: do?branch ( 8002000 800 ) 00000000ffe32490: (") ( 8002000 800 ffe324a0 b ) 00000000ffe324b0: die seek failed
Can't mount root Aborted.
It's fairly obvious to see that the seek is failing since it returns -1. But which device is it failing on?
0 > dev-ih ihandle>phandle u. ffe2b830 ok 0 > show-devs ... ffe2b830 /packages/misc-files ...
This implies that it is the seek in /packages/misc-files which is failing, although I'm not really sure at the moment why the read-disk word (which is part of the Milax bootloader) isn't trying to seek on /packages/hsfs-file-system instead?
ATB,
Mark.