3

I'm trying to get u-boot working on Raspberry Pi 3 but so far no success. Every time I plug in my SD card to the Pi there isn't any output to the console, only the green LED blinks several times. Currently I'm trying to build u-boot this way:

git clone git://git.denx.de/u-boot.git

sudo apt-get install gcc-aarch64-linux-gnu

export CROSS_COMPILE=aarch64-linux-gnu-

make rpi_3_defconfig

make -j8 -s

No errors during building, and here is what I have on my SD card:

bcm2709-rpi-2-b.dtb

bcm2710-rpi-3-b.dtb

bcm2710-rpi-cm3.dtb

bootcode.bin

cmdline.txt

config.txt

fixup.dat

kernel7.img

overlays

start.elf

u-boot.bin

In the config.txt I wrote kernel=u-boot.bin

I built the kernel itself with buidroot but I think the buildroot settings don't matter since I didn't even get output from u-boot.

The kernel7.img loads just fine.

I've already tried several ways to build u-boot (using different compilers like arm-bcm2708-linux-gnueabi- etc., I tried to build u-boot with help of buildroot) but no luck. Every time I turn on my RPi3 the green led blinks several times and nothing shows up in the console. Please, help me with some solid way to build u-boot and make it work on RPi3.

2 Answers 2

2

Make sure you have the below entries in the config.txt for arm64 support :

arm_64bit=1
device_tree_address=0x100
device_tree_end=0x8000

Optionally, add 'enable_uart=1' if you need serial console support.

If needed add boot.scr.uimg to the boot partition to load the kernel from u-boot (u-boot looks for this file unless you disabled auto-boot while building it) :

Prepare boot_script.txt :

fdt addr 100
fatload mmc 0:1 ${kernel_addr_r} kernel7.img
booti ${kernel_addr_r} - ${fdt_addr_r}

Then run :

mkimage -A arm -O linux -T script -C none -n boot_script -d boot_script.txt boot.scr.uimg
0

Try removing device tree overlays from config.txt, if you have any.

I experienced the same problem with certain overlays that seem to have overflowed or otherwise corrupted the memory allocated for the DT in U-Boot when applied by the factory bootloader. Then I could resize the DT in U-Boot and apply those overlays that otherwise failed.

fdt addr ${fdt_addr};
fdt resize 1024;
fatload mmc 0:1 ${fdt_addr_r} overlays/pi3-disable-bt.dtbo;
fdt apply ${fdt_addr_r};

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.