Raspberry Pi No Login

Adrian Chadd adrian at freebsd.org
Sun Feb 10 17:02:55 UTC 2013


Hey, nice catch!



Adrian

(hardware is fun!)


On 9 February 2013 17:04, Oleksandr Tymoshenko <gonzo at bluezbox.com> wrote:
> On 1/30/2013 2:51 PM, Oleksandr Tymoshenko wrote:
>>
>> On 1/30/2013 2:25 PM, hiren panchasara wrote:
>>>
>>> On Wed, Jan 30, 2013 at 9:15 AM, Tim Kientzle <tim at kientzle.com> wrote:
>>>>
>>>> On Jan 30, 2013, at 7:42 AM, Neal Nelson wrote:
>>>>
>>>>> HI.
>>>>>
>>>>> I'm able to build a bootable FreeBSD image using the beaglebone
>>>>> scripts, which I understand is the accepted way at the moment.
>>>>>
>>>>> The problem I have is that everything seems to be going nicely, but I
>>>>> never get a login prompt. The last thing I see, after the ssh key generation
>>>>> stuff, is a line showing the date, then nothing. This is true using Current
>>>>> as of today (2012-01-30).
>>>>>
>>>>> I've had this problem for some time now as every image I build using
>>>>> this process has the same problem. If anyone has an idea as to what I'm
>>>>> doing wrong, I'd be very grateful.
>>>>
>>>> Look at the kernel boot messages for the SD card
>>>> check.
>>>>
>>>> Is it probing at 25MHz or 50MHz?
>>>>
>>>> I haven't tried RPi in a little while, but last time I did
>>>> there was an erratic bug which caused the SD card
>>>> to sometimes get probed at 50MHz and be non-functional.
>>>>
>>>> I believe some people worked around this by trying
>>>> different cards or maybe it's been fixed in the
>>>> SD driver by now?
>>>
>>> Not sure if its fixed in the driver now but I got around the frequency
>>> problem by the patch available at:
>>> http://www.peach.ne.jp/archives/rpi/patch/
>>>
>>> Basically its setting freq to 25MHz instead of default 50MHz in
>>> bcm2835_sdhci.c
>>
>>
>> The patch works around the issue although it does address several issues
>> with FreeBSD's
>> generic mmc driver. Namely: driver does not check for return value for
>> functions that read
>> card's CSD, SCR or the result of switch command. CSD and SCR register
>> contain card-specific
>> information drivers uses to tune its operations. So when register read
>> command silently
>> fails driver uses partially valid data and hence its behavior might or
>> might not manifest
>> problems.
>>
>> Now the interesting part is why these commands fail. SDHCI controller
>> returns Data CRC
>> errors when executing them. It happens fairly early in initialization
>> sequence so at that point
>> card operates at 400KHz and should not have problem like this.
>
>
> Today I went all scientific on this issue and plugged logic analyzer
> to SD card using SparkFun's SD Sniffer[1]. What I found was that on
> power up SDHCI controller starts operating at frequency of 190KHz but
> shortly after it, before any data is read via DATA line, it switches to
> 8MHz. So I capped minimum frequency for SDHCI driver at 8MHz and got
> RPi into endless reboot cycle. Lo and behold: it's been almost two
> hours and so far no Data CRC Error interrupts.
>
> Patch: http://people.freebsd.org/~gonzo/arm/patches/rpi-sdhci.diff
>
> Description:
>     - Do not silently ignore failure of "Read CSD" and "Read SCR"
>       commands since data returned by them is essential for further
>       initialization
>     - Properly calculate minimum frequency for SDHCI 3.00 and higher
>     - Add new method to SDHCI interface for setting driver-specific
>         minimum frequency. Provide default implementation.
>     - Cap minimum frequency at 8MHz for Raspberry Pi's SDHC
>
> I'd appreciate reviews and testing. There is one debug printf that
> will be removed from final version.
>
> [1] https://www.sparkfun.com/products/11468
>
>
> _______________________________________________
> freebsd-arm at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"


More information about the freebsd-arm mailing list