RPI2 boot failure with recent changes to u-boot

Ian Lepore ian at freebsd.org
Mon Dec 18 18:02:18 UTC 2017


On Mon, 2017-12-18 at 11:52 -0600, Karl Denninger wrote:
> On 12/18/2017 11:25, Karl Denninger wrote:
> > 
> > On 12/18/2017 10:31, Ian Lepore wrote:
> > > 
> > > On Mon, 2017-12-18 at 10:24 -0600, Karl Denninger wrote:
> > > > 
> > > > [...]
> > 
> Back and forth with Ian a bit, added the dtb file declaration to
> config.txt in the dos partition (and it's load address) and now the
> kernel comes up but the disk device is missing, and thus the mount
> fails.....
> 
> Hit [Enter] to boot immediately, or any other key for command prompt.
> Booting [/boot/kernel/kernel]...
> Using DTB provided by U-Boot at address 0x100.
> Kernel entry at 0x1200180...
> Kernel args: (null)
> Copyright (c) 1992-2017 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.1-STABLE #0 r326933M: Mon Dec 18 11:14:31 CST 2017
>    
> freebsd at NewFS.denninger.net:/pics/Crochet-work/obj/arm.armv6/pics/CrossBuild/src/sys/RPI2
> arm
> FreeBSD clang version 5.0.0 (tags/RELEASE_500/final 312559) (based on
> LLVM 5.0.0svn)
> VT: init without driver.
> CPU: ARM Cortex-A7 r0p5 (ECO: 0x00000000)
> CPU Features:
>   Multiprocessing, Thumb2, Security, Virtualization, Generic Timer, VMSAv7,
>   PXN, LPAE, Coherent Walk
> Optional instructions:
>   SDIV/UDIV, UMULL, SMULL, SIMD(ext)
> LoUU:2 LoC:3 LoUIS:2
> Cache level 1:
>  32KB/64B 4-way data cache WB Read-Alloc Write-Alloc
>  32KB/32B 2-way instruction cache Read-Alloc
> Cache level 2:
>  512KB/64B 8-way unified cache WB Read-Alloc Write-Alloc
> real memory  = 994045952 (947 MB)
> avail memory = 961916928 (917 MB)
> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
> random: entropy device external interface
> kbd0 at kbdmux0
> ofwbus0: 
> simplebus0:  mem 0x3f000000-0x3fffffff
> on ofwbus0
> local_intc0:  mem 0x40000000-0x400000ff on
> simplebus0
> intc0:  mem 0xb200-0xb3ff irq 4 on simplebus0
> generic_timer0:  irq 0,1,2,3 on ofwbus0
> Timecounter "ARM MPCore Timecounter" frequency 19200000 Hz quality 1000
> Event timer "ARM MPCore Eventtimer" frequency 19200000 Hz quality 1000
> bcmwd0:  mem 0x10001c-0x100027 on simplebus0
> gpio0:  mem 0x200000-0x2000af irq 5,6,7,8
> on simplebus0
> gpio0: read-only pins: 46,48-53.
> gpio0: reserved pins: 48-53.
> gpiobus0:  on gpio0
> gpioc0:  on gpio0
> iichb0:  mem 0x205000-0x20501f irq 9 on
> simplebus0
> iichb1:  mem 0x804000-0x80401f irq 10 on
> simplebus0
> spi0:  mem 0x204000-0x20401f irq 11 on
> simplebus0
> spibus0:  on spi0
> bcm_dma0:  mem 0x7000-0x7fff,0xe05000-0xe05fff
> irq 12,13,14,15,16,17,18,19,20,21,22,23,24 on simplebus0
> mbox0:  mem 0xb880-0xb8bf irq 25 on simplebus0
> sdhci_bcm0:  mem 0x300000-0x3000ff irq
> 26 on simplebus0

Right here is where it turns strange, because the next line after
sdhci_bcm0: should be this one:

mmc0: <MMC/SD bus> on sdhci_bcm0

The only thing I can think of that would cause it to be missing is if
"device mmc" is missing from the kernel config.  It's also available as
a module, so you could try interrupting ubldr to get the prompt and do
"load mmc".

If that's not the problem, maybe the output from "boot -v" will have
more clues.

-- Ian

> uart0: <PrimeCell UART (PL011)> mem 0x201000-0x201fff irq 27 on simplebus0
> uart0: console (115200,n,8,1)
> vchiq0:  mem 0xb800-0xb84f irq 28 on simplebus0
> vchiq: local ver 8 (min 3), remote ver 8.
> pcm0:  on vchiq0
> bcm283x_dwcotg0:  mem
> 0x980000-0x99ffff irq 29 on simplebus0
> usbus0 on bcm283x_dwcotg0
> cpulist0:  on ofwbus0
> cpu0:  on cpulist0
> bcm2835_cpufreq0:  on cpu0
> cpu1:  on cpulist0
> cpu2:  on cpulist0
> cpu3:  on cpulist0
> fb0:  on ofwbus0
> fbd0 on fb0
> VT: initialize with new VT driver "fb".
> fb0: 656x416(656x416 at 0,0) 24bpp
> fb0: fbswap: 1, pitch 1968, base 0x3eb33000, screen_size 818688
> gpioled0:  on ofwbus0
> cryptosoft0: 
> Timecounters tick every 1.000 msec
> iicbus0:  on iichb0
> iic0:  on iicbus0
> iicbus1:  on iichb1
> iic1:  on iicbus1
> usbus0: 480Mbps High Speed USB v2.0
> bcm2835_cpufreq0: ARM 600MHz, Core 250MHz, SDRAM 400MHz, Turbo OFF
> ugen0.1:  at usbus0
> uhub0:  on usbus0
> Release APs
> Trying to mount root from ufs:/dev/mmcsd0s2a [ro]...
> Root mount waiting for: usbus0
> uhub0: 1 port with 1 removable, self powered
> Root mount waiting for: usbus0
> ugen0.2:  at usbus0
> uhub1 on uhub0
> uhub1: 
> on usbus0
> uhub1: MTT enabled
> uhub1: 5 ports with 4 removable, self powered
> Root mount waiting for: usbus0
> ugen0.3:  at usbus0
> smsc0 on uhub1
> smsc0:  on usbus0
> mountroot: waiting for device /dev/mmcsd0s2a...
> smsc0: chip 0xec00, rev. 0002
> miibus0:  on smsc0
> ukphy0:  PHY 1 on miibus0
> ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
> ue0:  on smsc0
> ue0: Ethernet address: b8:27:eb:be:e6:f8
> Mounting from ufs:/dev/mmcsd0s2a failed with error 19.
> Trying to mount root from ufs:mmcsd0s2 []...
> mountroot: waiting for device mmcsd0s2...
> Mounting from ufs:mmcsd0s2 failed with error 19.
> 
> Loader variables:
>   vfs.root.mountfrom=ufs:/dev/mmcsd0s2a
>   vfs.root.mountfrom.options=ro
> 
> Manual root filesystem specification:
>   : [options]
>       Mount  using filesystem 
>       and with the specified (optional) option list.
> 
>     eg. ufs:/dev/da0s1a
>         zfs:tank
>         cd9660:/dev/cd0 ro
>           (which is equivalent to: mount -t cd9660 -o ro /dev/cd0 /)
> 
>   ?               List valid disk boot devices
>   .               Yield 1 second (for background tasks)
>       Abort manual input
> 
> mountroot> ?
> 
> List of GEOM managed disk devices:
> 
> 
> mountroot>
> 
> 


More information about the freebsd-arm mailing list