Hi Arnd, hi everyone,
I got the Samsung Essential 32 GB SDHC as well now:
martin@merkaba:~[…]/flashbench> sudo ./flashreport /dev/mmcblk0
===> MMC card detected with erase block size of 524288 bytes <=== ==> find /sys/block/mmcblk0/device/ -maxdepth 1 -type f | xargs head <==
==> /sys/block/mmcblk0/device/cid <== 1b534d3030303030107888d12300c100
==> /sys/block/mmcblk0/device/csd <== 400e00325b590000e9e57f800a404000
==> /sys/block/mmcblk0/device/scr <== 02b5800200000000
==> /sys/block/mmcblk0/device/date <== 01/2012
==> /sys/block/mmcblk0/device/name <== 00000
==> /sys/block/mmcblk0/device/type <== SD
==> /sys/block/mmcblk0/device/preferred_erase_size <== 4194304
==> /sys/block/mmcblk0/device/fwrev <== 0x0
==> /sys/block/mmcblk0/device/hwrev <== 0x1
==> /sys/block/mmcblk0/device/oemid <== 0x534d
==> /sys/block/mmcblk0/device/manfid <== 0x00001b
==> /sys/block/mmcblk0/device/serial <== 0x7888d123
==> /sys/block/mmcblk0/device/uevent <== DRIVER=mmcblk MMC_TYPE=SD MMC_NAME=00000 MODALIAS=mmc:block
==> /sys/block/mmcblk0/device/erase_size <== 512
==> fdisk -lu <==
Disk /dev/mmcblk0: 31.4 GB, 31393316864 bytes 255 heads, 63 sectors/track, 3816 cylinders, total 61315072 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 61315071 30653440 c W95 FAT32 (LBA)
==> sfdisk -d <== # partition table of /dev/mmcblk0 unit: sectors
/dev/mmcblk0p1 : start= 8192, size= 61306880, Id= c /dev/mmcblk0p2 : start= 0, size= 0, Id= 0 /dev/mmcblk0p3 : start= 0, size= 0, Id= 0 /dev/mmcblk0p4 : start= 0, size= 0, Id= 0
===> Partition details <===
==> file -sk /dev/mmcblk0 <== /dev/mmcblk0: sticky x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 61306880 sectors, extended partition table (last)\011, code offset 0x0
==> file -sk /dev/mmcblk0p1 <== /dev/mmcblk0p1: sticky x86 boot sector, code offset 0x0, OEM-ID " ", sectors/cluster 64, reserved sectors 1420, Media descriptor 0xf8, heads 255, hidden sectors 8192, sectors 61306880 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 7482, reserved3 0x800000, serial number 0x90164ef8, unlabeled
==> head -c20M | hexdump -C<== 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 82 |................| 000001c0 03 00 0c fe ff ff 00 20 00 00 00 78 a7 03 00 00 |....... ...x....| 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00400000 eb 00 90 20 20 20 20 20 20 20 20 00 02 40 8c 05 |... ..@..| 00400010 02 00 00 00 00 f8 00 00 3f 00 ff 00 00 20 00 00 |........?.... ..| 00400020 00 78 a7 03 3a 1d 00 00 00 00 00 00 02 00 00 00 |.x..:...........| 00400030 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00400040 80 00 29 f8 4e 16 90 4e 4f 20 4e 41 4d 45 20 20 |..).N..NO NAME | 00400050 20 20 46 41 54 33 32 20 20 20 00 00 00 00 00 00 | FAT32 ......| 00400060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 004001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00400200 52 52 61 41 00 00 00 00 00 00 00 00 00 00 00 00 |RRaA............| 00400210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 004003e0 00 00 00 00 72 72 41 61 ff ff ff ff 02 00 00 00 |....rrAa........| 004003f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00400400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 004005f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00400600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00400c00 eb 00 90 20 20 20 20 20 20 20 20 00 02 40 8c 05 |... ..@..| 00400c10 02 00 00 00 00 f8 00 00 3f 00 ff 00 00 20 00 00 |........?.... ..| 00400c20 00 78 a7 03 3a 1d 00 00 00 00 00 00 02 00 00 00 |.x..:...........| 00400c30 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00400c40 80 00 29 f8 4e 16 90 4e 4f 20 4e 41 4d 45 20 20 |..).N..NO NAME | 00400c50 20 20 46 41 54 33 32 20 20 20 00 00 00 00 00 00 | FAT32 ......| 00400c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00400df0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00400e00 52 52 61 41 00 00 00 00 00 00 00 00 00 00 00 00 |RRaA............| 00400e10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00400fe0 00 00 00 00 72 72 41 61 ff ff ff ff 02 00 00 00 |....rrAa........| 00400ff0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00401000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 004011f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| 00401200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 004b1800 f8 ff ff 0f ff ff ff 0f ff ff ff 0f 00 00 00 00 |................| 004b1810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00858c00 f8 ff ff 0f ff ff ff 0f ff ff ff 0f 00 00 00 00 |................| 00858c10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00c08000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 01400000
===> Trying to find erase block size by read tests <===
==> sudo flashbench -a --count=100 --blocksize=1024 /dev/mmcblk0 <== align 8589934592 pre 214µs on 219µs post 214µs diff 4.59µs align 4294967296 pre 214µs on 218µs post 214µs diff 3.9µs align 2147483648 pre 214µs on 218µs post 215µs diff 3.27µs align 1073741824 pre 215µs on 220µs post 214µs diff 5.32µs align 536870912 pre 213µs on 217µs post 213µs diff 3.99µs align 268435456 pre 216µs on 220µs post 215µs diff 4.51µs align 134217728 pre 213µs on 217µs post 213µs diff 3.51µs align 67108864 pre 215µs on 221µs post 216µs diff 5.56µs align 33554432 pre 213µs on 216µs post 213µs diff 2.97µs align 16777216 pre 215µs on 219µs post 214µs diff 4.73µs align 8388608 pre 231µs on 256µs post 234µs diff 23.7µs align 4194304 pre 246µs on 272µs post 235µs diff 32.1µs align 2097152 pre 237µs on 272µs post 243µs diff 31.7µs align 1048576 pre 246µs on 267µs post 229µs diff 29.7µs align 524288 pre 237µs on 273µs post 244µs diff 32.6µs align 262144 pre 246µs on 268µs post 230µs diff 29.7µs align 131072 pre 237µs on 273µs post 245µs diff 32.3µs align 65536 pre 246µs on 268µs post 229µs diff 30.5µs align 32768 pre 237µs on 274µs post 244µs diff 33.3µs align 16384 pre 237µs on 247µs post 235µs diff 10.7µs align 8192 pre 235µs on 236µs post 236µs diff 463ns align 4096 pre 236µs on 236µs post 236µs diff 223ns align 2048 pre 235µs on 236µs post 236µs diff 498ns
(See README for an explaination on how to interpret the values.)
Medium is a memory card which reports 524288 bytes as erase block size and 4194304 bytes as preferred erase size.
===> Suggestions for further benchmarking <===
Further tests can show the number of open erase blocks the medium can support.
BEWARE: These tests write onto the device! Make a backup first!
Further tests could look as follows: flashbench --open-au --open-au-nr=3 --erasesize=524288 --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] flashbench --open-au --open-au-nr=5 --erasesize=524288 --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] flashbench --open-au --open-au-nr=7 --erasesize=524288 --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] flashbench --open-au --open-au-nr=13 --erasesize=524288 --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024]
(Consult the README for further suggestions.)
You already said that this card could be trickier. And frankly, I do not see a clear change at erase block size and erase block size boundaries.
You tried a Micro SDHC Samsung with 32 GB with 30 and 31 open erase blocks. What is your suggestion here?
Thanks,
flashbench-results@lists.linaro.org