Home | History | Annotate | only in /external/u-boot/board/hisilicon/poplar
Up to higher level directory
NameDateSize
Kconfig22-Oct-2020181
MAINTAINERS22-Oct-2020185
Makefile22-Oct-2020139
poplar.c22-Oct-20203.8K
README22-Oct-20209.2K

README

      1 ================================================================================
      2 			Board Information
      3 ================================================================================
      4 
      5 Developed by HiSilicon, the board features the Hi3798C V200 with an
      6 integrated quad-core 64-bit ARM Cortex A53 processor and high
      7 performance Mali T720 GPU, making it capable of running any commercial
      8 set-top solution based on Linux or Android. Its high performance
      9 specification also supports a premium user experience with up to H.265
     10 HEVC decoding of 4K video at 60 frames per second.
     11 
     12 SOC  Hisilicon Hi3798CV200
     13 CPU  Quad-core ARM Cortex-A53 64 bit
     14 DRAM DDR3/3L/4 SDRAM interface, maximum 32-bit data width 2 GB
     15 USB  Two USB 2.0 ports One USB 3.0 ports
     16 CONSOLE  USB-micro port for console support
     17 ETHERNET  1 GBe Ethernet
     18 PCIE  One PCIe 2.0 interfaces
     19 JTAG  8-Pin JTAG
     20 EXPANSION INTERFACE  Linaro 96Boards Low Speed Expansion slot
     21 DIMENSION Standard 160120 mm 96Boards Enterprice Edition form factor
     22 WIFI  802.11AC 2*2 with Bluetooth
     23 CONNECTORS  One connector for Smart Card One connector for TSI
     24 
     25 
     26 ================================================================================
     27 			BUILD INSTRUCTIONS
     28 ================================================================================
     29 
     30 Note of warning:
     31 ================
     32 
     33 U-boot has a *strong* dependency with the l-loader and the arm trusted firmware
     34 repositories.
     35 
     36 The boot sequence is:
     37 	l-loader --> arm_trusted_firmware --> u-boot
     38 
     39 U-Boot needs to be aware of the BL31 runtime location and size to avoid writing
     40 over it. Currently, BL31 is being placed below the kernel text offset (check
     41 poplar.c) but this could change in the future.
     42 
     43 The current version of u-boot has been tested with:
     44  - https://github.com/Linaro/poplar-l-loader.git
     45 
     46 	commit f0988698dcc5c08bd0a8f50aa0457e138a5f438c
     47 	Author: Alex Elder <elder (a] linaro.org>
     48 	Date:   Fri Jun 16 08:57:59 2017 -0500
     49 
     50     l-loader: use external memory region definitions
     51 
     52     The ARM Trusted Firmware code now has a header file that collects
     53     all the definitions for the memory regions used for its boot stages.
     54     Include that file where needed, and use the definitions found therein
     55 
     56     Signed-off-by: Alex Elder <elder (a] linaro.org>
     57 
     58 
     59  - https://github.com/Linaro/poplar-arm-trusted-firmware.git
     60 
     61 	commit 6ac42dd3be13c99aa8ce29a15073e2f19d935f68
     62 	Author: Alex Elder <elder (a] linaro.org>
     63 	Date:   Fri Jun 16 09:24:50 2017 -0500
     64 
     65     poplar: define memory regions in a separate file
     66 
     67     Separate the definitions for memory regions used for the BL stage
     68     images and FIP into a new file.  The "l-loader" image uses knowledge
     69     of the sizes and locations of these memory regions, and it can now
     70     include this (external) header to get these definitions, rather than
     71     having to make coordinated changes to both code bases.
     72 
     73     The new file has a complete set of definitions (more than may be
     74     required by one or the other user).  It also includes a summary of
     75     how the boot process works, and how it uses these regions.
     76 
     77     It should now be relatively easy to adjust the sizes and locations
     78     of these memory regions, or to add to them (e.g. for TEE).
     79 
     80     Signed-off-by: Alex Elder <elder (a] linaro.org>
     81 
     82 
     83 Compile from source:
     84 ====================
     85 
     86 Get all the sources
     87 
     88   > mkdir -p ~/poplar/src ~/poplar/bin
     89   > cd ~/poplar/src
     90   > git clone https://github.com/Linaro/poplar-l-loader.git l-loader
     91   > git clone https://github.com/Linaro/poplar-arm-trusted-firmware.git atf
     92   > git clone https://github.com/Linaro/poplar-u-boot.git u-boot
     93 
     94 Make sure you are using the correct branch on each one of these repositories.
     95 The definition of "correct" might change over time (at this moment in time this
     96 would be the "latest" branch).
     97 
     98 Compile U-Boot:
     99 ===============
    100 
    101   Prerequisite:
    102   # sudo apt-get install device-tree-compiler
    103 
    104   > cd ~/poplar/src/u-boot
    105   > make CROSS_COMPILE=aarch64-linux-gnu- poplar_defconfig
    106   > make CROSS_COMPILE=aarch64-linux-gnu-
    107   > cp u-boot.bin ~/poplar/bin
    108 
    109 Compile ARM Trusted Firmware (ATF):
    110 ===================================
    111 
    112   > cd ~/poplar/src/atf
    113   > make CROSS_COMPILE=aarch64-linux-gnu- all fip \
    114 		SPD=none BL33=~/poplar/bin/u-boot.bin DEBUG=1 PLAT=poplar
    115 
    116 Copy resulting binaries
    117   > cp build/hi3798cv200/debug/bl1.bin ~/poplar/src/l-loader/atf/
    118   > cp build/hi3798cv200/debug/fip.bin ~/poplar/src/l-loader/atf/
    119 
    120 Compile l-loader:
    121 =================
    122 
    123   > cd ~/poplar/src/l-loader
    124   > make clean
    125   > make CROSS_COMPILE=arm-linux-gnueabi-
    126 
    127    Due to BootROM requiremets, rename l-loader.bin to fastboot.bin:
    128   > cp l-loader.bin ~/poplar/bin/fastboot.bin
    129 
    130 
    131 ================================================================================
    132 			FLASH INSTRUCTIONS
    133 ================================================================================
    134 
    135 Two methods:
    136 
    137 Using USB debrick support:
    138 	Copy fastboot.bin to a FAT partition on the USB drive and reboot the
    139        poplar board while pressing S3(usb_boot).
    140 
    141        The system will execute the new u-boot and boot into a shell which you
    142        can then use to write to eMMC.
    143 
    144 Using U-BOOT from shell:
    145 	1) using AXIS usb ethernet dongle and tftp
    146 	2) using FAT formated USB drive
    147 
    148 
    149 1. TFTP (USB ethernet dongle)
    150 =============================
    151 
    152 Plug a USB AXIS ethernet dongle on any of the USB2 ports on the Poplar board.
    153 Copy fastboot.bin to your tftp server.
    154 In u-boot make sure your network is properly setup.
    155 
    156 Then
    157 
    158 => tftp 0x30000000 fastboot.bin
    159 starting USB...
    160 USB0:   USB EHCI 1.00
    161 scanning bus 0 for devices... 1 USB Device(s) found
    162 USB1:   USB EHCI 1.00
    163 scanning bus 1 for devices... 3 USB Device(s) found
    164        scanning usb for storage devices... 0 Storage Device(s) found
    165        scanning usb for ethernet devices... 1 Ethernet Device(s) found
    166 Waiting for Ethernet connection... done.
    167 Using asx0 device
    168 TFTP from server 192.168.1.4; our IP address is 192.168.1.10
    169 Filename 'poplar/fastboot.bin'.
    170 Load address: 0x30000000
    171 Loading: #################################################################
    172 	 #################################################################
    173 	 ###############################################################
    174 	 2 MiB/s
    175 done
    176 Bytes transferred = 983040 (f0000 hex)
    177 
    178 => mmc write 0x30000000 0 0x780
    179 
    180 MMC write: dev # 0, block # 0, count 1920 ... 1920 blocks written: OK
    181 => reset
    182 
    183 
    184 2. USING USB FAT DRIVE
    185 =======================
    186 
    187 Copy fastboot.bin to any partition on a FAT32 formated usb flash drive.
    188 Enter the uboot prompt
    189 
    190 => fatls usb 0:2
    191    983040   fastboot.bin
    192 
    193 1 file(s), 0 dir(s)
    194 
    195 => fatload usb 0:2 0x30000000 fastboot.bin
    196 reading fastboot.bin
    197 983040 bytes read in 44 ms (21.3 MiB/s)
    198 
    199 => mmc write 0x30000000 0 0x780
    200 
    201 MMC write: dev # 0, block # 0, count 1920 ... 1920 blocks written: OK
    202 
    203 
    204 ================================================================================
    205 				BOOT TRACE
    206 ================================================================================
    207 
    208 Bootrom start
    209 Boot Media: eMMC
    210 Decrypt auxiliary code ...OK
    211 
    212 lsadc voltage min: 000000FE, max: 000000FF, aver: 000000FE, index: 00000000
    213 
    214 Entry boot auxiliary code
    215 
    216 Auxiliary code - v1.00
    217 DDR code - V1.1.2 20160205
    218 Build: Mar 24 2016 - 17:09:44
    219 Reg Version:  v134
    220 Reg Time:     2016/03/18 09:44:55
    221 Reg Name:     hi3798cv2dmb_hi3798cv200_ddr3_2gbyte_8bitx4_4layers.reg
    222 
    223 Boot auxiliary code success
    224 Bootrom success
    225 
    226 LOADER:  Switched to aarch64 mode
    227 LOADER:  Entering ARM TRUSTED FIRMWARE
    228 LOADER:  CPU0 executes at 0x000ce000
    229 
    230 INFO:    BL1: 0xe1000 - 0xe7000 [size = 24576]
    231 NOTICE:  Booting Trusted Firmware
    232 NOTICE:  BL1: v1.3(debug):v1.3-372-g1ba9c60
    233 NOTICE:  BL1: Built : 17:51:33, Apr 30 2017
    234 INFO:    BL1: RAM 0xe1000 - 0xe7000
    235 INFO:    BL1: Loading BL2
    236 INFO:    Loading image id=1 at address 0xe9000
    237 INFO:    Image id=1 loaded at address 0xe9000, size = 0x5008
    238 NOTICE:  BL1: Booting BL2
    239 INFO:    Entry point address = 0xe9000
    240 INFO:    SPSR = 0x3c5
    241 NOTICE:  BL2: v1.3(debug):v1.3-372-g1ba9c60
    242 NOTICE:  BL2: Built : 17:51:33, Apr 30 2017
    243 INFO:    BL2: Loading BL31
    244 INFO:    Loading image id=3 at address 0x129000
    245 INFO:    Image id=3 loaded at address 0x129000, size = 0x8038
    246 INFO:    BL2: Loading BL33
    247 INFO:    Loading image id=5 at address 0x37000000
    248 INFO:    Image id=5 loaded at address 0x37000000, size = 0x58f17
    249 NOTICE:  BL1: Booting BL31
    250 INFO:    Entry point address = 0x129000
    251 INFO:    SPSR = 0x3cd
    252 INFO:    Boot bl33 from 0x37000000 for 364311 Bytes
    253 NOTICE:  BL31: v1.3(debug):v1.3-372-g1ba9c60
    254 NOTICE:  BL31: Built : 17:51:33, Apr 30 2017
    255 INFO:    BL31: Initializing runtime services
    256 INFO:    BL31: Preparing for EL3 exit to normal world
    257 INFO:    Entry point address = 0x37000000
    258 INFO:    SPSR = 0x3c9
    259 
    260 
    261 U-Boot 2017.05-rc2-00130-gd2255b0 (Apr 30 2017 - 17:51:28 +0200)poplar
    262 
    263 Model: HiSilicon Poplar Development Board
    264 BOARD: Hisilicon HI3798cv200 Poplar
    265 DRAM:  1 GiB
    266 MMC:   Hisilicon DWMMC: 0
    267 In:    serial@f8b00000
    268 Out:   serial@f8b00000
    269 Err:   serial@f8b00000
    270 Net:   Net Initialization Skipped
    271 No ethernet found.
    272 
    273 Hit any key to stop autoboot:  0
    274 starting USB...
    275 USB0:   USB EHCI 1.00
    276 scanning bus 0 for devices... 1 USB Device(s) found
    277 USB1:   USB EHCI 1.00
    278 scanning bus 1 for devices... 4 USB Device(s) found
    279        scanning usb for storage devices... 1 Storage Device(s) found
    280        scanning usb for ethernet devices... 1 Ethernet Device(s) found
    281 
    282 USB device 0:
    283     Device 0: Vendor: SanDisk Rev: 1.00 Prod: Cruzer Blade
    284 	    Type: Removable Hard Disk
    285 	    Capacity: 7632.0 MB = 7.4 GB (15630336 x 512)
    286 ... is now current device
    287 Scanning usb 0:1...
    288 =>
    289