|
From: Manuel H. <mho...@ph...> - 2006-04-08 11:28:55
|
> > Manuel wrote: > > I just downloaded the sources from CVS, compiled them and tested the > > kernel with bochs, it works fine. > > Ehm.. does this mean that the multiprocessor code works now, or did you > just run bochs as a uniprocessor. I tested it on MP bochs and the first AP does not run into a triple fault just after booting anymore - I just found out that this happens because it is not even booted anymore... Instead, a page fault occurs on the BSP at 0xe0001a34, which is somewhere in mp_detect::DetectFloatingPointer. This is also reported correctly by the kernel. The same thing happens on UP bochs. Even more interesting is the result on AMD SimNow!: The UP version boots correctly and reports that there is only one cpu present. On the MP version, our kernel correctly finds 2 cpus and reports that all AP's have been booted - but the AP does not print its "Hello world" message. (There was a small bug in mp_detect::BootAllProcessors - it always returned true.) In fact, the AP is still not booted. IMHO the usage of bit fields with "empty bits" is quite dangerous because the values of these empty bits are undefined and may cause conflicts. However, I just checked the value of the ICR and it is absolutely correct - but the AP still does not respond. I'll keep on trying... Regards, Manuel |