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