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