On Tue, Oct 15, 2013 at 01:51:17PM +0200, Alexander Aring wrote: > Hi all, > > I using a not mainlined raspberry pi qemu implementation [1] and tried to > run barebox on it. All seems to working but if I probe the mmc with > mci0.probe=1 qemu will crash on a assert on 4 byte assert [2]. > > I dig a little bit into the Datasheet of bcm2835 [3] which says: > > "Contrary to Arasan™’s documentation the EMMC module registers can only > be accessed as 32 bit registers, i.e. the two LSBs of the address are > always zero." > > Then I dig into the barebox bcm2835_mci implementation and found > something [4]. We use there a readb on SDHCI_RESPONSE_0 which is not a > 32 bit access. I just commented the if branch and it works. > > Maybe this can make some errors on a real raspberry, too. > > Maybe somebody knows a little bit more about mci and can help me to find > a proper solution? Perhaps just make a 32 bit access and do some bit > magic with masks and shifts? Here the SD card works (both read and write). I can surely test a patch converting this access into a 32bit access. The only thing I realize here is that my 3.6.4 kernel fails to access the SD card when barebox has accessed it before: [ 3.623861] mmc0: SD Status: Invalid Allocation Unit size. [ 3.635586] mmc0: error -110 whilst initialising SD card [ 3.724743] mmc0: SD Status: Invalid Allocation Unit size. [ 3.739073] mmc0: error -110 whilst initialising SD card [ 3.836341] mmc0: SD Status: Invalid Allocation Unit size. [ 3.847708] mmc0: error -110 whilst initialising SD card [ 3.965447] mmc0: read SD Status register (SSR) after 3 attempts [ 3.971483] mmc0: SD Status: Invalid Allocation Unit size. 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 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox