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