1HiKey 2===== 3 4HiKey is one of 96boards. Hisilicon Kirin6220 processor is installed on HiKey. 5 6More information are listed in `link`_. 7 8How to build 9------------ 10 11Code Locations 12~~~~~~~~~~~~~~ 13 14- Trusted Firmware-A: 15 `link <https://github.com/ARM-software/arm-trusted-firmware>`__ 16 17- OP-TEE 18 `link <https://github.com/OP-TEE/optee_os>`__ 19 20- edk2: 21 `link <https://github.com/96boards-hikey/edk2/tree/testing/hikey960_v2.5>`__ 22 23- OpenPlatformPkg: 24 `link <https://github.com/96boards-hikey/OpenPlatformPkg/tree/testing/hikey960_v1.3.4>`__ 25 26- l-loader: 27 `link <https://github.com/96boards-hikey/l-loader/tree/testing/hikey960_v1.2>`__ 28 29- atf-fastboot: 30 `link <https://github.com/96boards-hikey/atf-fastboot/tree/master>`__ 31 32Build Procedure 33~~~~~~~~~~~~~~~ 34 35- Fetch all the above repositories into local host. 36 Make all the repositories in the same ${BUILD\_PATH}. 37 38 .. code:: shell 39 40 git clone https://github.com/ARM-software/arm-trusted-firmware -b integration 41 git clone https://github.com/OP-TEE/optee_os 42 git clone https://github.com/96boards-hikey/edk2 -b testing/hikey960_v2.5 43 git clone https://github.com/96boards-hikey/OpenPlatformPkg -b testing/hikey960_v1.3.4 44 git clone https://github.com/96boards-hikey/l-loader -b testing/hikey960_v1.2 45 git clone https://github.com/96boards-hikey/atf-fastboot 46 47- Create the symbol link to OpenPlatformPkg in edk2. 48 49 .. code:: shell 50 51 $cd ${BUILD_PATH}/edk2 52 $ln -sf ../OpenPlatformPkg 53 54- Prepare AARCH64 && AARCH32 toolchain. Prepare python. 55 56- If your hikey hardware is built by CircuitCo, update *OpenPlatformPkg/Platforms/Hisilicon/HiKey/HiKey.dsc* first. *(optional)* 57 console on hikey.** 58 59 .. code:: shell 60 61 DEFINE SERIAL_BASE=0xF8015000 62 63 If your hikey hardware is built by LeMaker, nothing to do. 64 65- Build it as debug mode. Create your own build script file or you could refer to **build\_uefi.sh** in l-loader git repository. 66 67 .. code:: shell 68 69 cd {BUILD_PATH}/arm-trusted-firmware 70 sh ../l-loader/build_uefi.sh hikey 71 72- Generate l-loader.bin and partition table for aosp. The eMMC capacity is either 8GB or 4GB. Just change "aosp-8g" to "linux-8g" for debian. 73 74 .. code:: shell 75 76 cd ${BUILD_PATH}/l-loader 77 ln -sf ${EDK2_OUTPUT_DIR}/FV/bl1.bin 78 ln -sf ${EDK2_OUTPUT_DIR}/FV/bl2.bin 79 ln -sf ${BUILD_PATH}/atf-fastboot/build/hikey/${FASTBOOT_BUILD_OPTION}/bl1.bin fastboot.bin 80 make hikey PTABLE_LST=aosp-8g 81 82Setup Console 83------------- 84 85- Install ser2net. Use telnet as the console since UEFI fails to display Boot Manager GUI in minicom. **If you don't need Boot Manager GUI, just ignore this section.** 86 87 .. code:: shell 88 89 $sudo apt-get install ser2net 90 91- Configure ser2net. 92 93 .. code:: shell 94 95 $sudo vi /etc/ser2net.conf 96 97 Append one line for serial-over-USB in below. 98 *#ser2net.conf* 99 100 .. code:: shell 101 102 2004:telnet:0:/dev/ttyUSB0:115200 8DATABITS NONE 1STOPBIT banner 103 104- Start ser2net 105 106 .. code:: shell 107 108 $sudo killall ser2net 109 $sudo ser2net -u 110 111- Open the console. 112 113 .. code:: shell 114 115 $telnet localhost 2004 116 117 And you could open the console remotely, too. 118 119Flash images in recovery mode 120----------------------------- 121 122- Make sure Pin3-Pin4 on J15 are connected for recovery mode. Then power on HiKey. 123 124- Remove the modemmanager package. This package may cause the idt tool failure. 125 126 .. code:: shell 127 128 $sudo apt-get purge modemmanager 129 130- Run the command to download recovery.bin into HiKey. 131 132 .. code:: shell 133 134 $sudo python hisi-idt.py -d /dev/ttyUSB1 --img1 recovery.bin 135 136- Update images. All aosp or debian images could be fetched from `link <http://releases.linaro.org/96boards/>`__. 137 138 .. code:: shell 139 140 $sudo fastboot flash ptable prm_ptable.img 141 $sudo fastboot flash loader l-loader.bin 142 $sudo fastboot flash fastboot fip.bin 143 $sudo fastboot flash boot boot.img 144 $sudo fastboot flash cache cache.img 145 $sudo fastboot flash system system.img 146 $sudo fastboot flash userdata userdata.img 147 148Boot UEFI in normal mode 149------------------------ 150 151- Make sure Pin3-Pin4 on J15 are open for normal boot mode. Then power on HiKey. 152 153- Reference `link <https://github.com/96boards-hikey/tools-images-hikey960/blob/master/build-from-source/README-ATF-UEFI-build-from-source.md>`__ 154 155.. _link: https://www.96boards.org/documentation/consumer/hikey/ 156