hisilicon: hikey: Update instructions based on latest source
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Wed, 29 Aug 2018 04:37:36 +0000 (10:07 +0530)
committerTom Rini <trini@konsulko.com>
Fri, 31 Aug 2018 15:59:44 +0000 (11:59 -0400)
Update the HiKey board instructions based on the latest source
available. These instructions are derived from the ATF platform doc.
While updating the instructions, some comments on ATF issue has been
removed since it is fixed in latest ATF source.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
board/hisilicon/hikey/README

index 4c2021f5097ab797b1024649f59d9477f2f0b2aa..94e8397e9b23596139eaf69f9ab1654fb7a65ef6 100644 (file)
@@ -10,11 +10,10 @@ HiKey is the first certified 96Boards Consumer Edition board. The board/SoC has:
 * 802.11a/b/g/n WiFi, Bluetooth
 
 The HiKey schematic can be found here: -
-https://github.com/96boards/documentation/blob/master/hikey/96Boards-Hikey-Rev-A1.pdf
+https://github.com/96boards/documentation/blob/master/consumer/hikey/hikey620/hardware-docs/HiKey_schematics_LeMaker_version_Rev_A1.pdf
 
-A SoC datasheet can be found here: -
-https://github.com/96boards/documentation/blob/master/hikey/
-Hi6220V100_Multi-Mode_Application_Processor_Function_Description.pdf
+The SoC datasheet can be found here: -
+https://github.com/96boards/documentation/blob/master/consumer/hikey/hikey620/hardware-docs/Hi6220V100_Multi-Mode_Application_Processor_Function_Description.pdf
 
 Currently the u-boot port supports: -
 * USB
@@ -32,18 +31,20 @@ First get all the sources
 
   > mkdir -p ~/hikey/src ~/hikey/bin
   > cd ~/hikey/src
-  > git clone https://github.com/96boards/edk2.git
-  > git clone https://github.com/96boards/arm-trusted-firmware.git
-  > git clone https://github.com/96boards/l-loader.git
-  > git clone https://github.com/96boards/burn-boot.git
+  > git clone https://github.com/96boards-hikey/edk2 -b testing/hikey960_v2.5
+  > git clone https://github.com/ARM-software/arm-trusted-firmware
+  > git clone https://github.com/96boards-hikey/l-loader -b testing/hikey960_v1.2
+  > git clone https://github.com/96boards-hikey/OpenPlatformPkg -b testing/hikey960_v1.3.4
+  > git clone https://github.com/96boards-hikey/atf-fastboot
+  > wget https://snapshots.linaro.org/96boards/reference-platform/components/uefi-staging/latest/hikey/release/hisi-idt.py
 
 Get the BL30 mcuimage.bin binary. It is shipped as part of the UEFI source.
-The latest version can be obtained from the edk2 repo.
+The latest version can be obtained from the OpenPlatformPkg repo.
 
-  > cp edk2/HisiPkg/HiKeyPkg/NonFree/mcuimage.bin ~/hikey/bin/
+  > cp OpenPlatformPkg/Platforms/Hisilicon/HiKey/Binary/mcuimage.bin ~/hikey/bin/
 
-Get nvme.img binary (check this link is still the latest)
-  > wget -P ~/hikey/bin https://builds.96boards.org/releases/reference-platform/debian/hikey/16.03/bootloader/nvme.img
+Get nvme.img binary
+  > wget -P ~/hikey/bin https://snapshots.linaro.org/96boards/reference-platform/components/uefi-staging/latest/hikey/release/nvme.img
 
 Compile U-Boot
 ==============
@@ -58,34 +59,45 @@ Compile ARM Trusted Firmware (ATF)
 
   > cd ~/hikey/src/arm-trusted-firmware
   > make CROSS_COMPILE=aarch64-linux-gnu- all fip \
-    BL30=~/hikey/bin/mcuimage.bin \
+    SCP_BL2=~/hikey/bin/mcuimage.bin \
     BL33=~/hikey/bin/u-boot.bin DEBUG=1 PLAT=hikey
 
-Copy resulting binaries
-  > cp build/hikey/debug/bl1.bin ~/hikey/bin
+Copy the resulting FIP binary
   > cp build/hikey/debug/fip.bin ~/hikey/bin
 
+Compile ATF Fastboot
+====================
+
+  > cd ~/hikey/src/atf-fastboot
+  > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=hikey DEBUG=1
+
 Compile l-loader
-===============
+================
   > cd ~/hikey/src/l-loader
-  > make BL1=~/hikey/bin/bl1.bin all
+  > ln -sf ~/hikey/src/arm-trusted-firmware/build/hikey/debug/bl1.bin
+  > ln -sf ~/hikey/src/arm-trusted-firmware/build/hikey/debug/bl2.bin
+  > ln -sf ~/hikey/src/atf-fastboot/build/hikey/debug/bl1.bin fastboot.bin
+  > make hikey PTABLE_LST=aosp-8g
+
+Copy the resulting binaries
   > cp *.img ~/hikey/bin
   > cp l-loader.bin ~/hikey/bin
+  > cp recovery.bin ~/hikey/bin
 
 These instructions are adapted from
-https://github.com/96boards/documentation/wiki/HiKeyUEFI
+https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/plat/hikey.rst
 
 FLASHING
 ========
 
 1. Connect the second jumper on J15 BOOT SEL, to go into recovery mode and flash l-loader.bin with
-the hisi-idt.py utility.
+the hisi-idt.py utility. Then connect a USB A to B mini cable from your PC to the USB OTG port of HiKey and execute the below command.
 
 The command below assumes HiKey enumerated as the first USB serial port
-  > sudo ~/hikey/src/burn-boot/hisi-idt.py -d /dev/ttyUSB0 --img1=~/hikey/bin/l-loader.bin
 
-2. Once LED 0 comes on solid, HiKey board should be detected as a fastboot device by plugging a USB A to mini B
-   cable from your PC to the USB OTG port of HiKey (on some boards I've found this to be unreliable).
+  > sudo python ~/hikey/src/hisi-idt.py -d /dev/ttyUSB0 --img1 ~/hikey/bin/recovery.bin
+
+2. Once LED 0 comes on solid, HiKey board should be detected as a fastboot device.
 
   > sudo fastboot devices
 
@@ -93,51 +105,37 @@ The command below assumes HiKey enumerated as the first USB serial port
 
 3. Flash the images
 
-  > sudo fastboot flash ptable ~/hikey/bin/ptable.img
+  > sudo fastboot flash ptable ~/hikey/bin/prm_ptable.img
+  > sudo fastboot flash loader ~/hikey/bin/l-loader.bin
   > sudo fastboot flash fastboot ~/hikey/bin/fip.bin
   > sudo fastboot flash nvme ~/hikey/bin/nvme.img
 
 4. Disconnect second jumper on J15 BOOT SEL, and reset the board and you will now (hopefully)
-   have ATF, booting u-boot from eMMC. On 'new' boards I've had to do the
-   flashing twice in the past to avoid an ATF error.
+   have ATF, booting u-boot from eMMC.
 
    Note: To get USB host working, also disconnect the USB OTG cable used for flashing. Otherwise you
    will get 'dwc_otg_core_host_init: Timeout!' errors.
 
-See working boot trace below (by default trace is now output to UART3 not UART0 on latest
-ATF, U-Boot and Kernel sources): -
+See working boot trace below on UART3 available at Low Speed Expansion header: -
 
-debug EMMC boot: send RST_N .
-debug EMMC boot: start eMMC boot......
-load fastboot1!
-
-Switch to aarch64 mode. CPU0 executes at 0xf9801000!
-
-INFO:    BL1: 0xf9810000 - 0xf9817000 [size = 28672]
-NOTICE:  Booting Trusted Firmware
-NOTICE:  BL1: v1.1(debug):e8b7174
-NOTICE:  BL1: Built : 19:16:44, Sep  8 2015
-INFO:    BL1: RAM 0xf9810000 - 0xf9817000
-NOTICE:  syspll frequency:1190494208Hz
-NOTICE:  succeed to init lpddr3 rank0 dram phy
-INFO:    lpddr3_freq_init, set ddrc 533mhz
-INFO:    init ddr3 rank0
+NOTICE:  BL2: v1.5(debug):v1.5-694-g6d4f6aea
+NOTICE:  BL2: Built : 09:21:42, Aug 29 2018
+INFO:    BL2: Doing platform setup
+INFO:    ddr3 rank1 init pass
+INFO:    succeed to set ddrc 150mhz
+INFO:    ddr3 rank1 init pass
+INFO:    succeed to set ddrc 266mhz
 INFO:    ddr3 rank1 init pass
-INFO:    lpddr3_freq_init, set ddrc 800mhz
-INFO:    init ddr3 rank0
+INFO:    succeed to set ddrc 400mhz
 INFO:    ddr3 rank1 init pass
-INFO:    Elpida DDR
+INFO:    succeed to set ddrc 533mhz
+INFO:    ddr3 rank1 init pass
+INFO:    succeed to set ddrc 800mhz
+INFO:    Samsung DDR
 INFO:    ddr test value:0xa5a55a5a
-INFO:    Hisilicon HiKey platform is initialized
-INFO:    Using FIP
-INFO:    Loading file 'bl2.bin' at address 0xf9818000
-INFO:    File 'bl2.bin' loaded: 0xf9818000 - 0xf9821100
-NOTICE:  BL1: Booting BL2
-INFO:    BL1: BL2 address = 0xf9818000
-INFO:    BL1: BL2 spsr = 0x3c5
+INFO:    BL2: TrustZone: protecting 16777216 bytes of memory at 0x3f000000
+INFO:    BL2: TrustZone: protecting 4194304 bytes of memory at 0x3e800000
 INFO:    [BDID] [fff91c18] midr: 0x410fd033
-INFO:    [BDID] [fff91c1c] board type: 0
-INFO:    [BDID] [fff91c20] board id: 0x2b
 INFO:    init_acpu_dvfs: pmic version 17
 INFO:    init_acpu_dvfs: ACPU_CHIP_MAX_FREQ=0x186a00.
 INFO:    acpu_dvfs_volt_init: success!
@@ -150,111 +148,80 @@ INFO:      - 1: 0x49
 INFO:      - 2: 0x50
 INFO:      - 3: 0x60
 INFO:      - 4: 0x78
-NOTICE:  acpu_dvfs_set_freq: set acpu freq success!NOTICE:  BL2: v1.1(debug):e8b7174
-NOTICE:  BL2: Built : 19:16:46, Sep  8 2015
-INFO:    BL2: Loading BL3-0
-INFO:    Using FIP
-INFO:    Loading file 'bl30.bin' at address 0x1000000
-INFO:    Skip reserving memory: 0x1000000 - 0x1023270
-INFO:    File 'bl30.bin' loaded: 0x1000000 - 0x1023270
-INFO:    bl2_plat_handle_bl30: [1000000] 3a334d43 34313032 2f38302f 30203133
-INFO:    bl2_plat_handle_bl30: [10000c8] 0 0 b 0
-INFO:    bl2_plat_handle_bl30: [1000190] 17 0 0 0
-INFO:    bl2_plat_handle_bl30: [1023260] 0 0 0 0
+NOTICE:  acpu_dvfs_set_freq: set acpu freq success!INFO:    BL2: Loading image id 2
+INFO:    Loading image id=2 at address 0x1000000
+INFO:    Image id=2 loaded: 0x1000000 - 0x1023d00
 INFO:    hisi_mcu_load_image: mcu sections 0:
 INFO:    hisi_mcu_load_image:  src  = 0x1000200
 INFO:    hisi_mcu_load_image:  dst  = 0xf6000000
-INFO:    hisi_mcu_load_image:  size = 512
-INFO:    hisi_mcu_load_image:  [SRC 0x1000200] 0x7600 0x201 0x1eae1 0x1ea71
-INFO:    hisi_mcu_load_image:  [DST 0xf6000000] 0x7600 0x201 0x1eae1 0x1ea71
+INFO:    hisi_mcu_load_image:  size = 31184
+INFO:    hisi_mcu_load_image:  [SRC 0x1000200] 0x8000 0x3701 0x7695 0x7689
+INFO:    hisi_mcu_load_image:  [DST 0xf6000000] 0x8000 0x3701 0x7695 0x7689
 INFO:    hisi_mcu_load_image: mcu sections 1:
-INFO:    hisi_mcu_load_image:  src  = 0x1000400
-INFO:    hisi_mcu_load_image:  dst  = 0xf6000200
-INFO:    hisi_mcu_load_image:  size = 27828
-INFO:    hisi_mcu_load_image:  [SRC 0x1000400] 0xbf00bf00 0x4815b672 0x48154780 0x60014915
-INFO:    hisi_mcu_load_image:  [DST 0xf6000200] 0xbf00bf00 0x4815b672 0x48154780 0x60014915
+INFO:    hisi_mcu_load_image:  src  = 0x1007bd0
+INFO:    hisi_mcu_load_image:  dst  = 0x5e00000
+INFO:    hisi_mcu_load_image:  size = 93828
+INFO:    hisi_mcu_load_image:  [SRC 0x1007bd0] 0xf000b510 0x2103fb3d 0xf0004604 0xf003fb57
+INFO:    hisi_mcu_load_image:  [DST 0x5e00000] 0xf000b510 0x2103fb3d 0xf0004604 0xf003fb57
 INFO:    hisi_mcu_load_image: mcu sections 2:
-INFO:    hisi_mcu_load_image:  src  = 0x10070b4
-INFO:    hisi_mcu_load_image:  dst  = 0xf6007200
-INFO:    hisi_mcu_load_image:  size = 1024
-INFO:    hisi_mcu_load_image:  [SRC 0x10070b4] 0x55 0x0 0x0 0x0
-INFO:    hisi_mcu_load_image:  [DST 0xf6007200] 0x55 0x0 0x0 0x0
+INFO:    hisi_mcu_load_image:  src  = 0x101ea54
+INFO:    hisi_mcu_load_image:  dst  = 0x5e16e84
+INFO:    hisi_mcu_load_image:  size = 15428
+INFO:    hisi_mcu_load_image:  [SRC 0x101ea54] 0x9 0x1020640 0x10001 0x8f0d180
+INFO:    hisi_mcu_load_image:  [DST 0x5e16e84] 0x9 0x1020640 0x10001 0x8f0d180
 INFO:    hisi_mcu_load_image: mcu sections 3:
-INFO:    hisi_mcu_load_image:  src  = 0x10074b4
-INFO:    hisi_mcu_load_image:  dst  = 0xfff8e000
-INFO:    hisi_mcu_load_image:  size = 12704
-INFO:    hisi_mcu_load_image:  [SRC 0x10074b4] 0x55 0x0 0x0 0x0
-INFO:    hisi_mcu_load_image:  [DST 0xfff8e000] 0x55 0x0 0x0 0x0
-INFO:    hisi_mcu_load_image: mcu sections 4:
-INFO:    hisi_mcu_load_image:  src  = 0x100a654
-INFO:    hisi_mcu_load_image:  dst  = 0x5e00000
-INFO:    hisi_mcu_load_image:  size = 82912
-INFO:    hisi_mcu_load_image:  [SRC 0x100a654] 0x4ff0e92d 0x2cc5f645 0x2600b0ab 0x2c7cf6c0
-INFO:    hisi_mcu_load_image:  [DST 0x5e00000] 0x4ff0e92d 0x2cc5f645 0x2600b0ab 0x2c7cf6c0
-INFO:    hisi_mcu_load_image: mcu sections 5:
-INFO:    hisi_mcu_load_image:  src  = 0x101ea34
-INFO:    hisi_mcu_load_image:  dst  = 0x5e143e0
-INFO:    hisi_mcu_load_image:  size = 12816
-INFO:    hisi_mcu_load_image:  [SRC 0x101ea34] 0x33323130 0x37363534 0x42413938 0x46454443
-INFO:    hisi_mcu_load_image:  [DST 0x5e143e0] 0x33323130 0x37363534 0x42413938 0x46454443
-INFO:    hisi_mcu_load_image: mcu sections 6:
-INFO:    hisi_mcu_load_image:  src  = 0x1021c44
-INFO:    hisi_mcu_load_image:  dst  = 0x5e1c1d0
+INFO:    hisi_mcu_load_image:  src  = 0x1022698
+INFO:    hisi_mcu_load_image:  dst  = 0x5e22a10
 INFO:    hisi_mcu_load_image:  size = 3060
-INFO:    hisi_mcu_load_image:  [SRC 0x1021c44] 0x0 0x0 0x0 0x0
-INFO:    hisi_mcu_load_image:  [DST 0x5e1c1d0] 0x0 0x0 0x0 0x0
-INFO:    hisi_mcu_load_image: mcu sections 7:
-INFO:    hisi_mcu_load_image:  src  = 0x1022838
-INFO:    hisi_mcu_load_image:  dst  = 0x5e1cdc4
+INFO:    hisi_mcu_load_image:  [SRC 0x1022698] 0x0 0x0 0x0 0x0
+INFO:    hisi_mcu_load_image:  [DST 0x5e22a10] 0x0 0x0 0x0 0x0
+INFO:    hisi_mcu_load_image: mcu sections 4:
+INFO:    hisi_mcu_load_image:  src  = 0x102328c
+INFO:    hisi_mcu_load_image:  dst  = 0x5e23604
 INFO:    hisi_mcu_load_image:  size = 2616
-INFO:    hisi_mcu_load_image:  [SRC 0x1022838] 0xf80000a0 0x0 0xf80000ac 0x0
-INFO:    hisi_mcu_load_image:  [DST 0x5e1cdc4] 0xf80000a0 0x0 0xf80000ac 0x0
+INFO:    hisi_mcu_load_image:  [SRC 0x102328c] 0xf80000a0 0x0 0xf80000ac 0x0
+INFO:    hisi_mcu_load_image:  [DST 0x5e23604] 0xf80000a0 0x0 0xf80000ac 0x0
 INFO:    hisi_mcu_start_run: AO_SC_SYS_CTRL2=0
-INFO:    bl2_plat_handle_bl30: mcu pc is 42933301
-INFO:    bl2_plat_handle_bl30: AO_SC_PERIPH_CLKSTAT4   is 39018f09
-INFO:    BL2: TrustZone: protecting 16777216 bytes of memory at 0x3f000000
-INFO:    BL2: Loading BL3-1
-INFO:    Using FIP
-INFO:    Loading file 'bl31.bin' at address 0xf9858000
-INFO:    File 'bl31.bin' loaded: 0xf9858000 - 0xf9861010
-INFO:    BL2: Loading BL3-2
-INFO:    Using FIP
-WARNING: Failed to access image 'bl32.bin' (-1)
-WARNING: Failed to load BL3-2 (-1)
-INFO:    BL2: Loading BL3-3
-INFO:    Using FIP
-INFO:    Loading file 'bl33.bin' at address 0x35000000
-INFO:    File 'bl33.bin' loaded: 0x35000000 - 0x3504c468
-NOTICE:  BL1: Booting BL3-1
-INFO:    BL1: BL3-1 address = 0xf9858000
-INFO:    BL1: BL3-1 spsr = 0x3cd
-INFO:    BL1: BL3-1 params address = 0xf9821920
-INFO:    BL1: BL3-1 plat params address = 0x0
-NOTICE:  BL3-1: v1.1(debug):e8b7174
-NOTICE:  BL3-1: Built : 19:16:49, Sep  8 2015
-INFO:    BL3-1: Initializing runtime services
-INFO:    BL3-1: Preparing for EL3 exit to normal world
-INFO:    BL3-1: Next image address = 0x35000000
-INFO:    BL3-1: Next image spsr = 0x3c9
-
-U-Boot 2015.10-rc2 (Sep 08 2015 - 20:29:33 +0100)hikey
-
-DRAM:  1008 MiB
+INFO:    plat_hikey_bl2_handle_scp_bl2: MCU PC is at 0x42933301
+INFO:    plat_hikey_bl2_handle_scp_bl2: AO_SC_PERIPH_CLKSTAT4 is 0x3b018f09
+WARNING: BL2: Platform setup already done!!
+INFO:    BL2: Loading image id 3
+INFO:    Loading image id=3 at address 0xf9858000
+INFO:    Image id=3 loaded: 0xf9858000 - 0xf9860058
+INFO:    BL2: Loading image id 5
+INFO:    Loading image id=5 at address 0x35000000
+INFO:    Image id=5 loaded: 0x35000000 - 0x35061cd2
+NOTICE:  BL2: Booting BL31
+INFO:    Entry point address = 0xf9858000
+INFO:    SPSR = 0x3cd
+NOTICE:  BL31: v1.5(debug):v1.5-694-g6d4f6aea
+NOTICE:  BL31: Built : 09:21:44, Aug 29 2018
+WARNING: Using deprecated integer interrupt array in gicv2_driver_data_t
+WARNING: Please migrate to using an interrupt_prop_t array
+INFO:    ARM GICv2 driver initialized
+INFO:    BL31: Initializing runtime services
+INFO:    BL31: cortex_a53: CPU workaround for disable_non_temporal_hint was applied
+INFO:    BL31: cortex_a53: CPU workaround for 843419 was applied
+INFO:    BL31: cortex_a53: CPU workaround for 855873 was applied
+INFO:    BL31: Preparing for EL3 exit to normal world
+INFO:    Entry point address = 0x35000000
+INFO:    SPSR = 0x3c9
+
+
+U-Boot 2018.09-rc1 (Aug 22 2018 - 14:55:49 +0530)hikey
+
+DRAM:  990 MiB
 HI6553 PMIC init
-MMC:   config_sd_carddetect: SD card not present
-HiKey DWMMC: 0, HiKey DWMMC: 1
-Card did not respond to voltage select!
-** Bad device mmc 1 **
-Using default environment
-
-In:    serial
-Out:   serial
-Err:   serial
+MMC:   config_sd_carddetect: SD card present
+Hisilicon DWMMC: 0, Hisilicon DWMMC: 1
+Loading Environment from FAT... Unable to use mmc 1:1... Failed (-5)
+In:    uart@f7113000
+Out:   uart@f7113000
+Err:   uart@f7113000
 Net:   Net Initialization Skipped
 No ethernet found.
 Hit any key to stop autoboot:  0
 starting USB...
-USB0:   Core Release: 3.00a
-scanning bus 0 for devices... 2 USB Device(s) found
+USB0:   scanning bus 0 for devices... 2 USB Device(s) found
        scanning usb for storage devices... 0 Storage Device(s) found
        scanning usb for ethernet devices... 0 Ethernet Device(s) found