XO 1.75 Memory Test

From OLPC
Revision as of 01:04, 28 May 2012 by Wad (talk | contribs) (Memory Test Commands)
Jump to: navigation, search

The following information is only needed for debugging the timing parameters for a new DDR3 DRAM for the XO-1.75 laptop.

Memory Configuration

You will need a serial cable attached. Hold down the "rotate" key (near the screen) while booting the laptop, in order to stop the boot in CForth. You should see something like:

CForth built 2011-12-28 10:11 from commit f550eeba...
Using lower core voltage
Skipping OFW
ok

At this point, the DDR3 memory has not been initialized. There is a table with most of the memory configuration parameters loaded in memory, which you can modify. You can see a listing of this table using the ".table" command. The first column is the actual address in memory of that row of the table. The second column is the value being written to a configuration register. The third column is the address of the configuration register being written.

After modifying the table, you can initialize the memory using the "init1". You can then either test the memory (see below) or start OFW using the "ofw" command.

The memory may only be initialized once. init1 only works the first time (it doesn't even try after that). To test a different memory configuration you need to power cycle the laptop.

Memory Test Commands

In the following commands, if no error is encountered the error address returned is -1.

lfill ( address length value -- )
lcheck ( address length value -- error_address )
inc-fill (address length -- )
inc-check (address length -- error_address )
random-fill ( address length -- )
random-check ( address length -- error_address )

Beware that only the lower 256MB of memory can be tested using CForth. The next 256MB are aliases of the lower 256MB!

If you run a memory test without first initializing the memory using "init1", the processor will silently hang.

For example, a quick test of the lower 1 MB of memory would be:

0 100000 random-fill
0 100000 random-check .