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