Messages per Month
|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:||John Baldwin (jh...@FreeBSD.org)|
|Date:||Nov 5, 2004 11:04:41 am|
On Thursday 04 November 2004 07:09 pm, Willem Jan Withagen wrote:
John Baldwin wrote:
On Thursday 04 November 2004 05:47 pm, Willem Jan Withagen 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.
The loader does use a flat address space, it is just rooted at 0xa000 rather than 0x0, so you can't test the first few kb FWIW.
But is it unsegmented? (perhaps I have a wrong idea of a flat address space)
Yes, it is unsegmented. You can translate physical addresses to virtual addresses using PTOV() and vice versa using VTOP().
What I mean with this is that I can iterate from 0xa000 to 0xffffffff with a "char *p" and do test_bytes( 0xa000, 0xffffffff, 0xff). (assuming this all has memory)
Next is then which ranges are valid to test, and then things really start to get complicated and arch dependant. Which is why I ended up in machdep.c right after the setting up of the memory ranges.
Heh, the above memory mapping is also i386 specific. Alpha only has a small bit of memory mapped in the loader, same with sparc64, etc.