| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- ================================================================================
- Board Information
- ================================================================================
- Developed by HiSilicon, the board features the Hi3798C V200 with an
- integrated quad-core 64-bit ARM Cortex A53 processor and high
- performance Mali T720 GPU, making it capable of running any commercial
- set-top solution based on Linux or Android. Its high performance
- specification also supports a premium user experience with up to H.265
- HEVC decoding of 4K video at 60 frames per second.
- SOC Hisilicon Hi3798CV200
- CPU Quad-core ARM Cortex-A53 64 bit
- DRAM DDR3/3L/4 SDRAM interface, maximum 32-bit data width 2 GB
- USB Two USB 2.0 ports One USB 3.0 ports
- CONSOLE USB-micro port for console support
- ETHERNET 1 GBe Ethernet
- PCIE One PCIe 2.0 interfaces
- JTAG 8-Pin JTAG
- EXPANSION INTERFACE Linaro 96Boards Low Speed Expansion slot
- DIMENSION Standard 160×120 mm 96Boards Enterprice Edition form factor
- WIFI 802.11AC 2*2 with Bluetooth
- CONNECTORS One connector for Smart Card One connector for TSI
- ================================================================================
- BUILD INSTRUCTIONS
- ================================================================================
- Note of warning:
- ================
- U-boot has a *strong* dependency with the l-loader and the arm trusted firmware
- repositories.
- The boot sequence is:
- l-loader --> arm_trusted_firmware --> u-boot
- U-Boot needs to be aware of the BL31 runtime location and size to avoid writing
- over it. Currently, BL31 is being placed below the kernel text offset (check
- poplar.c) but this could change in the future.
- The current version of u-boot has been tested with:
- - https://github.com/Linaro/poplar-l-loader.git
- commit f0988698dcc5c08bd0a8f50aa0457e138a5f438c
- Author: Alex Elder <elder@linaro.org>
- Date: Fri Jun 16 08:57:59 2017 -0500
- l-loader: use external memory region definitions
- The ARM Trusted Firmware code now has a header file that collects
- all the definitions for the memory regions used for its boot stages.
- Include that file where needed, and use the definitions found therein
- Signed-off-by: Alex Elder <elder@linaro.org>
- - https://github.com/Linaro/poplar-arm-trusted-firmware.git
- commit 6ac42dd3be13c99aa8ce29a15073e2f19d935f68
- Author: Alex Elder <elder@linaro.org>
- Date: Fri Jun 16 09:24:50 2017 -0500
- poplar: define memory regions in a separate file
- Separate the definitions for memory regions used for the BL stage
- images and FIP into a new file. The "l-loader" image uses knowledge
- of the sizes and locations of these memory regions, and it can now
- include this (external) header to get these definitions, rather than
- having to make coordinated changes to both code bases.
- The new file has a complete set of definitions (more than may be
- required by one or the other user). It also includes a summary of
- how the boot process works, and how it uses these regions.
- It should now be relatively easy to adjust the sizes and locations
- of these memory regions, or to add to them (e.g. for TEE).
- Signed-off-by: Alex Elder <elder@linaro.org>
- Compile from source:
- ====================
- Get all the sources
- > mkdir -p ~/poplar/src ~/poplar/bin
- > cd ~/poplar/src
- > git clone https://github.com/Linaro/poplar-l-loader.git l-loader
- > git clone https://github.com/Linaro/poplar-arm-trusted-firmware.git atf
- > git clone https://github.com/Linaro/poplar-u-boot.git u-boot
- Make sure you are using the correct branch on each one of these repositories.
- The definition of "correct" might change over time (at this moment in time this
- would be the "latest" branch).
- Compile U-Boot:
- ===============
- Prerequisite:
- # sudo apt-get install device-tree-compiler
- > cd ~/poplar/src/u-boot
- > make CROSS_COMPILE=aarch64-linux-gnu- poplar_defconfig
- > make CROSS_COMPILE=aarch64-linux-gnu-
- > cp u-boot.bin ~/poplar/bin
- Compile ARM Trusted Firmware (ATF):
- ===================================
- > cd ~/poplar/src/atf
- > make CROSS_COMPILE=aarch64-linux-gnu- all fip \
- SPD=none BL33=~/poplar/bin/u-boot.bin DEBUG=1 PLAT=poplar
- Copy resulting binaries
- > cp build/hi3798cv200/debug/bl1.bin ~/poplar/src/l-loader/atf/
- > cp build/hi3798cv200/debug/fip.bin ~/poplar/src/l-loader/atf/
- Compile l-loader:
- =================
- > cd ~/poplar/src/l-loader
- > make clean
- > make CROSS_COMPILE=arm-linux-gnueabi-
- Due to BootROM requiremets, rename l-loader.bin to fastboot.bin:
- > cp l-loader.bin ~/poplar/bin/fastboot.bin
- ================================================================================
- FLASH INSTRUCTIONS
- ================================================================================
- Two methods:
- Using USB debrick support:
- Copy fastboot.bin to a FAT partition on the USB drive and reboot the
- poplar board while pressing S3(usb_boot).
- The system will execute the new u-boot and boot into a shell which you
- can then use to write to eMMC.
- Using U-BOOT from shell:
- 1) using AXIS usb ethernet dongle and tftp
- 2) using FAT formated USB drive
- 1. TFTP (USB ethernet dongle)
- =============================
- Plug a USB AXIS ethernet dongle on any of the USB2 ports on the Poplar board.
- Copy fastboot.bin to your tftp server.
- In u-boot make sure your network is properly setup.
- Then
- => tftp 0x30000000 fastboot.bin
- starting USB...
- USB0: USB EHCI 1.00
- scanning bus 0 for devices... 1 USB Device(s) found
- USB1: USB EHCI 1.00
- scanning bus 1 for devices... 3 USB Device(s) found
- scanning usb for storage devices... 0 Storage Device(s) found
- scanning usb for ethernet devices... 1 Ethernet Device(s) found
- Waiting for Ethernet connection... done.
- Using asx0 device
- TFTP from server 192.168.1.4; our IP address is 192.168.1.10
- Filename 'poplar/fastboot.bin'.
- Load address: 0x30000000
- Loading: #################################################################
- #################################################################
- ###############################################################
- 2 MiB/s
- done
- Bytes transferred = 983040 (f0000 hex)
- => mmc write 0x30000000 0 0x780
- MMC write: dev # 0, block # 0, count 1920 ... 1920 blocks written: OK
- => reset
- 2. USING USB FAT DRIVE
- =======================
- Copy fastboot.bin to any partition on a FAT32 formated usb flash drive.
- Enter the uboot prompt
- => fatls usb 0:2
- 983040 fastboot.bin
- 1 file(s), 0 dir(s)
- => fatload usb 0:2 0x30000000 fastboot.bin
- reading fastboot.bin
- 983040 bytes read in 44 ms (21.3 MiB/s)
- => mmc write 0x30000000 0 0x780
- MMC write: dev # 0, block # 0, count 1920 ... 1920 blocks written: OK
- ================================================================================
- BOOT TRACE
- ================================================================================
- Bootrom start
- Boot Media: eMMC
- Decrypt auxiliary code ...OK
- lsadc voltage min: 000000FE, max: 000000FF, aver: 000000FE, index: 00000000
- Entry boot auxiliary code
- Auxiliary code - v1.00
- DDR code - V1.1.2 20160205
- Build: Mar 24 2016 - 17:09:44
- Reg Version: v134
- Reg Time: 2016/03/18 09:44:55
- Reg Name: hi3798cv2dmb_hi3798cv200_ddr3_2gbyte_8bitx4_4layers.reg
- Boot auxiliary code success
- Bootrom success
- LOADER: Switched to aarch64 mode
- LOADER: Entering ARM TRUSTED FIRMWARE
- LOADER: CPU0 executes at 0x000ce000
- INFO: BL1: 0xe1000 - 0xe7000 [size = 24576]
- NOTICE: Booting Trusted Firmware
- NOTICE: BL1: v1.3(debug):v1.3-372-g1ba9c60
- NOTICE: BL1: Built : 17:51:33, Apr 30 2017
- INFO: BL1: RAM 0xe1000 - 0xe7000
- INFO: BL1: Loading BL2
- INFO: Loading image id=1 at address 0xe9000
- INFO: Image id=1 loaded at address 0xe9000, size = 0x5008
- NOTICE: BL1: Booting BL2
- INFO: Entry point address = 0xe9000
- INFO: SPSR = 0x3c5
- NOTICE: BL2: v1.3(debug):v1.3-372-g1ba9c60
- NOTICE: BL2: Built : 17:51:33, Apr 30 2017
- INFO: BL2: Loading BL31
- INFO: Loading image id=3 at address 0x129000
- INFO: Image id=3 loaded at address 0x129000, size = 0x8038
- INFO: BL2: Loading BL33
- INFO: Loading image id=5 at address 0x37000000
- INFO: Image id=5 loaded at address 0x37000000, size = 0x58f17
- NOTICE: BL1: Booting BL31
- INFO: Entry point address = 0x129000
- INFO: SPSR = 0x3cd
- INFO: Boot bl33 from 0x37000000 for 364311 Bytes
- NOTICE: BL31: v1.3(debug):v1.3-372-g1ba9c60
- NOTICE: BL31: Built : 17:51:33, Apr 30 2017
- INFO: BL31: Initializing runtime services
- INFO: BL31: Preparing for EL3 exit to normal world
- INFO: Entry point address = 0x37000000
- INFO: SPSR = 0x3c9
- U-Boot 2017.05-rc2-00130-gd2255b0 (Apr 30 2017 - 17:51:28 +0200)poplar
- Model: HiSilicon Poplar Development Board
- BOARD: Hisilicon HI3798cv200 Poplar
- DRAM: 1 GiB
- MMC: Hisilicon DWMMC: 0
- In: serial@f8b00000
- Out: serial@f8b00000
- Err: serial@f8b00000
- Net: Net Initialization Skipped
- No ethernet found.
- Hit any key to stop autoboot: 0
- starting USB...
- USB0: USB EHCI 1.00
- scanning bus 0 for devices... 1 USB Device(s) found
- USB1: USB EHCI 1.00
- scanning bus 1 for devices... 4 USB Device(s) found
- scanning usb for storage devices... 1 Storage Device(s) found
- scanning usb for ethernet devices... 1 Ethernet Device(s) found
- USB device 0:
- Device 0: Vendor: SanDisk Rev: 1.00 Prod: Cruzer Blade
- Type: Removable Hard Disk
- Capacity: 7632.0 MB = 7.4 GB (15630336 x 512)
- ... is now current device
- Scanning usb 0:1...
- =>
|