Changes

Board validation and diagnostic tools

4,205 bytes added, 13:19, 15 April 2014
no edit summary
( WIP ) = OMAP35x/DM37x =
== How to find the Silicon Revision of your OMAP35x ==
Read back a 32 bit word from the CONTROL_IDCODE Register at address: 0x4830 A204
{| border="1"
|-
! Processor
! Silicon Revision
! 32-bit readback value
|-
| OMAP35x
| ES1.0
| 0x0B6D 602F
|-
| OMAP35x
| ES2.0
| 0x1B7A E02F
|-
| OMAP35x
| ES2.1
| 0x2B7A E02F
|-
| OMAP35x
| ES3.0
| 0x3B7A E02F
|-
| OMAP35x
| ES3.1
| 0x4B7A E02F
|-
| AM/DM37x
| ES1.0
| 0x0B89 102F
|-
| AM/DM37x
| ES1.1
| 0x1B89 102F
|-
| AM/DM37x
| ES1.2
| 0x2B89 102F
|}
from the read back value: 0x4B7AE02F, you can see the revision of this OMAP35x corresponds to ES3.1
== How to check system boot order ==  # devmem2 0x480022F0 b == How to find the SGX core revision == Perform the following commands on the target with an utility like devmem2.  # devmem2 0x48004B48 w 0x2 # devmem2 0x48004B10 w 0x1 # devmem2 0x48004B00 w 0x2 # devmem2 0x50000014 from the read back value you can see the revision of the SGX Core {| border="1"|-! Processor! SGX Core Revision ! 32-bit readback value|-| OMAP35x ES2.0| 1.0.3| 0x10003 |-| OMAP35x ES3.1| 1.2.1| 0x10201|-| AM/DM37x| 1.2.5| 0x10205|} == How to get the processor DIEID ==  #!/bin/sh DIEID="" for addr in '0x4830a224' '0x4830a220' '0x4830a21c' '0x4830a218'; do DIEID=${DIEID}`devmem2 $addr | awk '/Read/ { printf "%08X", $6 }'` done echo ${DIEID}  == Power consumption ==
Power measurements taken over the operating conditions specified.
! 2.6.28.y
! 2.6.33.y
! 2.6.34.y
|-
| IGEP v2 RC1
| 550mA
| <br>
| <br>
|-
| IGEP v2 RC2
| 460mA
| <br>
| <br>
|-
| IGEP v2 RC3
| 550mA
| <br>
| <br>
|-
| IGEP SOC COM MODULE 3530 4G
| 80mA
| NA
| 310mA
| <br>
|-
| IGEP SOC COM ELECTRON 3503 1G
| 80mA
| NA
| 260mA
| <br>
|}
*1: Typical value when power-up with empty flash
= MMC ='''Decrease consumption''' *Switch off leds:<pre>echo 0 > /sys/devices/platform/leds-gpio/leds/d210\:green/brightnessecho 0 > /sys/devices/platform/leds-gpio/leds/d210\:red/brightnessecho 0 > /sys/devices/platform/leds-gpio/leds/d440\:green/brightnessecho 0 > /sys/devices/platform/leds-gpio/leds/d440\:red/brightness</pre> *Switch off WIFI i BT:<pre>echo 0 > /sys/class/gpio/gpio139/valueecho 0 > /sys/class/gpio/gpio137/value</pre> * Slow down CPU frecuency (about 120mA):<pre>cpufreq-set -f 300Mhz</pre> * Hibernate (about 60mA):<pre>echo mem > /sys/power/state</pre>
== I/O operations MMC ==
=== #001&nbsp;: Basic read/write operation ===
$ time dd if=/dev/zero of=/dev/mmcblk0
The time used for the calculations rate transfer was the time reported by dd.
Results:
{| border="1"
|-
! Test ! &nbsp;2.6.32.25 (SD 2GBPC i5 CPU) &nbsp;! &nbsp;2.6.2835.y 9 (DM37x)&nbsp;! &nbsp;2.6.3337-5 (DM37x)&nbsp;! &nbsp;2.y6.37-6 (DM37x)&nbsp;
|-
| read
| <br> &nbsp;9.7 MB/s (3m 24.43s)&nbsp;| &nbsp;13.8 MB/s (2m 33s22.70s)&nbsp;| &nbsp;5.5 MB/s (4.0 GB copied, 728.5s, SD Class 6)&nbsp;| &nbsp;16.2 MB/s (4.0 GB copied, 249.29s, SD Class 6)&nbsp;
|-
| write
| <br> &nbsp;2.0 MB/s (16m 3.68s )&nbsp;| 10m &nbsp;3.4 MB/s (9m 44.78s)&nbsp;| &nbsp;2.0 MB/s (4.0 GB copied, 2055.92s, SD Class 6)&nbsp;| &nbsp;3.0 MB/s (4.0 GB copied, 1356.13s, SD Class 6)&nbsp;
|}
= OneNAND '''Notes:''' src: http://jozz.no-ip.org/wiki/host/tips_and_trix Says performance can be improved by letting more memory be used as buffers and delaying writeback doing =echo 1500 > /proc/sys/vm/dirty_writeback_centisecs echo 50 > /proc/sys/vm/dirty_ratio echo 50 > /proc/sys/vm/dirty_background_ratio
The results are: # time dd if=/dev/mmcblk0 of= MTD Test Suite /dev/null 3842048+0 records in 3842048+0 records out 1967128576 bytes (2.0 GB) copied, 148.344 seconds, 13.3 MB/s real 2m 28.35s user 0m 5.67s sys 0m 19.66s  # time dd if=/dev/zero of=/dev/mmcblk0 dd: writing to `/dev/mmcblk0': No space left on device 3842049+0 records in 3842048+0 records out 1967128576 bytes (2.0 GB) copied, 578.973 seconds, 3.4 MB/s Command exited with non-zero status 1 real 9m 39.00s user 0m 3.64s sys 0m 39.77s Conclusion: No big difference with this test. == NAND/OneNAND ==
We assume that the mtd4 is available for test.
 
 
=== #000&nbsp;: Basic read operation ===
 
Category: performance
 
Description:
 
Conditions: IGEP0020-RC6 + IGEP Firmware Yocto 1.2.1-2
 
How to test:
 
The read tests were performed by running the following command:
 
$ time dd if=/dev/mtd2 of=/dev/null
 
The results are:
 
<pre>
root@igep00x0:~# time dd if=/dev/mtd2 of=/dev/null
1022976+0 records in
1022976+0 records out
 
real 1m21.901s
user 0m0.453s
sys 1m21.406s
</pre>
=== #001&nbsp;: Simple read/write test ===
Finished pass 5 successfully
=== #002&nbsp;: MTD suite test subsystem tests ===
Category: functional
exit 0
</pre>
 
== RAM ==
 
=== #001&nbsp;: Simple memory test ===
 
Category: functional
 
Description: Userspace utility for testing the memory subsystem for faults.
 
How to test:
 
Run the memtest command
 
memtester 256M 1
 
Result should be like this:
 
memtester version 4.1.3 (32-bit)
Copyright (C) 2010 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).
pagesize is 4096
pagesizemask is 0xfffff000
want 256MB (268435456 bytes)
got 256MB (268435456 bytes), trying mlock ...locked.
Loop 1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : ok
Block Sequential : ok
Checkerboard : ok
Bit Spread : ok
Bit Flip : ok
Walking Ones : ok
Walking Zeroes : ok
 
 
[[Category:Hardware]]
0
edits