The BSP-Uboot comes from uboot-pinebookpro-bsp package from official Manjaro ARM repository. It was packed by @spikerguy but the files are prebuilt binaries from mrfixit2001 github https://github.com/mrfixit2001/updates_repo/tree/v1.5/pinebook/filesystem (there is a newer version of uboot.img in 2.0 branch from February 2nd, the files from manjaro-arm gitlab are from February 27th and contains files from October and November). I didn’t find any documentation or source files (but it doesn’t mean there isn’t any).
To install it on your Pinebook Pro you will need to first install uboot-pinebookpro-bsp, e.g.:
sudo pacman -Sy uboot-pinebookpro-bsp
During the installation there will be a message:
A new U-Boot version needs to be flashed our install drive. Please use lsblk to determine your drive, before proceeding.
You can do this by running:
# dd if=/boot/idbloader.img of=/dev/mmcblkX seek=64 conv=notrunc
# dd if=/boot/uboot.img of=/dev/mmcblkX seek=16384 conv=notrunc
# dd if=/boot/trust.img of=/dev/mmcblkX seek=24576 conv=notrunc
The X should be a number, you can use lsblk to list all block devices or just run:
ls /dev/mmcblk?
You need root privileges to run above dd commands.
To finish installation, you will have to power off using e.g. sudo poweroff. During start with BSP U-Boot the LED is green from the beginning.
The uninstallation process is tricky because the mainline U-boot has 2 files (instead of 3) and the sizes are different. It will not install it self, it’ll just print similar message (but with two dd commands) but I don’t know if they are sufficient after BSP installation, the BSP U-Boot will have to be removed by zeroing out what was previously flashed. The safest way to do it is to first create files with zeros with the same sizes like the files idbloader.img, uboot.img and trust.img, then dd these files with zeros instead of the BSP U-boot ones. This way one will not accidentally overwrite the whole eMMC module with zeros.