blob: 215f551429ce773f39731d345b45433b273999c6 [file] [log] [blame]
Paul Beesley743d0882019-09-25 12:58:36 +00001Poplar
2======
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +02003
4Poplar is the first development board compliant with the 96Boards Enterprise
5Edition TV Platform specification.
6
7The board features the Hi3798C V200 with an integrated quad-core 64-bit
Dan Handley610e7e12018-03-01 18:44:00 +00008Arm Cortex A53 processor and high performance Mali T720 GPU, making it capable
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +02009of running any commercial set-top solution based on Linux or Android.
10
11It supports a premium user experience with up to H.265 HEVC decoding of 4K
12video at 60 frames per second.
13
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +000014::
15
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020016 SOC Hisilicon Hi3798CV200
Dan Handley610e7e12018-03-01 18:44:00 +000017 CPU Quad-core Arm Cortex-A53 64 bit
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020018 DRAM DDR3/3L/4 SDRAM interface, maximum 32-bit data width 2 GB
19 USB Two USB 2.0 ports One USB 3.0 ports
20 CONSOLE USB-micro port for console support
21 ETHERNET 1 GBe Ethernet
22 PCIE One PCIe 2.0 interfaces
23 JTAG 8-Pin JTAG
24 EXPANSION INTERFACE Linaro 96Boards Low Speed Expansion slot
25 DIMENSION Standard 160×120 mm 96Boards Enterprice Edition form factor
26 WIFI 802.11AC 2*2 with Bluetooth
27 CONNECTORS One connector for Smart Card One connector for TSI
28
29At the start of the boot sequence, the bootROM executes the so called l-loader
30binary whose main role is to change the processor state to 64bit mode. This
Dan Handley610e7e12018-03-01 18:44:00 +000031must happen prior to invoking Trusted Firmware-A:
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020032
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +000033::
34
Dan Handley610e7e12018-03-01 18:44:00 +000035 l-loader --> Trusted Firmware-A --> u-boot
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020036
37How to build
Paul Beesley743d0882019-09-25 12:58:36 +000038------------
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020039
40Code Locations
Paul Beesley743d0882019-09-25 12:58:36 +000041~~~~~~~~~~~~~~
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020042
Dan Handley610e7e12018-03-01 18:44:00 +000043- Trusted Firmware-A:
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020044 `link <https://github.com/ARM-software/arm-trusted-firmware>`__
45
46- l-loader:
47 `link <https://github.com/Linaro/poplar-l-loader.git>`__
48
49- u-boot:
50 `link <http://git.denx.de/u-boot.git>`__
51
52Build Procedure
Paul Beesley743d0882019-09-25 12:58:36 +000053~~~~~~~~~~~~~~~
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020054
55- Fetch all the above 3 repositories into local host.
56 Make all the repositories in the same ${BUILD\_PATH}.
57
58- Prepare the AARCH64 toolchain.
59
60- Build u-boot using poplar_defconfig
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +000061
62.. code:: bash
63
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020064 make CROSS_COMPILE=aarch64-linux-gnu- poplar_defconfig
65 make CROSS_COMPILE=aarch64-linux-gnu-
66
67- Build atf providing the previously generated u-boot.bin as the BL33 image
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +000068
69.. code:: bash
70
Mark Dykesef3a4562020-01-08 20:37:18 +000071 make CROSS_COMPILE=aarch64-linux-gnu- all fip SPD=none PLAT=poplar
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020072 BL33=u-boot.bin
73
74- Build l-loader (generated the final fastboot.bin)
75 1. copy the atf generated files fip.bin and bl1.bin to l-loader/atf/
76 2. export ARM_TRUSTED_FIRMWARE=${ATF_SOURCE_PATH)
77 3. make
78
79Install Procedure
80-----------------
81
82- Copy l-loader/fastboot.bin to a FAT partition on a USB pen drive.
83
84- Plug the USB pen drive to any of the USB2 ports
85
86- Power the board while keeping S3 pressed (usb_boot)
87
88The system will boot into a u-boot shell which you can then use to write the
89working firmware to eMMC.
90
91Boot trace
Paul Beesley743d0882019-09-25 12:58:36 +000092----------
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020093
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +000094::
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020095
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +000096 Bootrom start
97 Boot Media: eMMC
98 Decrypt auxiliary code ...OK
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +020099
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000100 lsadc voltage min: 000000FE, max: 000000FF, aver: 000000FE, index: 00000000
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200101
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000102 Entry boot auxiliary code
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200103
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000104 Auxiliary code - v1.00
105 DDR code - V1.1.2 20160205
106 Build: Mar 24 2016 - 17:09:44
107 Reg Version: v134
108 Reg Time: 2016/03/18 09:44:55
109 Reg Name: hi3798cv2dmb_hi3798cv200_ddr3_2gbyte_8bitx4_4layers.reg
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200110
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000111 Boot auxiliary code success
112 Bootrom success
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200113
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000114 LOADER: Switched to aarch64 mode
115 LOADER: Entering ARM TRUSTED FIRMWARE
116 LOADER: CPU0 executes at 0x000ce000
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200117
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000118 INFO: BL1: 0xe1000 - 0xe7000 [size = 24576]
119 NOTICE: Booting Trusted Firmware
120 NOTICE: BL1: v1.3(debug):v1.3-372-g1ba9c60
121 NOTICE: BL1: Built : 17:51:33, Apr 30 2017
122 INFO: BL1: RAM 0xe1000 - 0xe7000
123 INFO: BL1: Loading BL2
124 INFO: Loading image id=1 at address 0xe9000
125 INFO: Image id=1 loaded at address 0xe9000, size = 0x5008
126 NOTICE: BL1: Booting BL2
127 INFO: Entry point address = 0xe9000
128 INFO: SPSR = 0x3c5
129 NOTICE: BL2: v1.3(debug):v1.3-372-g1ba9c60
130 NOTICE: BL2: Built : 17:51:33, Apr 30 2017
131 INFO: BL2: Loading BL31
132 INFO: Loading image id=3 at address 0x129000
133 INFO: Image id=3 loaded at address 0x129000, size = 0x8038
134 INFO: BL2: Loading BL33
135 INFO: Loading image id=5 at address 0x37000000
136 INFO: Image id=5 loaded at address 0x37000000, size = 0x58f17
137 NOTICE: BL1: Booting BL31
138 INFO: Entry point address = 0x129000
139 INFO: SPSR = 0x3cd
140 INFO: Boot bl33 from 0x37000000 for 364311 Bytes
141 NOTICE: BL31: v1.3(debug):v1.3-372-g1ba9c60
142 NOTICE: BL31: Built : 17:51:33, Apr 30 2017
143 INFO: BL31: Initializing runtime services
144 INFO: BL31: Preparing for EL3 exit to normal world
145 INFO: Entry point address = 0x37000000
146 INFO: SPSR = 0x3c9
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200147
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200148
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000149 U-Boot 2017.05-rc2-00130-gd2255b0 (Apr 30 2017 - 17:51:28 +0200)poplar
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200150
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000151 Model: HiSilicon Poplar Development Board
152 BOARD: Hisilicon HI3798cv200 Poplar
153 DRAM: 1 GiB
154 MMC: Hisilicon DWMMC: 0
155 In: serial@f8b00000
156 Out: serial@f8b00000
157 Err: serial@f8b00000
158 Net: Net Initialization Skipped
159 No ethernet found.
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200160
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000161 Hit any key to stop autoboot: 0
162 starting USB...
163 USB0: USB EHCI 1.00
164 scanning bus 0 for devices... 1 USB Device(s) found
165 USB1: USB EHCI 1.00
166 scanning bus 1 for devices... 4 USB Device(s) found
167 scanning usb for storage devices... 1 Storage Device(s) found
168 scanning usb for ethernet devices... 1 Ethernet Device(s) found
Jorge Ramirez-Ortiza29d9a62017-06-28 10:11:31 +0200169
Antonio Nino Diaz7d13a462017-12-06 10:33:15 +0000170 USB device 0:
171 Device 0: Vendor: SanDisk Rev: 1.00 Prod: Cruzer Blade
172 Type: Removable Hard Disk
173 Capacity: 7632.0 MB = 7.4 GB (15630336 x 512)
174 ... is now current device
175 Scanning usb 0:1...
176 =>