[U-Boot] scripts: RPi 2: only 1 out of 4 CPUs brought up

Jonas Jensen jonas.jensen at gmail.com
Tue Jun 30 04:56:41 PDT 2015


I have found the following issue with RPi 2:

Only 1 CPU is brought up when the kernel is started from script (see [1]).

All 4 CPUs are brought up if started "manually" typing in environment
variables from said script (see [2]).

U-Boot: 2015.04-rc5-gd6d345b
kernel: d9fa11803a0d2e3b1eaf4041ddd0ca5651300d96 branch rpi-4.1.y from

[1] Automatic boot: http://paste.debian.net/269052/
[2] Manual boot: http://paste.debian.net/269053/
[3] boot.scr.uimg: http://paste.debian.net/269066/
[4] environment variables: http://paste.debian.net/269067/

Example 1:

load mmc 0:1 ${scriptaddr} boot.scr.uimg; source ${scriptaddr}

.. result in linux bringing up only the first CPU

Example 2:

U-Boot> setenv fdtfile bcm2709-rpi-2-b.dtb
U-Boot> setenv bootargs earlyprintk console=tty0 console=ttyAMA0
root=/dev/mmcblk0p2 rootwait rw
U-Boot> fatload mmc 0:1 ${kernel_addr_r} zImage
U-Boot> fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}
U-Boot> bootz ${kernel_addr_r} - ${fdt_addr_r}

.. result in linux bringing up all four CPUs

#u-boot Marex_ suggested adding "setenv fdt_high 0xffffffff" and
adding "sleep 1" between script commands none of which helped fix the

Is there a known fix or workaround?

I prefer something like boot.scr.uimg that can be added as a single
step enabling the correct environment.


More information about the linux-rpi-kernel mailing list