XO Debugging tips: Difference between revisions
(Created page with '=SD Card= ==Retrieve internal SD card manufacturer== From Linux find /sys -name oemid | xargs cat From OFW (Q3E49 and newer) ok select int:0 ok show-cid On older OFW tr…') |
|||
(12 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
=SD Card= |
=SD Card= |
||
Specially useful for XO-1.5 |
|||
==Retrieve internal SD card manufacturer== |
==Retrieve internal SD card manufacturer== |
||
Line 7: | Line 9: | ||
find /sys -name oemid | xargs cat |
find /sys -name oemid | xargs cat |
||
From OFW ( |
From OFW (Q3A49 and newer) |
||
ok select int:0 |
ok select int:0 |
||
Line 17: | Line 19: | ||
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" |
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 or 0x4144 "AD" |
|||
* Kingston 0x544d "TM" |
|||
* SanDisk 0x5344 "SD" or 0x534d "SM" (I think that SM means the card was made by Samsung - wmb) |
|||
* 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. |
|||
==Get performance timings== |
|||
See [[SD_and_USB_FLASH_Drive_Performance]] for more info. With XO-1.5 Q3A50 or later, XO-1 Q2E45 or later, but not XO-1.75 or XO-4, test the internal SD card with: |
|||
ok .speed int:0 |
|||
For external SD card, |
|||
ok .speed ext:0 |
|||
= 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. |
Latest revision as of 01:39, 31 December 2013
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 or 0x4144 "AD"
- Kingston 0x544d "TM"
- SanDisk 0x5344 "SD" or 0x534d "SM" (I think that SM means the card was made by Samsung - wmb)
- 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.
Get performance timings
See SD_and_USB_FLASH_Drive_Performance for more info. With XO-1.5 Q3A50 or later, XO-1 Q2E45 or later, but not XO-1.75 or XO-4, test the internal SD card with:
ok .speed int:0
For external SD card,
ok .speed ext:0
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.