I finally got around to testing this on the Ouya (Tegra 3).
Thanks for testing!
I found that the "Got command interrupt 0x00010000 even though no
command operation was in progress." error occurred when the interface
is unstable.
I've had a lot of problems with sdmmc4 stability on the Ouya above 34
Mhz, probably due to the fact that they are using the internal cmd and
clock pull-up resistors, against the TRM's instruction.
At 39Mhz, I saw the error this patch corrects.
With the patch, the error went away, but the interface is still
unstable under load.
How does this instability manifest exactly?
At the very edge of stability, you see write errors under heavy load.
As clock rate increases, the write errors occur more frequently.
At a certain point, you start getting read errors.
Following that you get constant io errors during card probing.
Eventually the emmc will fail to initialize, with errors 87 or 110.
What mode are you running at actually? E.g. what is the ios file saying?
cat /sys/kernel/debug/mmcX/ios
I've been tweaking the pull up/down values to try and improve the
stability, but without access to anything but the TRM it's a lot of
trial and error.
Hm, maybe Marcel's recent fixes in our device tree are helpful?
https://lkml.org/lkml/2018/7/22/165
Also make sure to have a complete pinmux such that alternative pins for
sdmmc4 are *not* muxed as sdmmc4.
Lowering down to 32Mhz, without the patch there are no errors.
So the patch does not make it less stable right?
No, it did not affect stability.
Although I'd conduct some performance testing to check for degradation.
Of course I'm nowhere near the limits of the controller, so it is
doubtful I'd see a hit.
Ok, and this is with the complete patchset applied correct?
Btw, what device tree are you using? Ouya is not upstream as far as I
can tell?
--
Stefan
----
Stefan
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html