Raspberry Pi Compute Module

Stephen Warren swarren at wwwdotorg.org
Thu Aug 27 08:13:57 PDT 2015


On 08/26/2015 07:57 AM, Martin Sperl wrote:
>
>> On 24.07.2015, at 05:58, Stephen Warren <swarren at wwwdotorg.org> wrote:
>>
>> On 07/22/2015 10:58 AM, Stefan Wahren wrote:
>>> Hi Stephen,
>>>
>>> Am 22.07.2015 um 05:41 schrieb Stephen Warren:
>>>> On 07/17/2015 11:08 AM, Stefan Wahren wrote:
>>>>> Hi all,
>>>>>
>>>>> is there anyone working on Mainline support for the Compute Module?
>>>>>
>>>>> I noticed the downstream kernel already has a bcm2708-rpi-cm.dtsi
>>>>
>>>> It is probably close enough that you can simply use bcm2835-rpi-b.dtb
>>>> for the CM too, for testing at least.
>>>>
>>>> I just tried this with latest U-Boot and a 4.2.0-rc3 kernel. The eMMC
>>>> works fine in U-Boot, but the kernel can't access it for some reason,
>>>> failing with e.g.:
>>>>
>>>> [    3.110503] Waiting for root device /dev/mmcblk0p2...
>>>> [    3.123895] mmc0: MAN_BKOPS_EN bit is not set
>>>> [    3.132264] mmc0: error -110 whilst initialising MMC card
>>>> [    3.788447] cfg80211: Calling CRDA to update world regulatory domain
>>>> [    4.204078] mmc0: MAN_BKOPS_EN bit is not set
>>>> [    4.212748] mmc0: error -110 whilst initialising MMC card
>>>> [    5.283981] mmc0: MAN_BKOPS_EN bit is not set
>>>> [    5.292657] mmc0: error -110 whilst initialising MMC card
>>>>
>>>> I had hoped that the kernel fixes for the VC MMU high address bits (via
>>>> the dma-ranges property in DT) would fix this, but I guess not since it
>>>> still doesn't work.
>>>>
>>>
>>> thank your for testing.
>>>
>>> Does defining the bus width as in bcm2708-rpi-cm.dtsi change anything?
>>>
>>> &mmc {
>>>     status = "okay";
>>>     bus-width = <4>;
>>> };
>>
>> Unfortunately not.
>>
>
> I am seeing the same thing - maybe the GPIO47 needs to get toggled at some point to output?
>
> See the comment in the CMIO PDF:
>
> BCM2835 BootROM boot from USB:
> - J4 set to enable USB boot
> - Plug host into micro USB socket J15 (VBUSB=5V)
> - GPIO47_1V8 high at boot (input with 50k pullup)
> - EMMC_DISABLE_N therefore LOW
> - On power up BCM2835 can't access eMMC so boots from USB
> - Once booted, 2835 USB boot SW forces GPIO47_1V8 LOW to enable access to eMMC C
>
> BCM2835 BootROM boot from eMMC:
> - Nothing plugged into micro USB socket J15 (VBUSB=0V) OR J4 set to disable USB Boot
> - EMMC_DISABLE_N therefore HIGH

This is the case I'm in; I have nothing plugged into the micro USB 
socket so the value of GPIO47 should be irrelevant. Besides, the eMMC 
works fine in U-Boot just not in the upstream kernel. Most likely is 
something to do with low-speed MMC signalling modes working fine (which 
no doubt U-Boot uses) but the kernel probably tries to switch to some 
more advanced mode which doesn't work for some reason.



More information about the linux-rpi-kernel mailing list