Difference between revisions of "U-Boot"
Line 12: | Line 12: | ||
You must have these packages installed: <code>dtc swig bc aarch64-linux-gnu-gcc</code> | You must have these packages installed: <code>dtc swig bc aarch64-linux-gnu-gcc</code> | ||
If you are using a different system such as Ubuntu, there are plenty of cross compilation instructions available online with which you can grab the needed package names from, | If you are using a different system such as Ubuntu, there are plenty of cross compilation instructions available online with which you can grab the needed package names from, however you should be able to follow these instructions with these packages installed: <code>build-essentials bison flex swig gcc-aarch64-linux-gnu</code> | ||
==Compilation== | ==Compilation== |
Revision as of 02:37, 15 February 2021
Building uboot manually
Prerequisites
These instructions are written with a host Arch Linux desktop system in mind.
This guide will be especially useful if you are looking to overclock the ram on your Pinephone following the information found here.
You must have these packages installed: dtc swig bc aarch64-linux-gnu-gcc
If you are using a different system such as Ubuntu, there are plenty of cross compilation instructions available online with which you can grab the needed package names from, however you should be able to follow these instructions with these packages installed: build-essentials bison flex swig gcc-aarch64-linux-gnu
Compilation
Note by default these instructions utilize all of your computers cores to compile thanks to the -j
and $(nproc)
parameters. If you wish to only use one core to compile, or change the number of cores used for example to only two cores, then you can either completely remove the -j$(nproc)
parameter from the make commands, or just take off $(nproc)
and add the number of threads you want used in it's place: -j4
First, You need to compile ATF (Arm Trusted Firmware):
git clone https://github.com/crust-firmware/arm-trusted-firmware/ cd arm-trusted-firmware CROSS_COMPILE=aarch64-linux-gnu- export CROSS_COMPILE export ARCH=arm64 make PLAT=sun50i_a64 -j$(nproc) bl31 cd ..
After ATF is compiled clone u-boot and copy the bl31.bin file into the u-boot directly.
git clone https://gitlab.com/pine64-org/u-boot.git cd arm-trusted-firmware cp build/sun50i_a64/release/bl31.bin ../u-boot/ cd ..
git clone https://github.com/crust-firmware/crust cd crust export CROSS_COMPILE=or1k-linux-musl- make pinephone_defconfig make -j$(nproc) scp cp /build/scp/scp.bin ../u-boot/
cd u-boot/ git checkout crust CROSS_COMPILE=aarch64-linux-gnu- export CROSS_COMPILE export BL31=bl31.bin export ARCH=arm64 export SCP=scp.bin make distclean make pinephone_defconfig make all -j$(nproc)
Uboot installation
Once successfully compiled you can proceed to flash the device
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/[CHANGE THIS] bs=1024 seek=8
Pboot multi-bootloader
One of the smallest and fastest pinephone bootloaders, it was developed by Ondrej Jirman with the ability of booting multiple distros on the pinephone in mind.
More information can be found here