raspberry pi mmc issue

Alexander Aring alex.aring at gmail.com
Tue Oct 15 07:51:17 EDT 2013


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?

- Alex

[1] https://github.com/Torlus/qemu-rpi
[2] https://github.com/Torlus/qemu/blob/rpi/hw/arm/bcm2835_emmc.c#L405
[3] http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf page 66
[4] http://git.pengutronix.de/?p=barebox.git;a=blob;f=drivers/mci/mci-bcm2835.c;h=abd38a35c9bfadcb2e3013eb4b220f74acf7464b;hb=HEAD#l264



More information about the barebox mailing list