Hi Niklas,

so I scratched my head around this a little more... I don't have an
explanation, but want to highlight some interesting points:

> [    2.954859] mmc0: new ultra high speed SDR50 SDHC card at address aaaa

So, this is an SDR50 card. The patch in questions adds tuning support
which is only needed for SDR104. The whole tuning procedure is not (or
at least should not be) exercised.

> Oddly enough the error are only printed when I insert the SD card in the 
> mmc0 slot. I can insert/eject the card multiple times in mmc1 and no 
> error but the first insertion in mmc0 and boom. Only difference I can 
> see are the clock speed between mmc0 and mmc1.

That actually makes sense. mmc0 is SDR104 capable and has the SCC unit
which is needed for tuning (note the larger register space in the dtsi).
The other mmc cores do only SDR50 and do not have an SCC. Because your
warning is about a broken pointer, I wonder if it is about accessing
SCC? Maybe in hw_reset? Wild guess, though. On the other hand, the
register ranges in the dtsi look ok, so I'd assume the IPMMU should have
all the info it needs? But I don't really know...

First thing to try: please remove the property "sd-uhs-sdr104;" from
your Koelsch DTS. I'd expect this makes the warnings go away. If so,
readd the property and instrument if sh_mobile_sdhi_hw_reset() gets
called. One outcome might be that the printouts might be tied to the
warnings.

> I can interact fine with the card (I tried checksumming a large file and 
> compared with a known good) so it's not broken. I can also interact with 
> other devices using the DMAC+IPMMU without similar warnings being 
> printed at all, I tested with i2c6.

That is relieving and also makes sense in the way that nothing in this
patch should be needed to get an SDR50 card running.

Regards,

   Wolfram

Attachment: signature.asc
Description: PGP signature

Reply via email to