Skip to content

Instantly share code, notes, and snippets.

@NF3RN0
Created November 20, 2018 20:13
Show Gist options
  • Save NF3RN0/979fb6fba82e5afeb71637550964a723 to your computer and use it in GitHub Desktop.
Save NF3RN0/979fb6fba82e5afeb71637550964a723 to your computer and use it in GitHub Desktop.
rpi-open-firmware boot messages on a Raspberry PI 3 B Plus
Booting Raspberry Pi....
Copyright 2016-2017 rpi-open-firmware authors
BUILDATE : Nov 20 2018 04:41:15
__cxx_init: calling 5 static constructors (0x14000 - 0x14014) ...
BCM2708UsbPhy::registerDriver(): driver registered on platform IO plane
BCM2708ArmControl::registerDriver(): driver registered on platform IO plane
BCM2708PLLB::init(): PLLB VCO registered
BCM2708PLLB::registerDriver(): driver registered on platform IO plane
BCM2708Gpio::registerDriver(): driver registered on platform IO plane
[SDRAM:sdram_init]: (0) SD_CS = 0x794200
[SDRAM:switch_to_cprman_clock]: switching sdram to cprman clock (src=1, div=1), waiting for busy (4011) ...
[SDRAM:switch_to_cprman_clock]: busy set, switch complete!
[SDRAM:reset_phy]: reset_phy: resetting SDRAM PHY ...
[SDRAM:reset_phy]: reset_phy: resetting DPHY CTRL ...
[SDRAM:reset_phy_dll]: resetting aphy and dphy dlls ...
[SDRAM:reset_phy_dll]: waiting for dphy master dll to lock ...
[SDRAM:reset_phy_dll]: dphy master dll locked!
[SDRAM:sdram_init]: waiting for SDUP (210242) ...
[SDRAM:sdram_init]: SDRAM controller has arrived! (218E42)
[SDRAM:calibrate_pvt_early]: DPHY_CSR_DQ_PAD_DRV_SLEW_CTRL = 0x223
[SDRAM:calibrate_pvt_early]: waiting for address PVT calibration ...
[SDRAM:calibrate_pvt_early]: waiting for data PVT calibration ...
[SDRAM:calibrate_pvt_early]: waiting for SDRAM calibration command ...
[SDRAM:sdram_init]: SDRAM Type: Elpida 1GB LPDDR2 (BC=0x58)
[SDRAM:reset_with_timing]: waiting for SDRAM controller to go down (218E4A) ...
[SDRAM:reset_with_timing]: SDRAM controller down!
[SDRAM:reset_with_timing]: SDRAM clock disabled!
[SDRAM:reset_with_timing]: waiting for master ddr pll to lock ...
[SDRAM:reset_with_timing]: master ddr pll locked!
[SDRAM:reset_with_timing]: SDRAM Addressing Mode: Bank=3 Row=3 Col=3 SB=0xFF
[SDRAM:reset_phy_dll]: resetting aphy and dphy dlls ...
[SDRAM:reset_phy_dll]: waiting for dphy master dll to lock ...
[SDRAM:reset_phy_dll]: dphy master dll locked!
[SDRAM:reset_with_timing]: waiting for address dll to lock ...
[SDRAM:reset_with_timing]: address dll locked!
[SDRAM:selftest]: Starting self test ...
[SDRAM:selftest_at]: Testing region at 0xC0000000 ...
[SDRAM:selftest_at]: Testing region at 0xCFF00000 ...
[SDRAM:selftest_at]: Testing region at 0xDFF00000 ...
[SDRAM:selftest_at]: Testing region at 0xEFF00000 ...
[SDRAM:selftest_at]: Testing region at 0xFFF00000 ...
[SDRAM:selftest]: Self test successful!
SDRAM initialization completed successfully!
BCM2708PowerDomainUSB::stop(): stopping ...
BCM2708PowerDomainUSB::stop(): stopped
BCM2708PowerDomainImage::powerOn(): powering on, current PM_IMAGE state: 0x1000
BCM2708PowerDomainImage::beginPowerUpSequence(): starting power up sequence ...
BCM2708PowerDomainImage::waitForPOWOK(): waiting for POWOK ...
BCM2708PowerDomainImage::waitForPOWOK(): got POWOK with CFG=0x10000
BCM2708PowerDomainImage::powerOn(): stopping power up sequence ...
BCM2708PowerDomainImage::beginPowerUpSequence(): starting power up sequence ...
BCM2708PowerDomainImage::waitForPOWOK(): waiting for POWOK ...
BCM2708PowerDomainImage::waitForPOWOK(): got POWOK with CFG=0x30000
BCM2708PowerDomainImage::completePowerUpSequence(): waiting for MRDONE ...
BCM2708PowerDomainImage::resetPeripheralsUngated(): calling v16mov gated ...
BCM2708PowerDomainImage::resetPeripheralsUngated(): ungating and resetting ...
BCM2708PowerDomainImage::resetPeripheralsUngated(): done
BCM2708PowerDomainImage::start(): CM_PERIICTL = 0x40
BCM2708PowerDomainImage::start(): CM_PERIIDIV = 0x0
BCM2708PowerDomainImage::start(): PM_IMAGE = 0x3107F
BCM2708PowerDomainImage::start(): started
BCM2708PowerDomainUSB::start(): starting ...
BCM2708PowerDomainUSB::start(): started
BCM2708UsbPhy::start(): starting ...
BCM2708UsbPhy::start(): LAN reset
BCM2708UsbPhy::start(): started
BCM2708ArmControl::start(): starting ...
BCM2708ArmControl::loadInitialCode(): copied 57412 bytes to 0xC0000000!
BCM2708ArmControl::start(): original memstart: 0xEA000039
BCM2708ArmControl::start(): mapped VC 0xC0000000 to ARM 0x0
BCM2708ArmControl::start(): mapped peripherals VC 0x7E000000 to ARM 0x3F000000
BCM2708ArmControl::start(): ARM ID: 0x364D5241 C0: 0x0
BCM2708ArmControl::start(): using C0: 0xA04B
BCM2708ArmControl::setupClock(): initializing PLLB ...
BCM2708PLLB::setDigValues(): setting DIG values for this VCO ...
BCM2708ArmControl::setupClock(): KAIP = 0x228
BCM2708ArmControl::setupClock(): MULTI = 0x613277
BCM2708ArmControl::setupClock(): ARM clock succesfully initialized!
BCM2708PowerDomainARM::start(): starting ...
BCM2708PowerDomainARM::powerOn(): powering on (rstnMask=0xFFFFFFBF) ...
BCM2708PowerDomainARM::beginPowerUpSequence(): starting power up sequence ...
BCM2708PowerDomainARM::waitForPOWOK(): waiting for POWOK ...
BCM2708PowerDomainARM::waitForPOWOK(): got POWOK with CFG=0x0
BCM2708PowerDomainARM::completePowerUpSequence(): waiting for MRDONE ...
BCM2708PowerDomainARM::powerOn(): domain powered on succesfully
BCM2708PowerDomainARM::start(): started
BCM2708ArmControl::bridgeStart(): setting up async bridge ...
BCM2708PowerDomainARM::setReset(): setting RSTN bits to 0x40 ...
BCM2708ArmControl::bridgeCycleBresp(): cycling through bresp bits ...
BCM2708PowerDomainARM::setReset(): setting RSTN bits to 0x40 ...
BCM2708ArmControl::bridgeStart(): starting async bridge now!
BCM2708ArmControl::bridgeStart(): bridge init done, PM_PROC is now: 0x107F!
Starting IPC monitor ...
M, continuing boot from here ...
[BRINGUP:main]: Firmware data: SDRAM_SIZE=0, VPU_CPUID=0x4000140
[BRINGUP:main]: Security extensions are supported!
[BRINGUP:main]: Execution mode: Supervisor
[BRINGUP:heap_init]: Initializing heap at 0x24000 with size 0x100000
__cxx_init: calling 4 static constructors (0xE000 - 0xE010) ...
[EMMC:restart_controller]: hcfg 0xE, cdiv 0x0, edm 0x8C01, hsts 0x0
[EMMC:restart_controller]: Restarting the eMMC controller ...
[EMMC:configure_pinmux]: waiting for pinmux pull update ...
[EMMC:configure_pinmux]: waiting for pinmux clock update ...
[EMMC:configure_pinmux]: ok ...
[EMMC:configure_pinmux]: pinmux configured for aux0
[EMMC:reset]: resetting controller ...
[EMMC:query_voltage_and_type]: waiting for SD (0xff8000) ...
[EMMC:query_voltage_and_type]: SD card has arrived!
[EMMC:query_voltage_and_type]: This is an SDHC card!
[EMMC:identify_card]: identifying card ...
[EMMC:identify_card]: RCA = 0x7
[EMMC:init_card]: Detected SD card:
Product : SD08G
CSD : Ver 2.0
Capacity: 15564800
Size : 15199
BlockLen: 0x200
[EMMC:init_card]: Card initialization complete: SD08G 3504MB SDHC Card
[EMMC:init_card]: Identification complete, changing clock to 50MHz for data mode ...
[EMMC:BCM2708SDHost]: eMMC driver sucessfully started!
[MBRDISK:read_mbr]: Reading master boot record ...
[MBRDISK:read_mbr]: MBR contents:
0: FAT32 at:8192 size:2097152
1: Linux (ext2/ext3) at:2105344 size:13459456
2: <Unknown> at:0 size:0
3: <Unknown> at:0 size:0
[MBRDISK:MbrImpl]: Disk ready!
[LDR:LoaderImpl]: Mounting boot partitiion ...
[LDR:LoaderImpl]: Boot partition mounted!
[LDR:read_file]: cmdline.txt: reading 56 bytes to 0x24E90 (allocated=1) ...
[LDR:LoaderImpl]: kernel cmdline: console=ttyAMA0,115200 elevator=deadline rdinit=/bin/sh
[LDR:read_file]: rpi.dtb: reading 15992 bytes to 0xF000000 (allocated=0) ...
[LDR:load_fdt]: FDT loaded at F000000
[LDR:load_fdt]: (valid) fdt loaded at 0xF000000
[LDR:read_file]: zImage: reading 4076016 bytes to 0x2000000 (allocated=0) ...
[LDR:LoaderImpl]: zImage loaded at 0x2000000
[LDR:LoaderImpl]: Flushing....
[EMMC:stop]: flushing fifo ...
[EMMC:stop]: asking card to enter idle state ...
[EMMC:stop]: stopping sdhost controller driver ...
[EMMC:stop]: powering down controller ...
[EMMC:stop]: resetting state machine ...
[LDR:LoaderImpl]: Jumping to the Linux kernel...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.4.31-v7+ (root@vc4-build-11-19-18) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) ) #1 Tue Nov 20 04:51:54 UTC 2018
[ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: Raspberry Pi 3 Model B
[ 0.000000] cma: Reserved 8 MiB at 0x2f800000
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] ------------[ cut here ]------------
[ 0.000000] WARNING: CPU: 0 PID: 0 at arch/arm/kernel/devtree.c:157 arm_dt_init_cpu_maps+0x140/0x180()
[ 0.000000] DT /cpu 2 nodes greater than max cores 1, capping them
[ 0.000000] Modules linked in:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.4.31-v7+ #1
[ 0.000000] Hardware name: BCM2709
[ 0.000000] [<80016d6c>] (unwind_backtrace) from [<80013c54>] (show_stack+0x20/0x24)
[ 0.000000] [<80013c54>] (show_stack) from [<8029657c>] (dump_stack+0x24/0x28)
[ 0.000000] [<8029657c>] (dump_stack) from [<80023050>] (warn_slowpath_common+0x94/0xc0)
[ 0.000000] [<80023050>] (warn_slowpath_common) from [<800230bc>] (warn_slowpath_fmt+0x40/0x48)
[ 0.000000] [<800230bc>] (warn_slowpath_fmt) from [<805887f8>] (arm_dt_init_cpu_maps+0x140/0x180)
[ 0.000000] [<805887f8>] (arm_dt_init_cpu_maps) from [<80588374>] (setup_arch+0x718/0x780)
[ 0.000000] [<80588374>] (setup_arch) from [<80584a14>] (start_kernel+0x94/0x3bc)
[ 0.000000] [<80584a14>] (start_kernel) from [<00008074>] (0x8074)
[ 0.000000] ---[ end trace cb88537fdc8fa200 ]---
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 194879
[ 0.000000] Kernel command line: console=ttyAMA0,115200 elevator=deadline rdinit=/bin/sh
[ 0.000000]
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 762428K/786428K available (4360K kernel code, 285K rwdata, 1252K rodata, 1448K init, 568K bss, 15808K reserved, 8192K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xb0800000 - 0xff800000 (1264 MB)
[ 0.000000] lowmem : 0x80000000 - 0xb0000000 ( 768 MB)
[ 0.000000] modules : 0x7f000000 - 0x80000000 ( 16 MB)
[ 0.000000] .text : 0x80008000 - 0x80583408 (5614 kB)
[ 0.000000] .init : 0x80584000 - 0x806ee000 (1448 kB)
[ 0.000000] .data : 0x806ee000 - 0x80735458 ( 286 kB)
[ 0.000000] .bss : 0x80738000 - 0x807c61d8 ( 569 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] Architected cp15 timer(s) running at 19.20MHz (virt).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[ 0.000008] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[ 0.000026] Switching to timer-based delay loop, resolution 52ns
[ 0.000253] Console: colour dummy device 80x30
[ 0.000280] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[ 0.000300] pid_max: default: 32768 minimum: 301
[ 0.000577] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000594] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.001442] Disabling cpuset control group subsystem
[ 0.001471] Initializing cgroup subsys io
[ 0.001496] Initializing cgroup subsys memory
[ 0.001532] Initializing cgroup subsys devices
[ 0.001552] Initializing cgroup subsys freezer
[ 0.001584] CPU: Testing write buffer coherency: ok
[ 0.001632] ftrace: allocating 14415 entries in 43 pages
[ 0.039562] Setting up static identity map for 0x8200 - 0x8234
[ 0.040557] devtmpfs: initialized
[ 0.048031] VFP support v0.3: not present
[ 0.048244] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.049022] pinctrl core: initialized pinctrl subsystem
[ 0.054436] DMA: preallocated 4096 KiB pool for atomic coherent allocations
[ 0.060119] bcm2709: Mini UART enabled
[ 0.060155] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.060167] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.060255] Serial: AMBA PL011 UART driver
[ 0.060397] uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe
[ 0.098770] SCSI subsystem initialized
[ 0.099000] usbcore: registered new interface driver usbfs
[ 0.099103] usbcore: registered new interface driver hub
[ 0.099187] usbcore: registered new device driver usb
[ 0.099691] clocksource: Switched to clocksource arch_sys_counter
[ 0.142210] FS-Cache: Loaded
[ 0.142438] CacheFiles: Loaded
[ 0.273469] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[ 0.274384] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.286330] VFS: Disk quotas dquot_6.6.0
[ 0.286632] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.291207] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[ 0.291357] io scheduler noop registered
[ 0.291377] io scheduler deadline registered (default)
[ 0.291702] io scheduler cfq registered
[ 0.293123] of_serial: probe of 3f215040.uart failed with error -28
[ 1.305470] bcm2835-rng 3f104000.rng: hwrng registered
[ 1.305607] vc-mem: phys_addr:0x00000000 mem_base=0x00000000 mem_size:0x00000000(0 MiB)
[ 1.320004] brd: module loaded
[ 1.327302] loop: module loaded
[ 1.327551] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[ 1.527820] Core Release: 2.80a
[ 1.527835] Setting default values for core params
[ 1.527869] Finished setting default values for core params
[ 1.728272] Using Buffer DMA mode
[ 1.728285] Periodic Transfer Interrupt Enhancement - disabled
[ 1.728294] Multiprocessor Interrupt Enhancement - disabled
[ 1.728305] OTG VER PARAM: 0, OTG VER FLAG: 0
[ 1.728331] Dedicated Tx FIFOs mode
[ 1.729511] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xafc04000 dma = 0xefc04000 len=9024
[ 1.729545] FIQ FSM acceleration enabled for :
[ 1.729545] Non-periodic Split Transactions
[ 1.729545] Periodic Split Transactions
[ 1.729545] High-Speed Isochronous Endpoints
[ 1.729545] Interrupt/Control Split Transaction hack enabled
[ 1.729614] WARN::hcd_init_fiq:413: FIQ on core 0 at 0x80382694
[ 1.729629] WARN::hcd_init_fiq:414: FIQ ASM at 0x80382940 length 36
[ 1.729645] WARN::hcd_init_fiq:439: MPHI regs_base at 0xb0898000
[ 1.729715] dwc_otg 3f980000.usb: DWC OTG Controller
[ 1.729758] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[ 1.729815] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000
[ 1.729870] Init: Port Power? op_state=1
[ 1.729879] Init: Power Port (0)
[ 1.730060] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.730078] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.730094] usb usb1: Product: DWC OTG Controller
[ 1.730109] usb usb1: Manufacturer: Linux 4.4.31-v7+ dwc_otg_hcd
[ 1.730123] usb usb1: SerialNumber: 3f980000.usb
[ 1.730816] hub 1-0:1.0: USB hub found
[ 1.730863] hub 1-0:1.0: 1 port detected
[ 1.731586] usbcore: registered new interface driver usb-storage
[ 1.731798] mousedev: PS/2 mouse device common for all mice
[ 1.732014] sdhci: Secure Digital Host Controller Interface driver
[ 1.732023] sdhci: Copyright(c) Pierre Ossman
[ 1.732318] sdhost: log_buf @ afc03000 (efc03000)
[ 1.752438] mmc0: unable to initialise DMA channel. Falling back to PIO
[ 1.809715] mmc0: sdhost-bcm2835 loaded - DMA disabled
[ 1.809898] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.810171] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.810313] hidraw: raw HID events driver (C) Jiri Kosina
[ 1.810539] usbcore: registered new interface driver usbhid
[ 1.810549] usbhid: USB HID core driver
[ 1.833129] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2
[ 2.042660] mmc0: host does not support reading read-only switch, assuming write-enable
[ 2.056354] mmc0: new high speed SDHC card at address 0007
[ 2.112371] mmcblk0: mmc0:0007 SD08G 7.42 GiB
[ 2.119664] mmcblk0: p1 p2
[ 2.638137] console [ttyAMA0] enabled
[ 2.642218] of_cfs_init
[ 2.644722] of_cfs_init: OK
[ 2.648155] Warning: unable to open an initial console.
[ 2.655331] Freeing unused kernel memory: 1448K (80584000 - 806ee000)
[ 2.663766] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000
[ 2.663766]
[ 2.672894] CPU: 0 PID: 1 Comm: sh Tainted: G W 4.4.31-v7+ #1
[ 2.679755] Hardware name: BCM2709
[ 2.683175] [<80016d6c>] (unwind_backtrace) from [<80013c54>] (show_stack+0x20/0x24)
[ 2.690920] [<80013c54>] (show_stack) from [<8029657c>] (dump_stack+0x24/0x28)
[ 2.698144] [<8029657c>] (dump_stack) from [<800d3ee0>] (panic+0x9c/0x1f0)
[ 2.705022] [<800d3ee0>] (panic) from [<80025274>] (complete_and_exit+0x0/0x2c)
[ 2.712331] [<80025274>] (complete_and_exit) from [<80025310>] (do_group_exit+0x50/0xc0)
[ 2.720420] [<80025310>] (do_group_exit) from [<800253a0>] (__wake_up_parent+0x0/0x30)
[ 2.728334] [<800253a0>] (__wake_up_parent) from [<8000f8c0>] (ret_fast_syscall+0x0/0x1c)
[ 2.736504] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000
[ 2.736504]
@NF3RN0
Copy link
Author

NF3RN0 commented Dec 7, 2018

I have since fixed the kernel panic shown above, this was because I did not properly populate /dev and its device nodes. To fix this you need to populate the dev nodes in Busybox's _install build folder before you build it into the kernel as an initrd. This guide from Linux From Scratch will give a little more insight.

This should get you going, or help someone else in the future who runs into this problem/post.

From your busybox root directory:

cd _install  
mkdir dev etc proc sys  
cd dev  
mknod -m 600 console c 5 1  
mknod -m 666 null c 1 3  
mknod -m 666 tty c 5 0  

The cmdline.txt I used was:
console=ttyAMA0,115200 elevator=deadline rdinit=/bin/sh
Now boot the PI.
Busybox has a tool called mdev (similar to udev) to populate the rest after you boot into userland.

mount -t proc proc /proc  
mount -t sysfs sysfs /sys  
mdev -s  

You should now be able see a lot of devices in /dev and be able to mount another file system on the SD card.

AFAIK, you could make a script to do all this before boot.

Hope this helps, I'm still working on getting armv6 (RPI 0 and B+) to boot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment