Tiny Core Linux/eMMC

From OLPC
Jump to: navigation, search

How to use the Linux kernel mmc_test driver to test the eMMC on an XO-1.75 or XO-4.

  • boot Tiny Core Linux,
  • mount the kernel debug filesystem,
mount -t debugfs debugfs /mnt
  • unbind the eMMC device from the mmcblk driver,
echo mmc1:0001 > /sys/bus/mmc/drivers/mmcblk/unbind
  • bind the eMMC device to the mmc_test driver,
echo mmc1:0001 > /sys/bus/mmc/drivers/mmc_test/bind
  • verify the testlist and test nodes appear in debugfs,
cd /mnt/mmc1/mmc1:0001
ls
  • run the tests (Warning: destroys data),
cd /mnt/mmc1/mmc1:0001
for x in $(seq 45); do echo $x > test; done

Sample output:

[ 1330.106609] mmc1: Starting tests of card mmc1:0001...
[ 1330.117939] mmc1: Test case 1. Basic write (no data verification)...
[ 1330.131555] mmc1: Result: OK
[ 1330.140286] mmc1: Tests completed.
[ 1330.149249] mmc1: Starting tests of card mmc1:0001...
[ 1330.159891] mmc1: Test case 2. Basic read (no data verification)...
[ 1330.171896] mmc1: Result: OK
[ 1330.180024] mmc1: Tests completed.
...
[ 3237.326404] mmc1: Starting tests of card mmc1:0001...
[ 3237.338868] mmc1: Test case 44. Read performance non-blocking req 1 to 512 sg elems...
[ 3240.750938] mmc1: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 3.396704000 seconds (39514 kB/s, 38587 KiB/s, 75.36 IOPS, sg_len 8)
[ 3244.173714] mmc1: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 3.396490000 seconds (39516 kB/s, 38590 KiB/s, 75.37 IOPS, sg_len 8)
[ 3247.598374] mmc1: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 3.398492155 seconds (39493 kB/s, 38567 KiB/s, 75.32 IOPS, sg_len 16)
[ 3251.026526] mmc1: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 3.401875848 seconds (39454 kB/s, 38529 KiB/s, 75.25 IOPS, sg_len 32)
[ 3254.461670] mmc1: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 3.408885231 seconds (39372 kB/s, 38450 KiB/s, 75.09 IOPS, sg_len 64)
[ 3257.911051] mmc1: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 3.423060462 seconds (39209 kB/s, 38290 KiB/s, 74.78 IOPS, sg_len 128)
[ 3261.360467] mmc1: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 3.423041692 seconds (39210 kB/s, 38291 KiB/s, 74.78 IOPS, sg_len 128)
[ 3264.809838] mmc1: Transfer of 256 x 1024 sectors (256 x 512 KiB) took 3.423003847 seconds (39210 kB/s, 38291 KiB/s, 74.78 IOPS, sg_len 128)
[ 3264.836296] mmc1: Result: OK
[ 3264.846649] mmc1: Tests completed.
[ 3264.857505] mmc1: Starting tests of card mmc1:0001...
[ 3264.870078] mmc1: Test case 45. eMMC hardware reset...
[ 3264.882531] mmc1: Result: UNSUPPORTED (by card)
[ 3264.894375] mmc1: Tests completed.