id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,blockedby,blocking,estimated,haspatch,patchreview,reproducible
677,I/O errors on heavy microSD writes,mjr@…,laforge@openmoko.org,"Writing heavily to the microSD will cause intermittent I/O errors. Case in
point; I tried to scp a bunch of music to the Sandisk microSD provided with the
Neo, and I got I/O errors at some point. Experimenting with transfer speeds
revealed that scp -l 500 (that is, 500 kilobits per second) still was vulnerable
to the error, but -l 100 managed to transfer the ~250 megabytes without errors.

I couldn't reproduce later with local dd if=/dev/zero of=foo, experimenting with
different block sizes. Maybe luck, or maybe the scp CPU consumption and/or write
patterns helps triggering. I _was_ able to reproduce with scping some more with
no speed limit. Here's some dmesg from the Neo from this reproduction:

<3>s3c2410-sdi s3c2410-sdi: unfinished write - pio_count:[1024] pio_words:[0]
<3>mmcblk0: error 4 transferring data
<3>s3c2410-sdi s3c2410-sdi: unfinished write - pio_count:[1024] pio_words:[0]
<3>mmcblk0: error 4 transferring data
<4>adc_read: entering (pcf=c07dac00, channel=0, data2=00000000)
<4>pcf50606_irq: entering(irq=53, pcf=c07dac00): scheduling work
<4>pcf50606_work: INT1=0x40 INT2=0x00 INT3=0x01:SECOND ADCRDY 
<4>adc_read: returning 713 0
<4>adc_read: entering (pcf=c07dac00, channel=0, data2=00000000)
<4>pcf50606_irq: entering(irq=53, pcf=c07dac00): scheduling work
<4>pcf50606_work: INT1=0x40 INT2=0x00 INT3=0x01:SECOND ADCRDY 
<4>adc_read: returning 711 0
<4>adc_read: entering (pcf=c07dac00, channel=0, data2=00000000)
<4>pcf50606_irq: entering(irq=53, pcf=c07dac00): scheduling work
<4>pcf50606_work: INT1=0x40 INT2=0x00 INT3=0x01:SECOND ADCRDY 
<4>adc_read: returning 716 0
<3>s3c2410-sdi s3c2410-sdi: unfinished write - pio_count:[1024] pio_words:[0]
<3>mmcblk0: error 4 transferring data
<4>end_request: I/O error, dev mmcblk0, sector 708600
<4>adc_read: entering (pcf=c07dac00, channel=0, data2=00000000)
<4>pcf50606_irq: entering(irq=53, pcf=c07dac00): scheduling work
<4>pcf50606_work: INT1=0x40 INT2=0x00 INT3=0x01:SECOND ADCRDY 
<4>adc_read: returning 713 0

Haven't seen problems yet on reading.

I'm using these kernel and root images:
uImage-2.6.21.6-moko10-r1_0_0_2388_0-fic-gta01.bin
openmoko-devel-image-fic-gta01-20070728081358.rootfs.jffs2",defect,closed,high,,kernel,unspecified,critical,fixed,,buglog@… pavel@…,,,,,,
