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