1Poplar 2====== 3 4Poplar is the first development board compliant with the 96Boards Enterprise 5Edition TV Platform specification. 6 7The board features the Hi3798C V200 with an integrated quad-core 64-bit 8Arm Cortex A53 processor and high performance Mali T720 GPU, making it capable 9of running any commercial set-top solution based on Linux or Android. 10 11It supports a premium user experience with up to H.265 HEVC decoding of 4K 12video at 60 frames per second. 13 14:: 15 16 SOC Hisilicon Hi3798CV200 17 CPU Quad-core Arm Cortex-A53 64 bit 18 DRAM DDR3/3L/4 SDRAM interface, maximum 32-bit data width 2 GB 19 USB Two USB 2.0 ports One USB 3.0 ports 20 CONSOLE USB-micro port for console support 21 ETHERNET 1 GBe Ethernet 22 PCIE One PCIe 2.0 interfaces 23 JTAG 8-Pin JTAG 24 EXPANSION INTERFACE Linaro 96Boards Low Speed Expansion slot 25 DIMENSION Standard 160×120 mm 96Boards Enterprice Edition form factor 26 WIFI 802.11AC 2*2 with Bluetooth 27 CONNECTORS One connector for Smart Card One connector for TSI 28 29At the start of the boot sequence, the bootROM executes the so called l-loader 30binary whose main role is to change the processor state to 64bit mode. This 31must happen prior to invoking Trusted Firmware-A: 32 33:: 34 35 l-loader --> Trusted Firmware-A --> u-boot 36 37How to build 38------------ 39 40Code Locations 41~~~~~~~~~~~~~~ 42 43- Trusted Firmware-A: 44 `link <https://github.com/ARM-software/arm-trusted-firmware>`__ 45 46- l-loader: 47 `link <https://github.com/Linaro/poplar-l-loader.git>`__ 48 49- u-boot: 50 `link <http://git.denx.de/u-boot.git>`__ 51 52Build Procedure 53~~~~~~~~~~~~~~~ 54 55- Fetch all the above 3 repositories into local host. 56 Make all the repositories in the same ${BUILD\_PATH}. 57 58- Prepare the AARCH64 toolchain. 59 60- Build u-boot using poplar_defconfig 61 62.. code:: bash 63 64 make CROSS_COMPILE=aarch64-linux-gnu- poplar_defconfig 65 make CROSS_COMPILE=aarch64-linux-gnu- 66 67- Build atf providing the previously generated u-boot.bin as the BL33 image 68 69.. code:: bash 70 71 make CROSS_COMPILE=aarch64-linux-gnu- all fip SPD=none PLAT=poplar 72 BL33=u-boot.bin 73 74- Build l-loader (generated the final fastboot.bin) 75 1. copy the atf generated files fip.bin and bl1.bin to l-loader/atf/ 76 2. export ARM_TRUSTED_FIRMWARE=${ATF_SOURCE_PATH) 77 3. make 78 79Install Procedure 80----------------- 81 82- Copy l-loader/fastboot.bin to a FAT partition on a USB pen drive. 83 84- Plug the USB pen drive to any of the USB2 ports 85 86- Power the board while keeping S3 pressed (usb_boot) 87 88The system will boot into a u-boot shell which you can then use to write the 89working firmware to eMMC. 90 91Boot trace 92---------- 93 94:: 95 96 Bootrom start 97 Boot Media: eMMC 98 Decrypt auxiliary code ...OK 99 100 lsadc voltage min: 000000FE, max: 000000FF, aver: 000000FE, index: 00000000 101 102 Entry boot auxiliary code 103 104 Auxiliary code - v1.00 105 DDR code - V1.1.2 20160205 106 Build: Mar 24 2016 - 17:09:44 107 Reg Version: v134 108 Reg Time: 2016/03/18 09:44:55 109 Reg Name: hi3798cv2dmb_hi3798cv200_ddr3_2gbyte_8bitx4_4layers.reg 110 111 Boot auxiliary code success 112 Bootrom success 113 114 LOADER: Switched to aarch64 mode 115 LOADER: Entering ARM TRUSTED FIRMWARE 116 LOADER: CPU0 executes at 0x000ce000 117 118 INFO: BL1: 0xe1000 - 0xe7000 [size = 24576] 119 NOTICE: Booting Trusted Firmware 120 NOTICE: BL1: v1.3(debug):v1.3-372-g1ba9c60 121 NOTICE: BL1: Built : 17:51:33, Apr 30 2017 122 INFO: BL1: RAM 0xe1000 - 0xe7000 123 INFO: BL1: Loading BL2 124 INFO: Loading image id=1 at address 0xe9000 125 INFO: Image id=1 loaded at address 0xe9000, size = 0x5008 126 NOTICE: BL1: Booting BL2 127 INFO: Entry point address = 0xe9000 128 INFO: SPSR = 0x3c5 129 NOTICE: BL2: v1.3(debug):v1.3-372-g1ba9c60 130 NOTICE: BL2: Built : 17:51:33, Apr 30 2017 131 INFO: BL2: Loading BL31 132 INFO: Loading image id=3 at address 0x129000 133 INFO: Image id=3 loaded at address 0x129000, size = 0x8038 134 INFO: BL2: Loading BL33 135 INFO: Loading image id=5 at address 0x37000000 136 INFO: Image id=5 loaded at address 0x37000000, size = 0x58f17 137 NOTICE: BL1: Booting BL31 138 INFO: Entry point address = 0x129000 139 INFO: SPSR = 0x3cd 140 INFO: Boot bl33 from 0x37000000 for 364311 Bytes 141 NOTICE: BL31: v1.3(debug):v1.3-372-g1ba9c60 142 NOTICE: BL31: Built : 17:51:33, Apr 30 2017 143 INFO: BL31: Initializing runtime services 144 INFO: BL31: Preparing for EL3 exit to normal world 145 INFO: Entry point address = 0x37000000 146 INFO: SPSR = 0x3c9 147 148 149 U-Boot 2017.05-rc2-00130-gd2255b0 (Apr 30 2017 - 17:51:28 +0200)poplar 150 151 Model: HiSilicon Poplar Development Board 152 BOARD: Hisilicon HI3798cv200 Poplar 153 DRAM: 1 GiB 154 MMC: Hisilicon DWMMC: 0 155 In: serial@f8b00000 156 Out: serial@f8b00000 157 Err: serial@f8b00000 158 Net: Net Initialization Skipped 159 No ethernet found. 160 161 Hit any key to stop autoboot: 0 162 starting USB... 163 USB0: USB EHCI 1.00 164 scanning bus 0 for devices... 1 USB Device(s) found 165 USB1: USB EHCI 1.00 166 scanning bus 1 for devices... 4 USB Device(s) found 167 scanning usb for storage devices... 1 Storage Device(s) found 168 scanning usb for ethernet devices... 1 Ethernet Device(s) found 169 170 USB device 0: 171 Device 0: Vendor: SanDisk Rev: 1.00 Prod: Cruzer Blade 172 Type: Removable Hard Disk 173 Capacity: 7632.0 MB = 7.4 GB (15630336 x 512) 174 ... is now current device 175 Scanning usb 0:1... 176 => 177