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