Difference between revisions of "Rockpi4/dev/u-boot"
(→Hardware required) |
(→Step 2: Install tool-chain and other build tools) |
||
Line 50: | Line 50: | ||
Specially the branch rk3399-pie-gms-express-baseline supports SPI-NVME-Boot. | Specially the branch rk3399-pie-gms-express-baseline supports SPI-NVME-Boot. | ||
− | ===== Step 2: Install | + | ===== Step 2: Install build tools ===== |
sudo apt-get install -y gcc-aarch64-linux-gnu device-tree-compiler libncurses5 libncurses5-dev | sudo apt-get install -y gcc-aarch64-linux-gnu device-tree-compiler libncurses5 libncurses5-dev |
Revision as of 11:32, 20 February 2020
ROCK Pi 4 > Development > U-Boot
Contents
Build U-Boot and run it on ROCK Pi 4
This guide describes how to build U-Boot and run it on ROCK Pi 4. U-Boot images could be installed into eMMC module, Micro SD Card and SPI Flash, etc.
Hardware required
- ROCK Pi 4 mainboard
- An eMMC module or a MicroSD Card or SPI Flash soldered on board
- Power adapter
- USB Male A to Male A cable(important).
- A PC/laptop running Linux
Build U-Boot
Step 1: Get the source code
You need Git to get multiple git repositories to build the image.
Install Git if you don't have it.
sudo apt-get update && sudo apt-get install -y git
Clone the source code
git clone --recursive https://github.com/radxa/rockchip-bsp.git
You will get
build kernel README.md rkbin rootfs u-boot
Directories usage introductions:
- build:
- Some script files and configuration files for building u-boot, kernel and rootfs.
- kernel:
- kernel source code, current version is 4.4
- rkbin:
- Prebuilt Rockchip binaries, include first stage loader and ATF(Arm Trustzone Firmware).
- rootfs:
- Bootstrap a Debian based rootfs, support architechture armhf and arm64, support Debian Jessie and Stretch.
- u-boot:
- u-boot as the second stage bootloader
There are two branches for ROCK Pi 4 U-Boot. One is stable-4.4-rockpi4 and the other is rk3399-pie-gms-express-baseline.
Specially the branch rk3399-pie-gms-express-baseline supports SPI-NVME-Boot.
Step 2: Install build tools
sudo apt-get install -y gcc-aarch64-linux-gnu device-tree-compiler libncurses5 libncurses5-dev sudo apt-get install -y bc python dosfstools flex build-essential libssl-dev mtools
Step 3: Build U-boot
- If you use the ROCK Pi 4A
./build/mk-uboot.sh rockpi4a
- If you use the ROCK Pi 4B
./build/mk-uboot.sh rockpi4b
- If you use the ROCK Pi 4C
./build/mk-uboot.sh rockpi4c
And then you can get the directory, out, of all the generated images.
Flash U-Boot
The prepared tools are dd provided by coreutils and rkdeveloptool.
dd is used for Micro SD Card and eMMC module while rkdeveloptool is used for eMMC moduel and SPI Flash.
Method 1: Flash U-Boot to eMMC module
Insert an empty eMMC module on your ROCK Pi 4
Use the USB Male A to Male A cable to connected your PC and ROCK Pi4 and then type
rkdeveloptool ld
You can see the output just like this
DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=302 Maskrom
You can using this command to flash U-boot
cd ./out/u-boot sudo rkdeveloptool db ../../rkbin/bin/rk33/rk3399_loader_v1.12.112.bin sudo rkdeveloptool wl 0x40 idbloader.img sudo rkdeveloptool wl 0x4000 uboot.img sudo rkdeveloptool wl 0x6000 trust.img sudo rkdeveloptool rd
Method 2: Flash U-Boot to SPI Flash
The method of flashing U-Boot to SPI Flash is quite similar to eMMC module. See this guide.
Method 3: Update U-Boot on Micro SD Card/eMMC module
For Micro SD Card, need Micro SD Card Reader.
For eMMC module, both USB 3.0 eMMC Reader and eMMC to Micro SD Card Converter Board are available. Just choose one kind.
On Host Linux, the device is shown as /dev/sdx (x: a, b, c....)
cd ./out/u-boot sudo dd if=./idbloader.img of=/dev/sdx bs=512 seek=64 sudo dd if=./uboot.img of=/dev/sdx bs=512 seek=16384 sudo dd if=./trust.img of=/dev/sdx bs=512 seek=24576 sync
U-boot Usage
FAQs
1. USB-C has been seen as not working, an adaptor for USB-C to USB-A has worked. See discussion.
Troubleshooting
- Post your issue at the forum: https://forum.radxa.com/c/dev.