xref: /rk3399_rockchip-uboot/board/hisilicon/hikey/README (revision a83afb6b1fdb29eb3c79ccb19f2e1559447d85fb)
1f9a9fc6fSPeter GriffinIntroduction
2f9a9fc6fSPeter Griffin============
3f9a9fc6fSPeter Griffin
4f9a9fc6fSPeter GriffinHiKey is the first certified 96Boards Consumer Edition board. The board/SoC has: -
5f9a9fc6fSPeter Griffin* HiSilicon Kirin 6220 eight-core ARM Cortex-A53 64-bit SoC running at 1.2GHz.
6f9a9fc6fSPeter Griffin* ARM Mali 450-MP4 GPU
7f9a9fc6fSPeter Griffin* 1GB 800MHz LPDDR3 DRAM
8f9a9fc6fSPeter Griffin* 4GB eMMC Flash Storage
9f9a9fc6fSPeter Griffin* microSD
10f9a9fc6fSPeter Griffin* 802.11a/b/g/n WiFi, Bluetooth
11f9a9fc6fSPeter Griffin
12f9a9fc6fSPeter GriffinThe HiKey schematic can be found here: -
13f9a9fc6fSPeter Griffinhttps://github.com/96boards/documentation/blob/master/hikey/96Boards-Hikey-Rev-A1.pdf
14f9a9fc6fSPeter Griffin
15f9a9fc6fSPeter GriffinA SoC datasheet can be found here: -
16f9a9fc6fSPeter Griffinhttps://github.com/96boards/documentation/blob/master/hikey/
17f9a9fc6fSPeter GriffinHi6220V100_Multi-Mode_Application_Processor_Function_Description.pdf
18f9a9fc6fSPeter Griffin
19f9a9fc6fSPeter GriffinCurrently the u-boot port supports: -
20f9a9fc6fSPeter Griffin* USB
21f9a9fc6fSPeter Griffin* eMMC
22f9a9fc6fSPeter Griffin* SD card
23f9a9fc6fSPeter Griffin* GPIO
24f9a9fc6fSPeter Griffin
25532d5203SPeter GriffinThe HiKey U-Boot port has been tested with l-loader, booting ATF, which then boots
26532d5203SPeter GriffinU-Boot as the bl33.bin executable.
27532d5203SPeter Griffin
28532d5203SPeter GriffinCompile from source
29532d5203SPeter Griffin===================
30532d5203SPeter Griffin
31532d5203SPeter GriffinFirst get all the sources
32532d5203SPeter Griffin
33532d5203SPeter Griffin  > mkdir -p ~/hikey/src ~/hikey/bin
34532d5203SPeter Griffin  > cd ~/hikey/src
35532d5203SPeter Griffin  > git clone https://github.com/96boards/edk2.git
36532d5203SPeter Griffin  > git clone https://github.com/96boards/arm-trusted-firmware.git
37532d5203SPeter Griffin  > git clone https://github.com/96boards/l-loader.git
38532d5203SPeter Griffin  > git clone https://github.com/96boards/burn-boot.git
39532d5203SPeter Griffin
40532d5203SPeter GriffinGet the BL30 mcuimage.bin binary. It is shipped as part of the UEFI source.
41532d5203SPeter GriffinThe latest version can be obtained from the edk2 repo.
42532d5203SPeter Griffin
43532d5203SPeter Griffin  > cp edk2/HisiPkg/HiKeyPkg/NonFree/mcuimage.bin ~/hikey/bin/
44532d5203SPeter Griffin
45532d5203SPeter GriffinGet nvme.img binary (check this link is still the latest)
46532d5203SPeter Griffin  > wget -P ~/hikey/bin https://builds.96boards.org/releases/reference-platform/debian/hikey/16.03/bootloader/nvme.img
47532d5203SPeter Griffin
48532d5203SPeter GriffinCompile U-Boot
49f9a9fc6fSPeter Griffin==============
50f9a9fc6fSPeter Griffin
51532d5203SPeter Griffin  > cd ~/hikey/src/u-boot
529c71a21dSPeter Griffin  > make CROSS_COMPILE=aarch64-linux-gnu- hikey_config
539c71a21dSPeter Griffin  > make CROSS_COMPILE=aarch64-linux-gnu-
54532d5203SPeter Griffin  > cp u-boot.bin ~/hikey/bin
55f9a9fc6fSPeter Griffin
56532d5203SPeter GriffinCompile ARM Trusted Firmware (ATF)
57532d5203SPeter Griffin==================================
58f9a9fc6fSPeter Griffin
59*a83afb6bSMichal Simek  > cd ~/hikey/src/arm-trusted-firmware
60532d5203SPeter Griffin  > make CROSS_COMPILE=aarch64-linux-gnu- all fip \
61532d5203SPeter Griffin    BL30=~/hikey/bin/mcuimage.bin \
62532d5203SPeter Griffin    BL33=~/hikey/bin/u-boot.bin DEBUG=1 PLAT=hikey
63f9a9fc6fSPeter Griffin
64532d5203SPeter GriffinCopy resulting binaries
65532d5203SPeter Griffin  > cp build/hikey/debug/bl1.bin ~/hikey/bin
66532d5203SPeter Griffin  > cp build/hikey/debug/fip.bin ~/hikey/bin
67f9a9fc6fSPeter Griffin
68532d5203SPeter GriffinCompile l-loader
69532d5203SPeter Griffin===============
70*a83afb6bSMichal Simek  > cd ~/hikey/src/l-loader
71532d5203SPeter Griffin  > make BL1=~/hikey/bin/bl1.bin all
72532d5203SPeter Griffin  > cp *.img ~/hikey/bin
73*a83afb6bSMichal Simek  > cp l-loader.bin ~/hikey/bin
74f9a9fc6fSPeter Griffin
75f9a9fc6fSPeter GriffinThese instructions are adapted from
76f9a9fc6fSPeter Griffinhttps://github.com/96boards/documentation/wiki/HiKeyUEFI
77f9a9fc6fSPeter Griffin
78f9a9fc6fSPeter GriffinFLASHING
79f9a9fc6fSPeter Griffin========
80f9a9fc6fSPeter Griffin
819c71a21dSPeter Griffin1. Connect the second jumper on J15 BOOT SEL, to go into recovery mode and flash l-loader.bin with
82532d5203SPeter Griffinthe hisi-idt.py utility.
83f9a9fc6fSPeter Griffin
849c71a21dSPeter GriffinThe command below assumes HiKey enumerated as the first USB serial port
85*a83afb6bSMichal Simek  > sudo ~/hikey/src/burn-boot/hisi-idt.py -d /dev/ttyUSB0 --img1=~/hikey/bin/l-loader.bin
86f9a9fc6fSPeter Griffin
87532d5203SPeter Griffin2. Once LED 0 comes on solid, HiKey board should be detected as a fastboot device by plugging a USB A to mini B
889c71a21dSPeter Griffin   cable from your PC to the USB OTG port of HiKey (on some boards I've found this to be unreliable).
899c71a21dSPeter Griffin
909c71a21dSPeter Griffin  > sudo fastboot devices
919c71a21dSPeter Griffin
929c71a21dSPeter Griffin0123456789ABCDEF	fastboot
93f9a9fc6fSPeter Griffin
94f9a9fc6fSPeter Griffin3. Flash the images
95532d5203SPeter Griffin
96532d5203SPeter Griffin  > sudo fastboot flash ptable ~/hikey/bin/ptable.img
97532d5203SPeter Griffin  > sudo fastboot flash fastboot ~/hikey/bin/fip.bin
98532d5203SPeter Griffin  > sudo fastboot flash nvme ~/hikey/bin/nvme.img
99f9a9fc6fSPeter Griffin
1009c71a21dSPeter Griffin4. Disconnect second jumper on J15 BOOT SEL, and reset the board and you will now (hopefully)
101f9a9fc6fSPeter Griffin   have ATF, booting u-boot from eMMC. On 'new' boards I've had to do the
102f9a9fc6fSPeter Griffin   flashing twice in the past to avoid an ATF error.
103f9a9fc6fSPeter Griffin
1049c71a21dSPeter Griffin   Note: To get USB host working, also disconnect the USB OTG cable used for flashing. Otherwise you
1059c71a21dSPeter Griffin   will get 'dwc_otg_core_host_init: Timeout!' errors.
1069c71a21dSPeter Griffin
107532d5203SPeter GriffinSee working boot trace below (by default trace is now output to UART3 not UART0 on latest
108532d5203SPeter GriffinATF, U-Boot and Kernel sources): -
109f9a9fc6fSPeter Griffin
110f9a9fc6fSPeter Griffindebug EMMC boot: send RST_N .
111f9a9fc6fSPeter Griffindebug EMMC boot: start eMMC boot......
112f9a9fc6fSPeter Griffinload fastboot1!
1139c71a21dSPeter Griffin
114f9a9fc6fSPeter GriffinSwitch to aarch64 mode. CPU0 executes at 0xf9801000!
1159c71a21dSPeter Griffin
1169c71a21dSPeter GriffinINFO:    BL1: 0xf9810000 - 0xf9817000 [size = 28672]
117f9a9fc6fSPeter GriffinNOTICE:  Booting Trusted Firmware
1189c71a21dSPeter GriffinNOTICE:  BL1: v1.1(debug):e8b7174
1199c71a21dSPeter GriffinNOTICE:  BL1: Built : 19:16:44, Sep  8 2015
1209c71a21dSPeter GriffinINFO:    BL1: RAM 0xf9810000 - 0xf9817000
1219c71a21dSPeter GriffinNOTICE:  syspll frequency:1190494208Hz
122f9a9fc6fSPeter GriffinNOTICE:  succeed to init lpddr3 rank0 dram phy
123f9a9fc6fSPeter GriffinINFO:    lpddr3_freq_init, set ddrc 533mhz
124f9a9fc6fSPeter GriffinINFO:    init ddr3 rank0
125f9a9fc6fSPeter GriffinINFO:    ddr3 rank1 init pass
126f9a9fc6fSPeter GriffinINFO:    lpddr3_freq_init, set ddrc 800mhz
127f9a9fc6fSPeter GriffinINFO:    init ddr3 rank0
128f9a9fc6fSPeter GriffinINFO:    ddr3 rank1 init pass
129f9a9fc6fSPeter GriffinINFO:    Elpida DDR
1309c71a21dSPeter GriffinINFO:    ddr test value:0xa5a55a5a
1319c71a21dSPeter GriffinINFO:    Hisilicon HiKey platform is initialized
1329c71a21dSPeter GriffinINFO:    Using FIP
1339c71a21dSPeter GriffinINFO:    Loading file 'bl2.bin' at address 0xf9818000
1349c71a21dSPeter GriffinINFO:    File 'bl2.bin' loaded: 0xf9818000 - 0xf9821100
135f9a9fc6fSPeter GriffinNOTICE:  BL1: Booting BL2
1369c71a21dSPeter GriffinINFO:    BL1: BL2 address = 0xf9818000
1379c71a21dSPeter GriffinINFO:    BL1: BL2 spsr = 0x3c5
138f9a9fc6fSPeter GriffinINFO:    [BDID] [fff91c18] midr: 0x410fd033
139f9a9fc6fSPeter GriffinINFO:    [BDID] [fff91c1c] board type: 0
140f9a9fc6fSPeter GriffinINFO:    [BDID] [fff91c20] board id: 0x2b
141f9a9fc6fSPeter GriffinINFO:    init_acpu_dvfs: pmic version 17
142f9a9fc6fSPeter GriffinINFO:    init_acpu_dvfs: ACPU_CHIP_MAX_FREQ=0x186a00.
143f9a9fc6fSPeter GriffinINFO:    acpu_dvfs_volt_init: success!
144f9a9fc6fSPeter GriffinINFO:    acpu_dvfs_set_freq: support freq num is 5
145f9a9fc6fSPeter GriffinINFO:    acpu_dvfs_set_freq: start prof is 0x4
146f9a9fc6fSPeter GriffinINFO:    acpu_dvfs_set_freq: magic is 0x5a5ac5c5
147f9a9fc6fSPeter GriffinINFO:    acpu_dvfs_set_freq: voltage:
1489c71a21dSPeter GriffinINFO:      - 0: 0x49
1499c71a21dSPeter GriffinINFO:      - 1: 0x49
1509c71a21dSPeter GriffinINFO:      - 2: 0x50
1519c71a21dSPeter GriffinINFO:      - 3: 0x60
1529c71a21dSPeter GriffinINFO:      - 4: 0x78
1539c71a21dSPeter GriffinNOTICE:  acpu_dvfs_set_freq: set acpu freq success!NOTICE:  BL2: v1.1(debug):e8b7174
1549c71a21dSPeter GriffinNOTICE:  BL2: Built : 19:16:46, Sep  8 2015
155f9a9fc6fSPeter GriffinINFO:    BL2: Loading BL3-0
156f9a9fc6fSPeter GriffinINFO:    Using FIP
1579c71a21dSPeter GriffinINFO:    Loading file 'bl30.bin' at address 0x1000000
1589c71a21dSPeter GriffinINFO:    Skip reserving memory: 0x1000000 - 0x1023270
1599c71a21dSPeter GriffinINFO:    File 'bl30.bin' loaded: 0x1000000 - 0x1023270
1609c71a21dSPeter GriffinINFO:    bl2_plat_handle_bl30: [1000000] 3a334d43 34313032 2f38302f 30203133
1619c71a21dSPeter GriffinINFO:    bl2_plat_handle_bl30: [10000c8] 0 0 b 0
1629c71a21dSPeter GriffinINFO:    bl2_plat_handle_bl30: [1000190] 17 0 0 0
1639c71a21dSPeter GriffinINFO:    bl2_plat_handle_bl30: [1023260] 0 0 0 0
1649c71a21dSPeter GriffinINFO:    hisi_mcu_load_image: mcu sections 0:
1659c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  src  = 0x1000200
1669c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  dst  = 0xf6000000
1679c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  size = 512
1689c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [SRC 0x1000200] 0x7600 0x201 0x1eae1 0x1ea71
1699c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [DST 0xf6000000] 0x7600 0x201 0x1eae1 0x1ea71
1709c71a21dSPeter GriffinINFO:    hisi_mcu_load_image: mcu sections 1:
1719c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  src  = 0x1000400
1729c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  dst  = 0xf6000200
1739c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  size = 27828
1749c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [SRC 0x1000400] 0xbf00bf00 0x4815b672 0x48154780 0x60014915
1759c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [DST 0xf6000200] 0xbf00bf00 0x4815b672 0x48154780 0x60014915
1769c71a21dSPeter GriffinINFO:    hisi_mcu_load_image: mcu sections 2:
1779c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  src  = 0x10070b4
1789c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  dst  = 0xf6007200
1799c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  size = 1024
1809c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [SRC 0x10070b4] 0x55 0x0 0x0 0x0
1819c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [DST 0xf6007200] 0x55 0x0 0x0 0x0
1829c71a21dSPeter GriffinINFO:    hisi_mcu_load_image: mcu sections 3:
1839c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  src  = 0x10074b4
1849c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  dst  = 0xfff8e000
1859c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  size = 12704
1869c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [SRC 0x10074b4] 0x55 0x0 0x0 0x0
1879c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [DST 0xfff8e000] 0x55 0x0 0x0 0x0
1889c71a21dSPeter GriffinINFO:    hisi_mcu_load_image: mcu sections 4:
1899c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  src  = 0x100a654
1909c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  dst  = 0x5e00000
1919c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  size = 82912
1929c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [SRC 0x100a654] 0x4ff0e92d 0x2cc5f645 0x2600b0ab 0x2c7cf6c0
1939c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [DST 0x5e00000] 0x4ff0e92d 0x2cc5f645 0x2600b0ab 0x2c7cf6c0
1949c71a21dSPeter GriffinINFO:    hisi_mcu_load_image: mcu sections 5:
1959c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  src  = 0x101ea34
1969c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  dst  = 0x5e143e0
1979c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  size = 12816
1989c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [SRC 0x101ea34] 0x33323130 0x37363534 0x42413938 0x46454443
1999c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [DST 0x5e143e0] 0x33323130 0x37363534 0x42413938 0x46454443
2009c71a21dSPeter GriffinINFO:    hisi_mcu_load_image: mcu sections 6:
2019c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  src  = 0x1021c44
2029c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  dst  = 0x5e1c1d0
2039c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  size = 3060
2049c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [SRC 0x1021c44] 0x0 0x0 0x0 0x0
2059c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [DST 0x5e1c1d0] 0x0 0x0 0x0 0x0
2069c71a21dSPeter GriffinINFO:    hisi_mcu_load_image: mcu sections 7:
2079c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  src  = 0x1022838
2089c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  dst  = 0x5e1cdc4
2099c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  size = 2616
2109c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [SRC 0x1022838] 0xf80000a0 0x0 0xf80000ac 0x0
2119c71a21dSPeter GriffinINFO:    hisi_mcu_load_image:  [DST 0x5e1cdc4] 0xf80000a0 0x0 0xf80000ac 0x0
2129c71a21dSPeter GriffinINFO:    hisi_mcu_start_run: AO_SC_SYS_CTRL2=0
2139c71a21dSPeter GriffinINFO:    bl2_plat_handle_bl30: mcu pc is 42933301
2149c71a21dSPeter GriffinINFO:    bl2_plat_handle_bl30: AO_SC_PERIPH_CLKSTAT4	is 39018f09
215f9a9fc6fSPeter GriffinINFO:    BL2: TrustZone: protecting 16777216 bytes of memory at 0x3f000000
216f9a9fc6fSPeter GriffinINFO:    BL2: Loading BL3-1
217f9a9fc6fSPeter GriffinINFO:    Using FIP
218f9a9fc6fSPeter GriffinINFO:    Loading file 'bl31.bin' at address 0xf9858000
2199c71a21dSPeter GriffinINFO:    File 'bl31.bin' loaded: 0xf9858000 - 0xf9861010
220f9a9fc6fSPeter GriffinINFO:    BL2: Loading BL3-2
221f9a9fc6fSPeter GriffinINFO:    Using FIP
222f9a9fc6fSPeter GriffinWARNING: Failed to access image 'bl32.bin' (-1)
223f9a9fc6fSPeter GriffinWARNING: Failed to load BL3-2 (-1)
224f9a9fc6fSPeter GriffinINFO:    BL2: Loading BL3-3
225f9a9fc6fSPeter GriffinINFO:    Using FIP
226f9a9fc6fSPeter GriffinINFO:    Loading file 'bl33.bin' at address 0x35000000
2279c71a21dSPeter GriffinINFO:    File 'bl33.bin' loaded: 0x35000000 - 0x3504c468
228f9a9fc6fSPeter GriffinNOTICE:  BL1: Booting BL3-1
2299c71a21dSPeter GriffinINFO:    BL1: BL3-1 address = 0xf9858000
2309c71a21dSPeter GriffinINFO:    BL1: BL3-1 spsr = 0x3cd
2319c71a21dSPeter GriffinINFO:    BL1: BL3-1 params address = 0xf9821920
2329c71a21dSPeter GriffinINFO:    BL1: BL3-1 plat params address = 0x0
2339c71a21dSPeter GriffinNOTICE:  BL3-1: v1.1(debug):e8b7174
2349c71a21dSPeter GriffinNOTICE:  BL3-1: Built : 19:16:49, Sep  8 2015
235f9a9fc6fSPeter GriffinINFO:    BL3-1: Initializing runtime services
236f9a9fc6fSPeter GriffinINFO:    BL3-1: Preparing for EL3 exit to normal world
237f9a9fc6fSPeter GriffinINFO:    BL3-1: Next image address = 0x35000000
238f9a9fc6fSPeter GriffinINFO:    BL3-1: Next image spsr = 0x3c9
239f9a9fc6fSPeter Griffin
2409c71a21dSPeter GriffinU-Boot 2015.10-rc2 (Sep 08 2015 - 20:29:33 +0100)hikey
241f9a9fc6fSPeter Griffin
242f9a9fc6fSPeter GriffinDRAM:  1008 MiB
2439c71a21dSPeter GriffinHI6553 PMIC init
2449c71a21dSPeter GriffinMMC:   config_sd_carddetect: SD card not present
245f9a9fc6fSPeter GriffinHiKey DWMMC: 0, HiKey DWMMC: 1
2469c71a21dSPeter GriffinCard did not respond to voltage select!
2479c71a21dSPeter Griffin** Bad device mmc 1 **
2489c71a21dSPeter GriffinUsing default environment
2499c71a21dSPeter Griffin
250f9a9fc6fSPeter GriffinIn:    serial
251f9a9fc6fSPeter GriffinOut:   serial
252f9a9fc6fSPeter GriffinErr:   serial
253f9a9fc6fSPeter GriffinNet:   Net Initialization Skipped
254f9a9fc6fSPeter GriffinNo ethernet found.
255f9a9fc6fSPeter GriffinHit any key to stop autoboot:  0
2569c71a21dSPeter Griffinstarting USB...
2579c71a21dSPeter GriffinUSB0:   Core Release: 3.00a
2589c71a21dSPeter Griffinscanning bus 0 for devices... 2 USB Device(s) found
2599c71a21dSPeter Griffin       scanning usb for storage devices... 0 Storage Device(s) found
2609c71a21dSPeter Griffin       scanning usb for ethernet devices... 0 Ethernet Device(s) found
261