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