[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: oskit-mach won't boot
From: |
Jeroen Dekkers |
Subject: |
Re: oskit-mach won't boot |
Date: |
Tue, 29 May 2001 18:43:52 +0200 |
User-agent: |
Mutt/1.3.15i |
On Sat, May 26, 2001 at 07:59:50PM -0400, Roland McGrath wrote:
> > I've just pulled the oskit-mach source from CVS build it and tried to
> > boot it. Unfortunately, it didn't work.
>
> Well, I'm very glad that you are trying and are interested in debugging it.
>
I'm interested in developing it too, but i've to learn a lot of things :)
> > I've managed to track down the problem to spl0() (defined in
> > i386/i386/spl.S). Here's how it happens:
> > main -> setup_main -> cpu_launch_first_thread ->
> > load_context -> Load_context -> Thread_continue ->
> > thread_continue -> spl0
> >
> > And then the computer just restarts. spl0() is an assembly routine
> > that means I can't just put debug printf's in the middle of it, like
> > I didn in other places along the way. And after looking at the code
> > I fail to see where the problem could lie. (Partly because my
> > assembly skills are rather limited.)
>
> It is probably safe to insert:
>
> pushl %eax
> call debug_beep
> popl %eax
>
> between instructions in spl0 and narrow it down that way. I'm sure that
> will cause severe problems later on if we were to get that far, but it
> might help us figure out how to get past the first time this function runs.
> (Note that the #ifdef LINUX_DEV parts should not be getting compiled in for
> oskit-mach.)
>
I wrote a function to debug it:
void foobar() {
printf("foo\n");
getchar(); /* */
}
I just inserted this line at different places in the spl0 function:
call EXT(foobar)
After rebooting a lot of times (I should really get a serial cable to do
remote debugging) I found out that the sti instruction near the of the
function is causing the troubles. At the moment I've no idea what's wrong, I
have to read a lot of documentation and code before knowing what's going on. :)
Jeroen Dekkers