Ticket #677 (closed defect: fixed)
I/O errors on heavy microSD writes
Description
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
