
Hi Jonas,
I tried some basic eMMC read/write commands, and in my setup with rock5b, it fails at single/multiple block read/write , even if sometimes, the initial read works fine.
Here is some log :
=> mmc read 0x50000000 64 1 CMD_SEND:0 ARG 0x00000000 MMC_RSP_NONE CMD_SEND:8 ARG 0x000001aa RET -110 CMD_SEND:55 ARG 0x00000000 RET -110 CMD_SEND:0 ARG 0x00000000 MMC_RSP_NONE CMD_SEND:1 ARG 0x00000000 MMC_RSP_R3,4 0x40ff8080 CMD_SEND:1 ARG 0x40060000 MMC_RSP_R3,4 0x40ff8080 CMD_SEND:1 ARG 0x40060000 MMC_RSP_R3,4 0x40ff8080 CMD_SEND:1 ARG 0x40060000 MMC_RSP_R3,4 0xc0ff8080 CMD_SEND:2 ARG 0x00000000 MMC_RSP_R2 0x15010042 0x4a544434 0x5203d923 0x738d5900
DUMPING DATA 000 - 15 01 00 42 004 - 4a 54 44 34 008 - 52 03 d9 23 012 - 73 8d 59 00 CMD_SEND:3 ARG 0x00010000 MMC_RSP_R1,5,6,7 0x00000500 CMD_SEND:9 ARG 0x00010000 MMC_RSP_R2 0xd0270132 0x0f5903ff 0xf6dbffef 0x8e404000
DUMPING DATA 000 - d0 27 01 32 004 - 0f 59 03 ff 008 - f6 db ff ef 012 - 8e 40 40 00 CMD_SEND:7 ARG 0x00010000 MMC_RSP_R1,5,6,7 0x00000700 CMD_SEND:8 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:6 ARG 0x03b70200 MMC_RSP_R1b 0x00000900 CMD_SEND:13 ARG 0x00010000 MMC_RSP_R1,5,6,7 0x00000900 CURR STATE:4 CMD_SEND:6 ARG 0x03b90100 MMC_RSP_R1b 0x00000900 CMD_SEND:13 ARG 0x00010000 MMC_RSP_R1,5,6,7 0x00000900 CURR STATE:4 CMD_SEND:6 ARG 0x03b70600 MMC_RSP_R1b 0x00000900 CMD_SEND:13 ARG 0x00010000 MMC_RSP_R1,5,6,7 0x00000900 CURR STATE:4 CMD_SEND:8 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900
MMC read: dev # 0, block # 100, count 1 ... CMD_SEND:17 ARG 0x00000064 MMC_RSP_R1,5,6,7 0x00000900 1 blocks read: OK => mmc write 0x50000000 64 1
MMC write: dev # 0, block # 100, count 1 ... mmc bwrite1 mmc bwrite2 CMD_SEND:17 ARG 0x00000000 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:18 ARG 0x00000040 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:12 ARG 0x00000000 MMC_RSP_R1b 0x00000b00 CMD_SEND:18 ARG 0x00000002 MMC_RSP_R1,5,6,7 0x00000900 CMD_SEND:12 ARG 0x00000000 MMC_RSP_R1b 0x00000b00 mmc bwrite3 CMD_SEND:24 ARG 0x00000064 RET -70 mmc write failed 0 blocks written: ERROR => mmc write 0x50000000 64 5
MMC write: dev # 0, block # 100, count 5 ... mmc bwrite1 mmc bwrite2 mmc bwrite3 CMD_SEND:25 ARG 0x00000064 RET -70 mmc write failed 0 blocks written: ERROR => mmc read 0x50000000 64 5
MMC read: dev # 0, block # 100, count 5 ... CMD_SEND:18 ARG 0x00000064 RET -110 0 blocks read: ERROR => mmc read 0x50000000 64 1
MMC read: dev # 0, block # 100, count 1 ... CMD_SEND:17 ARG 0x00000064 RET -110 0 blocks read: ERROR =>
So now after this attempt, there is a timeout when reading too.
Can you try to reproduce this on your setup as well ?
P.S. booting from eMMC works fine. When I am trying this, I am booting from the eMMC.
Thanks !