> What's going on here? I'll investigate this further, because in real life I
> have massive SD card write speed issues on my mx25 device on any kernel
> tested from 2.6.37 to 3.3.4 so far.
I try to keep the iomux descriptions in sync with the kernel. So when
there is a bug in the kernel it's likely present in barebox aswell.
Another thing which you might want to investigate is the clock
frequency. Please check with an oscilloscope if we really have 25MHz as
suggested above.
I used exactly the same iomux descriptions, but we have the same issue in the kernel with huge timeouts. One of the reasons I try to switch to barebox is its simplicity of the driver ideology close to the kernel. Also, what are the default pin mux settings for the ESDHC on mx25, if I comment the following?
/*
MX25_PAD_SD1_CMD__SD1_CMD,
MX25_PAD_SD1_CLK__SD1_CLK,
MX25_PAD_SD1_DATA0__SD1_DATA0,
MX25_PAD_SD1_DATA1__SD1_DATA1,
MX25_PAD_SD1_DATA2__SD1_DATA2,
MX25_PAD_SD1_DATA3__SD1_DATA3,
*/
I thought it might just fallback to the same pin mux but without the 47k pullup (NO_PAD_CTRL). This does not seem to be the case, because I have replaced the definition of the iomux definitions with NO_PAD_CTRL and the problem remains. Only commenting them out seems to have an effect. So, something is either really wrong with my hardware or there has to be another influence.
The oscilloscope shows 190kHz when it fails, 33.33MHz when it works .... interesting. Barebox initializes mpll to 532Mhz and consequently sets sdhc1 to 66.5Mzh. Invoking 'cpufreq 399' resets the clocks, however does not adjust the sdhc1 one as on the oscilloscope it stays on 33.33Mhz.
What next?
Cheers
Roberto