poplar.rst 5.4 KB

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