As a point of reference, the stock SD card I received with my xM
(ordered December 2010) flashbench results are:
http://lists.linaro.org/pipermail/flashbench-results/2012-February/000252.html
It could do _almost_ 5MB/sec transfers on large files with 1 open erase
block. Going to 2 open erase blocks really killed the performance. In
order to run a journaling file system, I believe at least 3 open erase
blocks are needed.
SanDisk Mobile Ultra 4GB card can do about 13MB/sec transfers on large
files with 1 open erase block, and performance doesn't really fall off
badly till 10 open erase blocks. With an ext4 file system, I get very
good performance from this card on BeagleBone and xM. It's noticeably
faster than ext3, even.
Also, with the SanDisk cards, make sure you format them to align the
partitions to the underlying flash. I recommend aligning to 6MiB
bounds (the underlying flash should be organized into 1.5MiB erase
blocks). This is an unusual alignment, most SD cards are 2 or 4 MiB
erase blocks.
This is how I have mine partitioned, it works very well
for me (all units are sectors, NOT cylinders). fdisk says:
Disk /dev/mmcblk0: 3965 MB, 3965190144 bytes
32 heads, 32 sectors/track, 7563 cylinders, total 7744512 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 * 12288 24575 6144 c W95 FAT32
/dev/mmcblk0p2 24576 147455 61440 83 Linux
/dev/mmcblk0p3 147456 7744511 3798528 83 Linux
p1 is a 6MiB FAT partition for MLO and u-boot. p2 is ext3 and is where
my kernels live. p3 is ext4 and is my root file system. I have this
partition layout because u-boot couldn't (until recently) read ext4 and
I did not want to have the fat partition mounted within Linux (for
safety reasons, blowing away the boot loader would be bad). Both the
xM and Bone should be able to boot with the 32 heads 32 sectors setup,
I've not seen any issues with it.
-Andrew