Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jul 2015 22:02:43 +0200
From:      Michael Tuexen <tuexen@fh-muenster.de>
To:        Ian Lepore <ian@FreeBSD.org>
Cc:        Luiz Otavio O Souza <lists.br@gmail.com>, "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>, Warner Losh <imp@freebsd.org>
Subject:   Re: SDHC errors during boot on RPi2 (11.0-CURRENT)
Message-ID:  <16AF6CE1-675C-49C2-9D98-DB1FB8656E1C@fh-muenster.de>
In-Reply-To: <1437072916.1334.364.camel@freebsd.org>
References:  <55A5A3F4.7040105@foxvalley.net> <D7A88FAC-C4C0-46DB-91F6-9AF51CD142B7@bsdimp.com> <20150716142329.4387b29de5d7fc9a2a9c27ab@strcmp.org> <CAB=2f8yMjZ4U3cNyCVt%2BemJQ7A5vGniuGevq0bQe36tw-RoR_Q@mail.gmail.com> <1437072916.1334.364.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> On 16 Jul 2015, at 20:55, Ian Lepore <ian@FreeBSD.org> wrote:
>=20
> On Thu, 2015-07-16 at 15:17 -0300, Luiz Otavio O Souza wrote:
>> On 16 July 2015 at 09:23, Andreas Schwarz wrote:
>>> On Wed, 15 Jul 2015 21:17:21 -0600
>>> Warner Losh wrote:
>>>=20
>>>>> On Jul 14, 2015, at 6:06 PM, Dan Raymond wrote:
>>>>>=20
>>>>> Is anyone else getting these errors during every boot?  I'm =
running r285346.
>>>>=20
>>>> I=E2=80=99ve been running on the RPi2 for some time and have never =
seen this. I haven=E2=80=99t
>>>> rebuild in the past few weeks though.
>>>>=20
>>>> Does this happen on either SD cards? Or other versions of the =
kernel?
>>>=20
>>> I've the same output (using generic RPI2 kernel conf).
>>=20
>> This is a side effect of r283128, if you comment that line that
>> re-select the card, CMD7 won't fail.
>>=20
>> This also affects the MMC controller on Allwinner SoCs.
>=20
> Hmm, so some cards deselect themselves when they shouldn't, and our
> workaround that reselects them fails if the card didn't deselect =
itself.
> Maybe it will work for all cards/controllers if we explicitly deselect
> then reselect the card at that point.  (This only happens once at
> card-insert/boot time, so it shouldn't impact performance.)
>=20
> The attached patch adds the explicit deselect; it may or may not help.
> (I haven't tested this at all).
>=20
> -- Ian
>=20
> Index: mmc.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- mmc.c	(revision 285419)
> +++ mmc.c	(working copy)
> @@ -1392,6 +1392,7 @@ mmc_discover_cards(struct mmc_softc *sc)
> 			 * out. Others seem to handle it correctly, so =
it may
> 			 * be a combination of card and controller.
> 			 */
> +			mmc_select_card(sc, 0);
> 			mmc_select_card(sc, ivar->rca);
> 			mmc_app_sd_status(sc, ivar->rca, =
ivar->raw_sd_status);
> 			mmc_app_decode_sd_status(ivar->raw_sd_status,

That resolves the issue:

> dmesg
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2015 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights =
reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 11.0-CURRENT #29 r285595M: Thu Jul 16 21:27:50 CEST 2015
    tuexen@rpi2:/usr/home/tuexen/head/sys/arm/compile/RPI2 arm
FreeBSD clang version 3.6.0 (tags/RELEASE_360/final 230434) 20150225
VT: init without driver.
sema_sysinit
CPU: Cortex A7 rev 5 (Cortex-A core)
 Supported features: ARM_ISA THUMB2 JAZELLE THUMBEE ARMv4 Security_Ext
 WB disabled EABT branch prediction enabled
LoUU:2 LoC:3 LoUIS:2=20
Cache level 1:=20
 32KB/64B 4-way data cache WB Read-Alloc Write-Alloc
 32KB/32B 2-way instruction cache Read-Alloc
Cache level 2:=20
 512KB/64B 8-way unified cache WB Read-Alloc Write-Alloc
real memory  =3D 989851648 (943 MB)
avail memory =3D 958423040 (914 MB)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
random: entropy device external interface
kbd0 at kbdmux0
ofwbus0: <Open Firmware Device Tree>
simplebus0: <Flattened device tree simple bus> mem 0x3f000000-0x3fffffff =
on ofwbus0
bcm28360: <Broadcom bcm2836>
generic_timer0: <ARMv7 Generic Timer> irq 72,73,75,74 on ofwbus0
Timecounter "ARM MPCore Timecounter" frequency 19200000 Hz quality 1000
Event timer "ARM MPCore Eventtimer" frequency 19200000 Hz quality 1000
intc0: <BCM2835 Interrupt Controller> mem 0xb200-0xb3ff on simplebus0
bcmwd0: <BCM2708/2835 Watchdog> mem 0x10001c-0x100027 on simplebus0
gpio0: <BCM2708/2835 GPIO controller> mem 0x200000-0x2000af irq =
57,59,58,60 on simplebus0
gpio0: read-only pins: 46,48-53.
gpio0: reserved pins: 48-53.
gpiobus0: <OFW GPIO bus> on gpio0
gpioled0: <GPIO led> at pin(s) 35 on gpiobus0
gpioled1: <GPIO led> at pin(s) 47 on gpiobus0
gpioc0: <GPIO controller> on gpio0
iichb0: <BCM2708/2835 BSC controller> mem 0x205000-0x20501f irq 61 on =
simplebus0
iicbus0: <OFW I2C bus> on iichb0
iic0: <I2C generic I/O> on iicbus0
iichb1: <BCM2708/2835 BSC controller> mem 0x804000-0x80401f irq 61 on =
simplebus0
iicbus1: <OFW I2C bus> on iichb1
iic1: <I2C generic I/O> on iicbus1
spi0: <BCM2708/2835 SPI controller> mem 0x204000-0x20401f irq 62 on =
simplebus0
spibus0: <OFW SPI bus> on spi0
bcm_dma0: <BCM2835 DMA Controller> mem 0x7000-0x7fff,0xe05000-0xe05fff =
irq 24,25,26,27,28,29,30,31,32,33,34,35,36 on simplebus0
mbox0: <BCM2835 VideoCore Mailbox> mem 0xb880-0xb8bf irq 1 on simplebus0
sdhci_bcm0: <Broadcom 2708 SDHCI controller> mem 0x300000-0x3000ff irq =
70 on simplebus0
mmc0: <MMC/SD bus> on sdhci_bcm0
uart0: <PrimeCell UART (PL011)> mem 0x201000-0x201fff irq 65 on =
simplebus0
uart0: console (115200,n,8,1)
vchiq0: <BCM2835 VCHIQ> mem 0xb800-0xb84f irq 2 on simplebus0
vchiq0: [GIANT-LOCKED]
vchiq: local ver 6 (min 3), remote ver 6.
pcm0: <VCHQI audio> on vchiq0
bcm283x_dwcotg0: <DWC OTG 2.0 integrated USB controller (bcm283x)> mem =
0x980000-0x99ffff irq 17 on simplebus0
usbus0 on bcm283x_dwcotg0
cpulist0: <Open Firmware CPU Group> on ofwbus0
cpu0: <Open Firmware CPU> on cpulist0
bcm2835_cpufreq0: <CPU Frequency Control> on cpu0
cpu1: <Open Firmware CPU> on cpulist0
cpu2: <Open Firmware CPU> on cpulist0
cpu3: <Open Firmware CPU> on cpulist0
fb0: <BCM2835 VT framebuffer driver> on ofwbus0
fbd0 on fb0
VT: initialize with new VT driver "fb".
fb0: 656x416(656x416@0,0) 24bpp
fb0: fbswap: 1, pitch 1968, base 0x3daac000, screen_size 818688
cryptosoft0: <software crypto>
Timecounters tick every 10.000 msec
IPsec: Initialized Security Association Processing.
usbus0: 480Mbps High Speed USB v2.0
ugen0.1: <DWCOTG> at usbus0
uhub0: <DWCOTG OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
mmcsd0: 32GB <SDHC SL32G 8.0 SN 03A82991 MFG 12/2014 by 3 SD> at mmc0 =
41.6MHz/4bit/65535-block
bcm2835_cpufreq0: ARM 600MHz, Core 250MHz, SDRAM 400MHz, Turbo OFF
Release APs
Root mount waiting for: usbus0
uhub0: 1 port with 1 removable, self powered
ugen0.2: <vendor 0x0424> at usbus0
uhub1: <vendor 0x0424 product 0x9514, class 9/0, rev 2.00/2.00, addr 2> =
on usbus0
uhub1: MTT enabled
Root mount waiting for: usbus0
uhub1: 5 ports with 4 removable, self powered
Root mount waiting for: usbus0
ugen0.3: <vendor 0x0424> at usbus0
smsc0: <vendor 0x0424 product 0xec00, rev 2.00/2.00, addr 3> on usbus0
Trying to mount root from ufs:/dev/mmcsd0s2a [rw,noatime]...
warning: no time-of-day clock registered, system time will not be set =
accurately
smsc0: chip 0xec00, rev. 0002
miibus0: <MII bus> on smsc0
ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0
ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ue0: <USB Ethernet> on smsc0
ue0: Ethernet address: b8:27:eb:81:ba:40
random: unblocking device.
smsc0: chip 0xec00, rev. 0002
ue0: link state changed to DOWN
ue0: link state changed to UP
>=20

Best regards
Michael
> _______________________________________________
> freebsd-arm@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16AF6CE1-675C-49C2-9D98-DB1FB8656E1C>