Poplar ====== Poplar is the first development board compliant with the 96Boards Enterprise Edition TV Platform specification. The board features the Hi3798C V200 with an integrated quad-core 64-bit Arm Cortex A53 processor and high performance Mali T720 GPU, making it capable of running any commercial set-top solution based on Linux or Android. It supports a premium user experience with up to H.265 HEVC decoding of 4K video at 60 frames per second. :: SOC Hisilicon Hi3798CV200 CPU Quad-core Arm Cortex-A53 64 bit DRAM DDR3/3L/4 SDRAM interface, maximum 32-bit data width 2 GB USB Two USB 2.0 ports One USB 3.0 ports CONSOLE USB-micro port for console support ETHERNET 1 GBe Ethernet PCIE One PCIe 2.0 interfaces JTAG 8-Pin JTAG EXPANSION INTERFACE Linaro 96Boards Low Speed Expansion slot DIMENSION Standard 160×120 mm 96Boards Enterprice Edition form factor WIFI 802.11AC 2*2 with Bluetooth CONNECTORS One connector for Smart Card One connector for TSI At the start of the boot sequence, the bootROM executes the so called l-loader binary whose main role is to change the processor state to 64bit mode. This must happen prior to invoking Trusted Firmware-A: :: l-loader --> Trusted Firmware-A --> u-boot How to build ------------ Code Locations ~~~~~~~~~~~~~~ - Trusted Firmware-A: `link `__ - l-loader: `link `__ - u-boot: `link `__ Build Procedure ~~~~~~~~~~~~~~~ - Fetch all the above 3 repositories into local host. Make all the repositories in the same ${BUILD\_PATH}. - Prepare the AARCH64 toolchain. - Build u-boot using poplar_defconfig .. code:: bash make CROSS_COMPILE=aarch64-linux-gnu- poplar_defconfig make CROSS_COMPILE=aarch64-linux-gnu- - Build atf providing the previously generated u-boot.bin as the BL33 image .. code:: bash make CROSS_COMPILE=aarch64-linux-gnu- all fip SPD=none PLAT=poplar BL33=u-boot.bin - Build l-loader (generated the final fastboot.bin) 1. copy the atf generated files fip.bin and bl1.bin to l-loader/atf/ 2. export ARM_TRUSTED_FIRMWARE=${ATF_SOURCE_PATH) 3. make Install Procedure ----------------- - Copy l-loader/fastboot.bin to a FAT partition on a USB pen drive. - Plug the USB pen drive to any of the USB2 ports - Power the board while keeping S3 pressed (usb_boot) The system will boot into a u-boot shell which you can then use to write the working firmware to eMMC. Boot trace ---------- :: Bootrom start Boot Media: eMMC Decrypt auxiliary code ...OK lsadc voltage min: 000000FE, max: 000000FF, aver: 000000FE, index: 00000000 Entry boot auxiliary code Auxiliary code - v1.00 DDR code - V1.1.2 20160205 Build: Mar 24 2016 - 17:09:44 Reg Version: v134 Reg Time: 2016/03/18 09:44:55 Reg Name: hi3798cv2dmb_hi3798cv200_ddr3_2gbyte_8bitx4_4layers.reg Boot auxiliary code success Bootrom success LOADER: Switched to aarch64 mode LOADER: Entering ARM TRUSTED FIRMWARE LOADER: CPU0 executes at 0x000ce000 INFO: BL1: 0xe1000 - 0xe7000 [size = 24576] NOTICE: Booting Trusted Firmware NOTICE: BL1: v1.3(debug):v1.3-372-g1ba9c60 NOTICE: BL1: Built : 17:51:33, Apr 30 2017 INFO: BL1: RAM 0xe1000 - 0xe7000 INFO: BL1: Loading BL2 INFO: Loading image id=1 at address 0xe9000 INFO: Image id=1 loaded at address 0xe9000, size = 0x5008 NOTICE: BL1: Booting BL2 INFO: Entry point address = 0xe9000 INFO: SPSR = 0x3c5 NOTICE: BL2: v1.3(debug):v1.3-372-g1ba9c60 NOTICE: BL2: Built : 17:51:33, Apr 30 2017 INFO: BL2: Loading BL31 INFO: Loading image id=3 at address 0x129000 INFO: Image id=3 loaded at address 0x129000, size = 0x8038 INFO: BL2: Loading BL33 INFO: Loading image id=5 at address 0x37000000 INFO: Image id=5 loaded at address 0x37000000, size = 0x58f17 NOTICE: BL1: Booting BL31 INFO: Entry point address = 0x129000 INFO: SPSR = 0x3cd INFO: Boot bl33 from 0x37000000 for 364311 Bytes NOTICE: BL31: v1.3(debug):v1.3-372-g1ba9c60 NOTICE: BL31: Built : 17:51:33, Apr 30 2017 INFO: BL31: Initializing runtime services INFO: BL31: Preparing for EL3 exit to normal world INFO: Entry point address = 0x37000000 INFO: SPSR = 0x3c9 U-Boot 2017.05-rc2-00130-gd2255b0 (Apr 30 2017 - 17:51:28 +0200)poplar Model: HiSilicon Poplar Development Board BOARD: Hisilicon HI3798cv200 Poplar DRAM: 1 GiB MMC: Hisilicon DWMMC: 0 In: serial@f8b00000 Out: serial@f8b00000 Err: serial@f8b00000 Net: Net Initialization Skipped No ethernet found. Hit any key to stop autoboot: 0 starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... 1 USB Device(s) found USB1: USB EHCI 1.00 scanning bus 1 for devices... 4 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found scanning usb for ethernet devices... 1 Ethernet Device(s) found USB device 0: Device 0: Vendor: SanDisk Rev: 1.00 Prod: Cruzer Blade Type: Removable Hard Disk Capacity: 7632.0 MB = 7.4 GB (15630336 x 512) ... is now current device Scanning usb 0:1... =>