RPI2 boot failure with recent changes to u-boot

Karl Denninger karl at denninger.net
Mon Dec 18 17:52:43 UTC 2017


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:
>>> I recently upgraded my "u-boot" package for RPI2 to the current
>>> version
>>> (and grabbed the "rpi-firmware" package it said it needed) and now I
>>> have no-start on the RPI2....
>>>
>>> U-Boot 2017.09 (Dec 12 2017 - 18:48:47 +0000)
>>>
>>> DRAM:  948 MiB
>>> RPI 2 Model B (0xa21041)
>>> MMC:   sdhci at 7e300000: 0
>>> reading uboot.env
>>>
>>> ** Unable to read "uboot.env" from mmc0:1 **
>>> Using default environment
>>>
>>> In:    serial
>>> Out:   vidconsole
>>> Err:   vidconsole
>>> Net:   No ethernet found.
>>> starting USB...
>>> USB0:   Core Release: 2.80a
>>> scanning bus 0 for devices... 3 USB Device(s) found
>>>        scanning usb for storage devices... 0 Storage Device(s) found
>>> Hit any key to stop autoboot:  0
>>> switch to partitions #0, OK
>>> mmc0 is current device
>>> Scanning mmc 0:1...
>>> Found FreeBSD U-Boot Loader (bin)
>>> reading ubldr.bin
>>> 227704 bytes read in 34 ms (6.4 MiB/s)
>>> ## Starting application at 0x01000000 ...
>>>
>>> And that be all I get.
>>>
>>> This is what I have in board/RaspberryPi2/setup.sh related to that
>>> (which I had to change since the firmware files have been split
>>> between
>>> the two packages)
>>>
>>> raspberry_pi_populate_boot_partition ( ) {
>>>     # Copy RaspberryPi 2 boot files to FAT partition
>>>     cp ${FIRMWARE_PATH}/LICENCE.broadcom .
>>>     cp ${FIRMWARE_PATH}/bootcode.bin .
>>>     cp ${FIRMWARE_PATH}/config.txt .
>>>     cp ${FIRMWARE_PATH}/fixup.dat .
>>>     cp ${FIRMWARE_PATH}/fixup_cd.dat .
>>>     cp ${FIRMWARE_PATH}/fixup_x.dat .
>>>     cp ${FIRMWARE_PATH}/start.elf .
>>>     cp ${FIRMWARE_PATH}/start_cd.elf .
>>>     cp ${FIRMWARE_PATH}/start_x.elf .
>>>     cp ${UBOOT_PATH}/u-boot.bin .
>>>     cp ${UBOOT_PATH}/fixup_db.dat .
>>>     cp ${UBOOT_PATH}/start_db.elf .
>>>     cp ${UBOOT_PATH}/README .
>>>
>>>     # RPi firmware loads and modify the DTB before pass it to kernel.
>>>     freebsd_install_fdt rpi2.dts rpi2.dtb
>>>
>>>     # Install ubldr to FAT partition
>>>     freebsd_ubldr_copy_ubldr .
>>> }
>>>
>>> Any ideas on tracking this down?
>>>
>> How recent is your ubldr.bin?  About a week ago in r326752 I committed
>> the patches from PR 224008, which affects the startup code for
>> ubldr.bin, so it could possibly be a fix for the problem you're seeing.
>>
>> (I don't have an rpi2 to test so I can't say for sure.)
>>
>> -- Ian
> I updated the 11.x source tree I use to build this and now I get
> further.....
>
> U-Boot 2017.09 (Dec 12 2017 - 18:48:47 +0000)
>
> DRAM:  948 MiB
> RPI 2 Model B (0xa21041)
> MMC:   sdhci at 7e300000: 0
> reading uboot.env
>
> ** Unable to read "uboot.env" from mmc0:1 **
> Using default environment
>
> In:    serial
> Out:   vidconsole
> Err:   vidconsole
> Net:   No ethernet found.
> starting USB...
> USB0:   Core Release: 2.80a
> scanning bus 0 for devices... 3 USB Device(s) found
>        scanning usb for storage devices... 0 Storage Device(s) found
> Hit any key to stop autoboot:  0
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> Found FreeBSD U-Boot Loader (bin)
> reading ubldr.bin
> 235040 bytes read in 33 ms (6.8 MiB/s)
> ## Starting application at 0x01000000 ...
> Consoles: U-Boot console
> Compatible U-Boot API signature found @0x3af5d988
>
> FreeBSD/armv6 U-Boot loader, Revision 1.2
> (Mon Dec 18 11:14:37 CST 2017 freebsd at NewFS.denninger.net)
>
> DRAM: 948MB
> Number of U-Boot devices: 1
> U-Boot env: loaderdev not set, will probe all devices.
> Found U-Boot device: disk
>   Probing all disk devices...
>   Checking unit=0 slice=<auto> partition=<auto>... good.
> Booting from disk0s2a:
> /boot/kernel/kernel text=0x617118 data=0x54300+0x17fbc0
> syms=[0x4+0x67d30+0x4+0x9480c]
>
> Hit [Enter] to boot immediately, or any other key for command prompt.
> Booting [/boot/kernel/kernel]...
> No valid device tree blob found!
>
> Type '?' for a list of commands, 'help' for more detailed help.
> loader>
>
>
> Am  I missing a line in config.txt that needs to be there or did
> something else odd happen that the dtb is missing?
>
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: <Open Firmware Device Tree>
simplebus0: <Flattened device tree simple bus> mem 0x3f000000-0x3fffffff
on ofwbus0
local_intc0: <BCM2836 Interrupt Controller> mem 0x40000000-0x400000ff on
simplebus0
intc0: <BCM2835 Interrupt Controller> mem 0xb200-0xb3ff irq 4 on simplebus0
generic_timer0: <ARMv7 Generic Timer> 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: <BCM2708/2835 Watchdog> mem 0x10001c-0x100027 on simplebus0
gpio0: <BCM2708/2835 GPIO controller> mem 0x200000-0x2000af irq 5,6,7,8
on simplebus0
gpio0: read-only pins: 46,48-53.
gpio0: reserved pins: 48-53.
gpiobus0: <OFW GPIO bus> on gpio0
gpioc0: <GPIO controller> on gpio0
iichb0: <BCM2708/2835 BSC controller> mem 0x205000-0x20501f irq 9 on
simplebus0
iichb1: <BCM2708/2835 BSC controller> mem 0x804000-0x80401f irq 10 on
simplebus0
spi0: <BCM2708/2835 SPI controller> mem 0x204000-0x20401f irq 11 on
simplebus0
spibus0: <OFW SPI bus> on spi0
bcm_dma0: <BCM2835 DMA Controller> mem 0x7000-0x7fff,0xe05000-0xe05fff
irq 12,13,14,15,16,17,18,19,20,21,22,23,24 on simplebus0
mbox0: <BCM2835 VideoCore Mailbox> mem 0xb880-0xb8bf irq 25 on simplebus0
sdhci_bcm0: <Broadcom 2708 SDHCI controller> mem 0x300000-0x3000ff irq
26 on simplebus0
uart0: <PrimeCell UART (PL011)> mem 0x201000-0x201fff irq 27 on simplebus0
uart0: console (115200,n,8,1)
vchiq0: <BCM2835 VCHIQ> mem 0xb800-0xb84f irq 28 on simplebus0
vchiq: local ver 8 (min 3), remote ver 8.
pcm0: <VCHIQ audio> on vchiq0
bcm283x_dwcotg0: <DWC OTG 2.0 integrated USB controller (bcm283x)> mem
0x980000-0x99ffff irq 29 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 at 0,0) 24bpp
fb0: fbswap: 1, pitch 1968, base 0x3eb33000, screen_size 818688
gpioled0: <GPIO LEDs> on ofwbus0
cryptosoft0: <software crypto>
Timecounters tick every 1.000 msec
iicbus0: <OFW I2C bus> on iichb0
iic0: <I2C generic I/O> on iicbus0
iicbus1: <OFW I2C bus> on iichb1
iic1: <I2C generic I/O> on iicbus1
usbus0: 480Mbps High Speed USB v2.0
bcm2835_cpufreq0: ARM 600MHz, Core 250MHz, SDRAM 400MHz, Turbo OFF
ugen0.1: <DWCOTG OTG Root HUB> at usbus0
uhub0: <DWCOTG OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> 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: <vendor 0x0424 product 0x9514> at usbus0
uhub1 on uhub0
uhub1: <vendor 0x0424 product 0x9514, class 9/0, rev 2.00/2.00, addr 2>
on usbus0
uhub1: MTT enabled
uhub1: 5 ports with 4 removable, self powered
Root mount waiting for: usbus0
ugen0.3: <vendor 0x0424 product 0xec00> at usbus0
smsc0 on uhub1
smsc0: <vendor 0x0424 product 0xec00, rev 2.00/2.00, addr 3> on usbus0
mountroot: waiting for device /dev/mmcsd0s2a...
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: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:
  <fstype>:<device> [options]
      Mount <device> using filesystem <fstype>
      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)
  <empty line>    Abort manual input

mountroot> ?

List of GEOM managed disk devices:


mountroot>


-- 
Karl Denninger
karl at denninger.net <mailto:karl at denninger.net>
/The Market Ticker/
/[S/MIME encrypted email preferred]/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4897 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20171218/074112e7/attachment.bin>


More information about the freebsd-arm mailing list