XO Debugging tips

From OLPC
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

SD Card

Specially useful for XO-1.5

Retrieve internal SD card manufacturer

From Linux

find /sys -name oemid | xargs cat 

From OFW (Q3A49 and newer)

ok select int:0
ok show-cid

On older OFW try

ok dev /sd  patch get-cid get-csd attach-card  select int:0  " cid" $call-parent 10 dump

Interpreting the dump is not trivial. WMB dixit: "One of the fields is an enumerated hex number, another is a two-ascii character assigned ID (stored backwards), another is a 5-byte arbitrary ascii string (stored backwards), another is a BCD two-nibble version number, another is a 12-bit BCD code date, and another is a 4-byte serial number"

OEMID list

  • ADATA 0x534d "SM" or 0x4144 "AD" (I think that SM means the card was made by Samsung - wmb)
  • Kingston 0x544d "TM"
  • SanDisk 0x5344 "SD"
  • Panasonic 0x5041 "PA"
  • Transcend 0x5365 "SV"

I have seen MicroSD cards that were labeled as Transcend, but with the same electronic ID as SanDisk - wmb.

OFW

Timing commands in OFW

Try

ok t( yourcommand )t

For example you can time an fs-update command:

ok t( fs-update u:\os111.zd )t

this is redundant however -- fs-update reports its timings at the end of the run.

Timing reads from USB in OFW

To check that USB read times aren't slowing down fs-update, you

 ok dev fsdisk  : write-blocks-end  ;  : erase-blocks 2drop ;  : write-blocks-start 3drop 0 ;  dend  fs-update u:\osXXX.zd

The first command directs redirects writes to SD into /dev/null, keeping everything else the same. fs-update tries to overlap reads and writes, so adding read time + write time doesn't give you the answer, but if you find that the null-write case exceeds your normal fs-update timings, then USB read time is a factor.