G'day
> > > +# or set your networking parameters hereOr just leave the field blank. In this case a random (local-) MAC
> > > +#eth0.ipaddr=192.168.1.80
> > > +#eth0.netmask=255.255.255.0
> > > +#eth0.gateway=a.b.c.d
> > > +eth0.serverip=192.168.1.23
> > > +eth0.ethaddr=00:50:c2:8c:e6:0e
> >
> > *never* *ever* add MAC addresses to the default environment.
>
>
> Ok. In my case, the MAC address is actually stored inside a secured at24
> EEPROM buffer. Unfortunately, at24 via I2C does not seem to be available in
> barebox. I reckon I have to port it from the kernel or uboot :).
address is generated.
> I have included some more debugging and also workarounds for the mx25. ThisThe kernel has this:
> is the current debug output, where it clearly indicates that for some
> reason the mx25 esdhc related registers never show a transfer complete for
> a multiblock write:
if (is_imx25_esdhc(imx_data) || is_imx35_esdhc(imx_data))
/* Fix errata ENGcm07207 present on i.MX25 and i.MX35 */
host->quirks |= SDHCI_QUIRK_NO_MULTIBLOCK
| SDHCI_QUIRK_BROKEN_ADMA;
A typical scenario is as follows: After Sending a non-ending block, the card replies with a CRC error. The software detects the CRC error and manually sends a CMD12 command to the card to stop the transmission. Internally, the AHB bus keeps writing to the internal buffer even though the software stopped the transfer."
So the solution is as follows:
To abort data transfers on the AHB, software can reset the eSDHC by writing 1 to SYSCTL[24] (RSTA).
I haven't tried this, but I can assure you that setting block count to 1 does not resolve the issue at all, or the other way around: having multiple block write/read support for the i.MX25 does not seem to be the cause of any reproducible problem. So, unless someone proves me otherwise, I believe the kernel driver implementation is wrong. On top of that, there is erratum ENGcm01112 which then directly comes into action, something I also didn't see addressed in the kernel sources.
I'll keep looking for other answers, however you might want to consider the minimally invasive WML changes I did in the patch sent before, which at the same time introduce a similar quirk "framework" to the esdhc driver in barebox like the kernel has. I will also compare to the uboot driver. I understand that there is very little concern for this in the barebox driver, since most of what the users need is to copy from the SD card, and so far nobody has complained.
I happily stand corrected ;).
Best regards
Roberto
Which means that the kernel won't do multiblock on i.MX25 and i.MX35.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |