|Willem Jan Withagen||Nov 4, 2004 2:47 pm|
|Julian Elischer||Nov 4, 2004 2:56 pm|
|Scott Long||Nov 4, 2004 3:06 pm|
|Willem Jan Withagen||Nov 4, 2004 3:07 pm|
|Willem Jan Withagen||Nov 4, 2004 3:17 pm|
|Scott Long||Nov 4, 2004 3:21 pm|
|Julian Elischer||Nov 4, 2004 3:24 pm|
|Willem Jan Withagen||Nov 4, 2004 3:41 pm|
|John Baldwin||Nov 4, 2004 3:41 pm|
|Willem Jan Withagen||Nov 4, 2004 3:54 pm|
|Willem Jan Withagen||Nov 4, 2004 4:09 pm|
|Willem Jan Withagen||Nov 5, 2004 2:25 am|
|Guido van Rooij||Nov 5, 2004 7:28 am|
|John Baldwin||Nov 5, 2004 11:04 am|
|Willem Jan Withagen||Nov 5, 2004 12:34 pm|
|John Baldwin||Nov 8, 2004 10:57 am|
|Julian Elischer||Nov 8, 2004 12:26 pm|
|Willem Jan Withagen||Nov 8, 2004 12:27 pm|
|John Baldwin||Nov 11, 2004 8:13 am|
|Marc Olzheim||Nov 12, 2004 1:27 am|
|John Baldwin||Nov 12, 2004 12:30 pm|
|Subject:||Booting questions ....|
|From:||Willem Jan Withagen (wj...@withagen.nl)|
|Date:||Nov 4, 2004 3:07:54 pm|
Julian Elischer wrote:
I'm looking for a place to sensibly insert memorytest routines....
Currently I'd like to do that not in the loader, but in the kernel where memory is already setup to be one flat address space. This makes programming a lot simpler.
I'd argue that it should just be a program that can be loadd by the loader and executed.
memtest86 could just be loaded and run.
Fair argument, and something that I've been contemplating as well.
However, this is complicated by the fact that there are several architectures
that then need to be addressed in their native mode with all the platform
quirks. Memtest86 is not for the faint of heart to look at. The routines are straight forward, but getting it there and run them is not so easy. And show obvious why it is rather x86 specific. That's why it is really a seperate entity. Getting it to boot is clumsy, you need to put it on a floppy or CD and (re)boot.
The next step would be to "imitate" a kernel booting to the point where I got and do the memory test. This then would be the seperate module/program to load. And you can do:
unload load memtest boot -m 6 /* or something like this */
And get the first 6 tests on run your memory.
Whether the other modules of the kernel are there or not is rather not essential then. After completing the tests we "reboot".
I would need some of the kernel, but as little as possible to get to 1 working processor, the flat memory addressspace and at least printf working.
The advantage of this aproach is that it is (more) architecture independant, unless routines are again written in ASM for speed. But that I consider a second stage optimisation.