HiKey960 Serial port



We recently got a HiKey960 board for testing, so far it hasn’t work for us … flashing the OS ( Gnu Linux ) was a bit painful, but we got it, then we later discovered that it doesn’t support HDMI console, and even if we connect it through the serial port, and flashing the latest firmware ( http://snapshots.linaro.org/reference-platform/embedded/master/hikey960/latest/rpb/ or different ones over there) we have issues with our serial console, we can see the console output, but we can’t send any input to it. ( here is our UART to USB adapter: https://www.amazon.com/Micro1v8-2-Pack-Serial-Adapter-FT230X/dp/B076B9YRMP/ref=sr_1_cc_2?s=aps&ie=UTF8&qid=1511826543&sr=1-2-catcorr&keywords=1.8v+uart ), we have tried multiple UART to usb adapters and the results are the same, no input to the console once it boots. With some adapters we can send some input on the bootloader and uefi bootloader, but nothing after it boots.

If anyone has any information about this, it would be appreciate it.

Reference output:

hikey960 boarid:5301 xloader use UART6

clear reset source
secdbg not DCU.
SecDbgVer exit

xloader chipid is: 0x36600110, start at 448ms.
Build Date: Jun 20 2017, 20:37:08
[clock_init] ++
hikey960 [hikey960_clk_init]
hi3660 [clk_setup]
[clock_init] –
storage type is UFS
ufs retry: 6 count v_tx:0 v_rx:0
ufs set v_tx:0 v_rx:0
Hikey960[5301] no need avs_init.
ddr ft:0xf20332a3,mode:1 target:4
ch 0 gt_errfail, STATUS:0x00000060
ch 0 gdst_errfail, STATUS:0x00000040
ch 1 gt_errfail, STATUS:0x00000060
ch 1 gdst_errfail, STATUS:0x00000040
ch 2 gt_errfail, STATUS:0x00000060
ch 2 gdst_errfail, STATUS:0x00000040
ch 3 gt_errfail, STATUS:0x00000060
ch 3 gdst_errfail, STATUS:0x00000040
density: 0x0c0c0c0c,0x00000000,0x0c0c0c0c,0x00000000,0x0c0c0c0c,0x00000000,0x0c0c0c0c,0x00000000
ddr info 0x00000306
C0R,V0x0000002c e:66
Booting `Reference-Platform-Build-X11 (HiKey960)’

[ 0.293002] dmi: Firmware registration failed.
[ 0.360413] [USB3][hisi_dwc3_probe]+
[ 0.360572] [USB3][get_phy_param]eye diagram param: 0x1c466e3
[ 0.360579] [USB3][get_phy_param]eye diagram host param: 0x1c466e3
[ 0.360585] [USB3][get_phy_param]usb3_phy_cr_param: 0xb80
[ 0.360590] [USB3][get_phy_param]usb3_phy_host_cr_param: 0x980
[ 0.360595] [USB3][get_phy_param]usb3_phy_tx_vboost_lvl: 5
[ 0.360614] [USB3][get_resource]this is asic platform (fpga flag 0)
[ 0.360619] [USB3][create_attr_file]+
[ 0.360656] [USB3][create_attr_file]-
[ 0.360663] [USB3][hi3660_usb3phy_init]+
[ 0.385712] [USB3][config_femtophy_param]set hs phy param 0x1c466e3 for device
[ 0.386281] [USB3][config_femtophy_param]set ss phy rx equalization 0xb80
[ 0.387157] [USB3][config_femtophy_param]set ss RX_SCOPE_VDCC 0x1
[ 0.387163] [USB3][config_femtophy_param]set ss phy tx vboost lvl 0x5
[ 0.387168] [USB3][set_hisi_dwc3_power_flag]set hisi_dwc3_power_flag 1
[ 0.387173] [USB3][hi3660_usb3phy_init]-
[ 0.387911] dwc3 ff100000.dwc3: dwc3_host_init if otg, otg will do device_add.
[ 0.389309] [USB3][hisi_dwc3_wake_lock]usb otg wake lock
[ 0.389317] [USB3][hisi_dwc3_probe]init state: OFF
[ 0.389323] [USB3][hisi_usb_otg_event]hisi_usb_otg_event in:1
[ 0.389328] [USB3][hisi_usb_otg_event]hisi_usb_otg_event in otg:1
[ 0.389333] [USB3][hisi_usb_otg_event]event: 1
[ 0.389344] [USB3][hisi_dwc3_probe]-
[ 0.389346] [USB3][event_work]+
[ 0.389349] [USB3][handle_event][handle_event] type: 1
[ 0.389378] [USB3][hisi_dwc3_wake_unlock]usb otg wake unlock
[ 0.389386] [USB3][handle_event]hisi usb status: DEVICE -> OFF
[ 0.389392] [USB3][event_work]-
[ 0.392847] hi3660_thermal fff30000.tsensor: failed to register thermal sensor0: -19
[ 0.392866] hi3660_thermal fff30000.tsensor: failed to register thermal sensor1: -19
[ 0.392879] hi3660_thermal fff30000.tsensor: failed to register thermal sensor2: -19
[ 0.392892] hi3660_thermal fff30000.tsensor: failed to register thermal sensor3: -19
[ 0.392923] hi3660_thermal fff30000.tsensor: failed to register thermal sensor5: -19
[ 0.468671] ufshcd-hi3660 ff3b0000.ufs: ufshcd_print_pwr_info:[RX, TX]: gear=[1, 1], lane[1, 1], pwr[SLOWAUTO_MODE, SLOWAUTO_MODE], rate = 0
[ 0.574630] ufshcd-hi3660 ff3b0000.ufs: ufshcd_print_pwr_info:[RX, TX]: gear=[3, 3], lane[2, 2], pwr[FAST MODE, FAST MODE], rate = 2
[ 0.574867] ufshcd-hi3660 ff3b0000.ufs: ufshcd_find_max_sup_active_icc_level: Regulator capability was not set, actvIccLevel=0
[ 1.503644] [E/hisi_pd] typec_wait_ps_change: typec_wait_ps_change!!!+++++++++++
[ 1.511047] [E/hisi_pd] typec_wait_ps_change: typec_wait_ps_change!!!-----------
[ 1.518438] [E/hisi_pd] typec_unattached_power_entry:!!!+++++++++++
[ 1.574990] [E/hisi_pd] tcpci_disable_vbus_control: !!!++++++++
[ 1.580917] [E/hisi_pd] pd_dpm_handle_pe_event:!!!,event=0,+++
[ 1.586750] [E/hisi_pd] typec_unattached_power_entry:!!!-----------
[ 1.593023] [E/GPIO_HUB] gpio_hub_switch_to_hub: switch to hub
[ 1.598865] [USB3][hisi_usb_otg_event]hisi_usb_otg_event in:1
[ 1.604609] [USB3][hisi_usb_otg_event]hisi_usb_otg_event in otg:1
[ 1.610702] [USB3][hisi_usb_otg_event]hisi_usb_otg_event in:2
[ 1.616446] [USB3][hisi_usb_otg_event]hisi_usb_otg_event in otg:2
[ 1.622537] [USB3][hisi_usb_otg_event]event: 2
[ 1.627206] [USB3][event_work]+
[ 1.630378] [USB3][handle_event][handle_event] type: 2
[ 1.635530] [USB3][set_vbus_power]set port power 1
[ 1.656015] [USB3][hisi_dwc3_wake_lock]usb otg wake lock
[ 1.661354] [USB3][handle_event]hisi usb_status: OFF -> HOST
[ 1.667017] [USB3][event_work]-
[ 1.863393] EXT4-fs (sdd10): couldn’t mount as ext3 due to feature incompatibilities
[ 3.361890] Bluetooth: hci0: request_firmware failed(errno -2) for ti-connectivity/TIInit_11.8.32.bts
[ 3.384461] Bluetooth: hci0: download firmware failed, retrying…
[ 3.524224] Bluetooth: hci0: request_firmware failed(errno -2) for ti-connectivity/TIInit_11.8.32.bts
[ 3.533561] Bluetooth: hci0: download firmware failed, retrying…
[ 3.549208] wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2
[ 3.671883] Bluetooth: hci0: request_firmware failed(errno -2) for ti-connectivity/TIInit_11.8.32.bts
[ 3.681138] Bluetooth: hci0: download firmware failed, retrying…
[ 3.818905] Bluetooth: hci0: request_firmware failed(errno -2) for ti-connectivity/TIInit_11.8.32.bts
[ 3.828192] Bluetooth: hci0: download firmware failed, retrying…
[FAILED] Failed to start DNS forwarder and DHCP server.
See ‘systemctl status dnsmasq.service’ for details.
[ OK ] Started Network Manager Script Dispatcher Service.
Starting Hostname Service…
[ OK ] Started Getty on tty1.
[ OK ] Started Serial Getty on ttyAMA6.
[ OK ] Reached target Login Prompts.
[ OK ] Started Network Name Resolution.
[ OK ] Reached target Host and Network Name Lookups.
[ OK ] Started Hostname Service.
Starting Authorization Manager…
[ OK ] Started Authorization Manager.
Starting WPA supplicant…
[ OK ] Started Network Manager Wait Online.
[ OK ] Started WPA supplicant.

Reference-Platform-Build-X11 2.4+linaro hikey960 ttyAMA6

hikey960 login:


Check that you are using 1.8v level adapter, this seems the case for the adapter you pointed.
Could you please list your pin/connection setup, ensure GND is properly connected.
Check host side software (minicom, microcom…) is configured with 115200 8/n/1 ?

Actually, you should be able to use HDMI via the frame buffer. I’ve already use it for X (cf below), but using it as boot console should be possible as well, using fbcon (request kernel config/rebuild).

Create file: /usr/share/X11/xorg.conf.d/42-fbdev.conf with the following content:

Section "Device"  
  Identifier "hikey960-fbdev"
  Driver "fbdev"
  Option "fbdev" "/dev/fb0"

Then you should be able to run startx. (if desktop image)


Hi Loic,

Yes, as I mentioned we tried several adapters and even 1.8V ones, but results are same, maybe board is damaged ?

Yes, 115200 bauds with 8N1. but still no input, just output, can’t send commands through console. so HDMI is our only option for now.

We managed to run one build from here: HiKey960 Build that has HDMI console working out, but the only for the console build console build which has a very minimal environment, so I assume If I want to add more software I have to build my own rootfs image?

Also, Where can i find more information about the encoding capabilities and interfaces of this board ( HiKey960 ).



This is unlikely, however you can try changing the console UART to use UART0(LPC) instead of UART1(LPC). UART0(LPC) is UART3 on SoC side. Think this can be done by modifying kernel boot command in your /boot/grub/grub.cfg, replace console=ttyAMA6,115200n8 by console=ttyAMA3,115200n8.

Actually these reference images are based on Yocto/OpenEmbedded. (rpp-desktop has minimal desktop env). If you want to customize your system you need to build your own images/packages. You can find 96b OpenEmbedded build documentation here.


Hi Loic,
Thank you for the answer, I’ll try to use the other terminal UART0. aka. AMA3 , and see if that works better.

Are there any docs about the HW encoding capabilities of this board ?


If you refer to video hw encoding/decoding, don’t think this is already implemented (no driver) for hikey960 ? @guodong, do you confirm ? any plan ?


Hi, video HW encod/decoding for hikey960 is still under development. We
will release that once it’s ready. I hope to get a preview version before
end of Dec.



Thank you @guodong , I just have a few questions.
Would that be on a linux image or is it for the AOSP ?
Would that be with a common encoding interface for GStreamer, V4L or FFMPEG or is it just a memory mapping?
Is there any place where we can track the progress of it? or support it ?



So I tried to follow the instructions to build our own image with yocto, which worked well, also I did change the ttyAMA6 to ttyAMA3, and it does change after kernel boot, but i still have the same issue of not being able to send any commands to the board, I still see the output, but can’t send anything, luckily, HDMI works and I can work with that, but it is very annoying not being able to use the serial port. ( nor ttyAMA3 nor ttyAMA6 ) @Loic

Is there any more information or updates on the Hardware encoding ? Is there any way we can help on this? @guodong

Additionally, since the encoding doesn’t work, we tried using the M.2 port, to wire and nvme drive, with no luck Anything on this ??