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