Merge tag 'u-boot-atmel-fixes-2020.07-a' of https://gitlab.denx.de/u-boot/custodians...
[oweals/u-boot.git] / board / amlogic / p200 / README.nanopi-k2
1 U-Boot for NanoPi-K2
2 ====================
3
4 NanoPi-K2 is a single board computer manufactured by FriendlyElec
5 with the following specifications:
6
7  - Amlogic S905 ARM Cortex-A53 quad-core SoC @ 1.5GHz
8  - ARM Mali 450 GPU
9  - 2GB DDR3 SDRAM
10  - Gigabit Ethernet
11  - HDMI 2.0 4K/60Hz display
12  - 40-pin GPIO header
13  - 4 x USB 2.0 Host, 1 x USB OTG
14  - eMMC, microSD
15  - Infrared receiver
16
17 Schematics are available on the manufacturer website.
18
19 Currently the u-boot port supports the following devices:
20  - serial
21  - eMMC, microSD
22  - Ethernet
23
24 u-boot compilation
25 ==================
26
27  > export CROSS_COMPILE=aarch64-none-elf-
28  > make nanopi-k2_defconfig
29  > make
30
31 Image creation
32 ==============
33
34 Amlogic doesn't provide sources for the firmware and for tools needed
35 to create the bootloader image, so it is necessary to obtain them from
36 the git tree published by the board vendor:
37
38  > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
39  > wget https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
40  > tar xvfJ gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.xz
41  > tar xvfJ gcc-linaro-arm-none-eabi-4.8-2013.11_linux.tar.xz
42  > export PATH=$PWD/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin:$PWD/gcc-linaro-arm-none-eabi-4.8-2013.11_linux/bin:$PATH
43  > git clone https://github.com/BayLibre/u-boot.git -b libretech-cc amlogic-u-boot
44  > git clone https://github.com/friendlyarm/u-boot.git -b nanopi-k2-v2015.01 amlogic-u-boot
45  > cd amlogic-u-boot
46  > sed -i 's/aarch64-linux-gnu-/aarch64-none-elf-/' Makefile
47  > sed -i 's/arm-linux-/arm-none-eabi-/' arch/arm/cpu/armv8/gxb/firmware/scp_task/Makefile
48  > make nanopi-k2_defconfig
49  > make
50  > export FIPDIR=$PWD/fip
51
52 Go back to mainline U-Boot source tree then :
53  > mkdir fip
54
55  > cp $FIPDIR/gxb/bl2.bin fip/
56  > cp $FIPDIR/gxb/acs.bin fip/
57  > cp $FIPDIR/gxb/bl21.bin fip/
58  > cp $FIPDIR/gxb/bl30.bin fip/
59  > cp $FIPDIR/gxb/bl301.bin fip/
60  > cp $FIPDIR/gxb/bl31.img fip/
61  > cp u-boot.bin fip/bl33.bin
62
63  > $FIPDIR/blx_fix.sh \
64         fip/bl30.bin \
65         fip/zero_tmp \
66         fip/bl30_zero.bin \
67         fip/bl301.bin \
68         fip/bl301_zero.bin \
69         fip/bl30_new.bin \
70         bl30
71
72  > $FIPDIR/fip_create \
73          --bl30 fip/bl30_new.bin \
74          --bl31 fip/bl31.img \
75          --bl33 fip/bl33.bin \
76          fip/fip.bin
77
78  > python $FIPDIR/acs_tool.pyc fip/bl2.bin fip/bl2_acs.bin fip/acs.bin 0
79
80  > $FIPDIR/blx_fix.sh \
81         fip/bl2_acs.bin \
82         fip/zero_tmp \
83         fip/bl2_zero.bin \
84         fip/bl21.bin \
85         fip/bl21_zero.bin \
86         fip/bl2_new.bin \
87         bl2
88
89  > cat fip/bl2_new.bin fip/fip.bin > fip/boot_new.bin
90
91  > $FIPDIR/gxb/aml_encrypt_gxb --bootsig \
92                 --input fip/boot_new.bin
93                 --output fip/u-boot.bin
94
95 and then write the image to SD with:
96
97  > DEV=/dev/your_sd_device
98  > dd if=fip/u-boot.bin of=$DEV conv=fsync,notrunc bs=512 seek=1