nuttx icon indicating copy to clipboard operation
nuttx copied to clipboard

[BUG] Raspberry Pi 4B EMMC2 fails when `sdtress` is run with more than 1023 bytes

Open linguini1 opened this issue 2 months ago • 1 comments

Description / Steps to reproduce the issue

This issue occurs with the raspberrypi-4b:sd configuration. EMMC2 speed does not affect these results.

The sdstress test passes, so long as I configure it with the byte parameter as 1023 or less. The moment I make it 1024 bytes or larger, I get a lot of errors. I would imagine that this is something to do with the block gaps/the maximum supported transfer size being 1KB.

1023 byte stress test output:

nsh> sdstress -b 1023
Start stress test with 64 files, 1023 bytes and 32 iterations.
iteration 0 took 2607.000 ms: OK
iteration 1 took 1830.000 ms: OK
iteration 2 took 1566.000 ms: OK
iteration 3 took 3877.000 ms: OK
iteration 4 took 1608.000 ms: OK
iteration 5 took 1675.000 ms: OK
iteration 6 took 1605.000 ms: OK
iteration 7 took 1604.000 ms: OK
iteration 8 took 1602.000 ms: OK
iteration 9 took 1594.000 ms: OK
iteration 10 took 1704.000 ms: OK
iteration 11 took 1710.000 ms: OK
iteration 12 took 1664.000 ms: OK
iteration 13 took 1634.000 ms: OK
iteration 14 took 1650.000 ms: OK
iteration 15 took 1735.000 ms: OK
iteration 16 took 1658.000 ms: OK
iteration 17 took 1741.000 ms: OK
iteration 18 took 1661.000 ms: OK
iteration 19 took 1771.000 ms: OK
iteration 20 took 1690.000 ms: OK
iteration 21 took 1671.000 ms: OK
iteration 22 took 3241.000 ms: OK
iteration 23 took 2973.000 ms: OK
iteration 24 took 1914.000 ms: OK
iteration 25 took 2064.000 ms: OK
iteration 26 took 2490.000 ms: OK
iteration 27 took 1617.000 ms: OK
iteration 28 took 1616.000 ms: OK
iteration 29 took 1701.000 ms: OK
iteration 30 took 1633.000 ms: OK
iteration 31 took 1625.000 ms: OK
Test OK: Average time: 1897.844 ms
nsh> 

Output of stress test when above 1023 bytes:

nsh> sdstress -b 1024
Start stress test with 64 files, 1024 bytes and 32 iterations.
[  396.530000] mmcsd_readmultiple: ERROR: Card not ready: -110
[  396.534000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
read /sd/stress/[  396.593000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
tmp000 failed, r[  396.652000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
et: -1, errno 11[  396.711000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
0 -> Unknown err[  396.770000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
or 110
iteratio[  396.829000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
n 0 took 1067.00[  396.888000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
0 ms: FAIL
Test[  396.947000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
 FAIL: Average t[  397.006000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
ime: 33.344 ms
[  397.065000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
nsh> [  397.124000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
[  397.183000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
[  397.242000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
[  397.301000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
[  397.360000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
[  397.419000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
[  397.478000] mmcsd_sendcmdpoll: ERROR: Wait for response to cmd: 0000004d failed: -110
[  397.537000] mmcsd_writesingle: ERROR: Card not ready: -110
[  397.537000] file_put: ERROR: fs putfilep file_close() failed: -110

After this, it hangs. Following a reboot, here are the contents of the created stress/ directory:

nsh> ls -l /sd/stress
/sd/stress:
 -rw-rw-rw-           0 tmp000
nsh> 

On which OS does this issue occur?

[OS: Linux]

What is the version of your OS?

Arch Linux

NuttX Version

master

Issue Architecture

[Arch: arm64]

Issue Area

[Area: Drivers]

Host information

N/A

Verification

  • [x] I have verified before submitting the report.

linguini1 avatar Oct 28 '25 22:10 linguini1

Testing on multiple SD cards confirms the same thing: https://github.com/apache/nuttx/pull/17245#issuecomment-3483213289

linguini1 avatar Nov 04 '25 02:11 linguini1