Hi,

As suggested by Mark and Marcus, I added the function osenv_intr_save_disable
to oskit/osenv_synch.c.  This was all that was required to get the kernel to
compile.

It now boots and crashes in oskit-20000901/linux/dev/init.c, line 129 due to
a kernel page fault.  Here is a snipit of the code:

124     /*
125      * Initialize drive info.
126      */
127     if (osenv_mem_map_phys(0, PAGE_SIZE, &kaddr, 0))
128             panic("%s:%d: unable to map phys memory", __FILE__, __LINE__);
129     x = *((unsigned *)(kaddr + 0x104));
130     addr = ((x >> 12) & 0xFFFF0) + (x & 0xFFFF);
131     if (osenv_mem_map_phys(trunc_page(addr), PAGE_SIZE, (void **)&x, 0))
132             panic("%s:%d: unable to map phys memory", __FILE__, __LINE__);

Thus, it appears to be crashing when it dereferences kaddr + 0x104.
Having done a bit of snooping, I know that kernel_virtual_start == 0xc0000000
and the page fault linear address that it crashes on is 0xc000104.  Therefore,
this should be valid from pmap_bootstrap mappings(?) called from
oskit/x86/main.c

I have diffed the init.c from 20000202 with the one from 20000901 and the only
difference is the addition of line 86:

        linux_softintr_init();

This appears to be `ok' as it looks like it is functionality removed from
oskit_linux_init() (called on line 85) and placed into its own function.

Any ideas?

Thanks,
-Neal

-- 
Neal H Walfield
University of Massachusetts at Lowell
[EMAIL PROTECTED] or [EMAIL PROTECTED]
_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-hurd

Reply via email to