Board Stuck in Fastbooting Loop [SOLVED]

Hello,
My Hikey960 is in a constant state when in fastboot mode or normal mode of constantly booting it appears (see log below)/ I may have caused this problem by incorrectly flashed an AOSP image with some code for kernel security hardening, but I really am not sure how to reproduce this problem.

I have attempted to recover using the 96Boards-hikey/tools-images-hikey960 github repo’s “recovery-flash” script file and alternatively just the ./hikey_idt program which works well but then when I proceed to use fastboot flash [ptable | xloader | fastboot | etc] with each respective .img file the Hikey does not accept it as it appears to be stuck in the fastboot booting loop as shown below. I have attempted all steps in the README-technical except for the section titled “Flash Images by Bootloader” which requires the use of a mezzanine board which i do not have access to. Should i seek out a mezzanine board to try and fix my problems with that method?

I believe this is the log for one complete loop:

dump_stack begin:
cmd_process: [fdt_next_tag]:
 		pc: 000000001ad214cc sp: 000000001afbfd10 
cmd_process: [fdt_next_node]:
 		pc: 000000001ad21650 sp: 000000001afbfd60 
cmd_process: [load_nomap_mem_config]:
 		pc: 000000001ad46128 sp: 000000001afbfda0 
cmd_process: [load_teeos_init]:
 		pc: 000000001ad990a0 sp: 000000001afbff10 
cmd_process: [start_armboot]:
 		pc: 000000001ad9a5fc sp: 000000001afbff70 
exception: 
dump_stack end.
bbox: record exce_type is 0x00000075
bbox: -------show exception info begin
bbox:  modid:          [0x81fff202]
bbox:  reboot_pri:     [0x00000001]
bbox:  dump_mod_mask:  [0x0000000000000003]
bbox:  reset_mod_mask: [0x0000000000000003]
bbox:  from_module:    [0x0000000000000001]
bbox:  reentrant:      [0x0f00da01]
bbox:  exce_type:      [0x00000075]
bbox:  reserve_u64:    [0x0000000000000000]
bbox:  reserve_p:      [0x00000000]
bbox: -------show exception info end
bbox: dump module [0000000000000001] start!
bbox: modid is 0x81fff202, etype is 0x00000075, mod_group_id is 0x0000000000000001
bbox: modid:[0x81fff202], coreid:[0x0000000000000001]
bbox: bbox_dump_done current mask:[0x0000000000000001]
bbox: dump module [0000000000000001] end!
bbox: Skip module [0x0000000000000001]
bbox: bbox_notify_module_dump done. return mask=[0x0000000000000001]
bbox: current mask:[0x0000000000000001]
bbox: all dump done
bbox: save_log_to_dfx():462:storage_read fail[-1]
bbox: p_module_ops->s_mod_group_id is [0x0000000000000001]
bbox: reset module [0x0000000000000001] start!
bbox: modid is 0x81fff202, etype is 0x00000075, mod_group_id is 0x0000000000000001
bbox: reset module [0x0000000000000001] end!
bbox: -------system reset
hikey960 boarid:5301 xloader use UART6
scsysstat_value[8].
clear reset source
last_keypoint31,reboot_type117
secdbg not DCU.
SecDbgVer exit
 xloader chipid is: 0x36600110, start at 478ms.
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
UceLdOk
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
timeout
timeout
timeout
timeout
density: 0x0c0c0c0c,0x00000000,0x0c0c0c0c,0x00000000,0x0c0c0c0c,0x00000000,0x0c0c0c0c,0x00000000 
ddr info 0x00000306 
400M
685M
1067M
C1R,V0x0000002d e:66
C3R,V0x0000002d e:66
C0R,V0x0000002c e:66
C1R,V0x0000002e e:66
C2R,V0x0000002d e:66
C3R,V0x0000002e e:66
C0R,V0x0000002d e:66
C1R,V0x0000002f e:66
C2R,V0x0000002e e:66
C3R,V0x0000002f e:66
C0R,V0x0000002e e:66
C1R,V0x00000030 e:65
C2R,V0x0000002f e:65
C3R,V0x00000030 e:66
1244M
1866M
C0R,V0x00000015 e:193
C0R,V0x00000016 e:66
C2R,V0x00000016 e:113
C3R,V0x00000016 e:66
C0R,V0x00000017 e:66
C2R,V0x00000017 e:66
C3R,V0x00000017 e:66
iomcu_subsys_init
boot_c0 PROFILE 4

main:     ******** Fastboot for Kirin *****************
main:   ******** Build Date: Jun  2 2017, 17:34:24 **
main: ******** Fastboot start at 1846 ms **********

main: print soc_id computed in xloader phase, is below:
main: 00000000  main: 00000000  main: 00000000  main: 00000000  main: 
main: 00000000  main: 00000000  main: 00000000  main: 00000000  main: 
led_alwayson: can't get dtb operators
bbox: bbox_register_module_ops success.
bfm: : >>>>>enter bfm_init
bfm: : [disable_boot_fail_system] boot_fail_system state is 0
clock: PLL Stat
clock: PLL2 ctrl0=0x04909604,ctrl1=0x02000000
clock: PLL2 acpu en_stat:0x00000008, acpu gt_stat:0x00040000
clock: PLL2 final en_stat:0x00100000, final gt_stat:0x00020000
clock: PLL3 ctrl0=0x04904005,ctrl1=0x07000000
clock: PLL3 acpu en_stat:0x00000000, acpu gt_stat:0x00000000
clock: PLL3 final en_stat:0x00200000, final gt_stat:0x00040000
clock: clock init OK
ufs: ufs start on platform[36600110]ufs: ufs current mode: 0x00000011
ufs: ufs current gear: 0x00000003
ufs: ufs mphy reg 0x4A = 0x00000000
ufs: bUD0BaseOffset: 0x00000010, bUDConfigPLength: 0x00000010
ufs: UFS device manufacturerid = 0x00000198
ufs: UFS device: T******
bfm: : >>>>>enter set_boot_stage
bfm: : bootStageCode is 0x02000001, mntnStageCode is 27
bfm: : <<<<<exit set_boot_stage.
storage: emmc_ops invalid
storage: storage type is UFS
bfm: : bfm system is disabled!
storage: emmc_init: BL2_STAGE_EMMC_OK is 33554435!
bfm: : >>>>>enter set_boot_stage
bfm: : bootStageCode is 0x02000003, mntnStageCode is 29
bfm: : <<<<<exit set_boot_stage.
bfm: : >>>>>enter set_boot_stage
bfm: : bootStageCode is 0x02010001, mntnStageCode is 30
bfm: : <<<<<exit set_boot_stage.
ddr: current logic version is lpddr4 verison !!!
ddr: ddr size is 3072MB
bbox: register modid [0x81fff200]
bbox: register exception succeed.
bbox: register modid [0x81fff202]
bbox: register exception succeed.
bbox: register modid [0x81fff20b]
bbox: register exception succeed.
watchdog: Enable watchdog start
boardid: [BDID]boardid: 5301 
gpio: hikey960_gpio_init: GPIO 46 202 206 ouput low, GPIO 219 pullup.
load_kernel: register_update_dt_ops for usb!
usb: [USBERR]random_serial: fastboot serial: 4247257603000000
secureboot: Enter secboot_init: set pll efuse flag!
secureboot: pll efuse flag has been succ set!bbox: register modid [0x81fff20a]
bbox: register exception succeed.
secureboot: SECBOOT_DEV_INFO_DADDR = 0x1d7fff00, SECBOOT_DEV_INFO_SIZE = 0x00000040!
dtimage: number of dtb = 1
dtimage: =========uncompress_dtb_addr=[0x16f00000],====vrl_addr=[0x1b0e64e0]====
dtimage: [device_tree_get_dtb_entry:215] Verify Not Exist
dtimage: fdt_init success!
dtimage: -----can not find hisilicon,fastboot node by compatible 
dtimage: -----can not find hisilicon,fastboot node by compatible 
load_kernel: register_update_dt_ops for led!
dtimage: -----can not find hisilicon,fastboot node by compatible 
vibrator: vibrator_delay: hisilicon,fastboot motor-vib_type failed!
dtimage: -----can not find hisilicon,fastboot node by compatible 
vibrator: vibrator_off: hisilicon,fastboot motor-vib_type failed!
reboot_reason: scsysstat_value is 0x00000008
pmu: can not find fastboot,hisi-pmic-mntn node1 
pmu: pmu_property_read_u32 fastboot,hisi-pmic-mntn, hisilicon,data-width, failed
pmu: pmu_mntn_record_dts_parse failed!
reboot_reason: enter [check_hardware_reset]
reboot_reason: fdt_open_into failed.
reboot_reason: get_sysctrl_reason_data is error
ddr: reset dmc_rint_0:00000000
ddr: reset dmc_rint_1:00000000
ddr: reset dmc_rint_2:00000000
ddr: reset dmc_rint_3:00000000
ddr: new dmc_rint_0:00000000
ddr: new dmc_rint_1:00000000
ddr: new dmc_rint_2:00000000
ddr: new dmc_rint_3:00000000
bbox: save_tempbuffer_to_loop_area():727:storage_read fail[-1]
reboot_reason: reboot_reason is FASTBOOT_S_PANIC
reboot_reason: clear_reset_source in!
reboot_reason: tmp =0x0effcc70
dtimage: -----can not find fastboot,charger node by compatible 
power: get_chargerIC_type: getU32byCompatible fastboot,charger, hw_charger_type failed!
dtimage: -----can not find fastboot,coul node by compatible 
power: get_coul_type: get  coul_type failed!
power: get  coul_type failed!
power: hi6421v500 register coulometer ops fail!
dtimage: -----can not find huawei,hisi_bci_battery node by compatible 
no_module: [hi6523_get_config_info]: can't get battery board type
dtimage: -----can not find fastboot,charger node by compatible 
no_module: get hi6523 i2c reg num fail!
dtimage: -----can not find fastboot,charger node by compatible 
no_module: [hi6523_start_charging_by_init_params]: get ichrg_pre_limit fail
dtimage: -----can not find huawei,hi6523_charger node by compatible 
no_module: [hi6523_start_charging_by_init_params]: get reg fail
dtimage: -----can not find fastboot,buckboost node by compatible 
max77813: get_buckboost_type: getU32byCompatible fastboot,buckboost, hw_buckboost_type failed!
max77813: get dts buckboost type fail!
cpu_buck: pmu type3 not registered
cpu_buck: Bad cpu buck info:1
bbox: fdt_open_into failed.
mntn: tele_mntn_stat_point_init: can not bbox_ops !
dtimage: -----can not find hisilicon,fastboot node by compatible 
mntn: [tele_mntn_m3_wdt_config]: getU32byCompatible(hisilicon,fastboot, lpm3-board-type) error!
mntn: mntn init
mntndump: [MNTN]:fdt_open_into failed.
mntndump: mntn_dump_init failed
mntndump: get_mntn_dump_addr:mid[2] is not init
mntn: kernel dump is not available
mntn: reboot_type is 117
mntn: 
no need to dump_mem...
mntn: enter [registe_pstore_ramoops_dump]
mntndump: get_mntn_dump_addr:mid[5] is not init
mntn: no mdump_pstore info
mntn: M3_RDR_SYS_CONTEXT_BASE_ADDR is null
uart_cfg: [MNTN]:fdt_open_into failed.
uart_cfg: set_default_uart_cfg: uart_from_dts_read failed!
uart_cfg: module_idx 2, uart_no 6 
uart_cfg: odule_idx 11, uart_no 15 
uart_cfg: module_idx 2, uart_no 6 
uart_cfg: getU32byCompatible(hisilicon,fastboot, uart-board-type) error!
uart_cfg: boardid: 5301 use uart port: 6
pasr: in pasr_init-43 ...ddr: current logic version is lpddr4 verison !!!
ddr: current logic version is lpddr4 verison !!!
dtimage: -----can not find huawei,lcd_panel_type node by compatible 
display: [display]get_detect_type: huawei,lcd_panel_type: get detect_type fail
display: lcd:no lcd detect_type
no_module: [LOGO] get_logo_buffer_from_dtsi: fdt_open_into failed.
no_module: [LOGO] logo_init: logo init failed!!! used the default fb addr.
display: [display]jdi_nt35696_panel_init: lcd type is not JDI_NT35696_5P5_LCD.
display: [display]jdi_otm2503b_panel_init: lcd type is not JDI_OTM2503B_5P5_LCD.
bfm: : >>>>>enter set_boot_stage
bfm: : bootStageCode is 0x02010002, mntnStageCode is 31
bfm: : <<<<<exit set_boot_stage.
dtimage: -----can not find huawei,lcd_panel_type node by compatible 
display: [display]get_dts_value: can not get huawei,lcd_panel_type, bl_bus_id=4!
dtimage: -----can not find ti,lm36923 node by compatible 
display: [display]get_dts_value: can not get ti,lm36923, support=0!
display: get lm36923_support failed!
Audio_codec: [audio]:fdt_open_into failed.
load_teeos: can not find fb node fingerprint
load_teeos: failed to find fb node ese_config
display: [display]hisi_get_disp_info: hisifb_data is NULL pointer, return!
exception: "Synchronous Abort" handler, esr 0x96000021
exception: ELR:     000000001ad214cc
exception: LR:      000000001ad214c8
exception: x0: 0000000089f06669 x1: 0000000073206669
exception: x2: 0000000073206669 x3: 0000000073200000
exception: x4: 0000000000000066 x5: 0000000000000065
exception: x6: 0000000000000001 x7: 00000000ffffffc8
exception: x8: 000000001afbff10 x9: 000000001afbff10
exception: x10: 000000001ae9d000 x11: 000000000000000f
exception: x12: 0000000000000006 x13: 00000000ffd72044
exception: x14: 00000000ffd72040 x15: 00000000ffd72004
exception: x16: 00000000ffd72000 x17: 0000000100000000
exception: x18: 0000000000000000 x19: 0000000000000000
exception: x20: 000000001afbfe14 x21: 000000001afbfd9c
exception: x22: 0000000016d00000 x23: 0000000000000000
exception: x24: 000000001afbfe28 x25: 000000001ae1df28
exception: x26: 000000001ae03168 x27: 000000001afbfe14
exception: x28: 000000001adf8000 x29: 000000001afbfd10
exception: 
dump_stack begin:
cmd_process: [fdt_next_tag]:
 		pc: 000000001ad214cc sp: 000000001afbfd10 
cmd_process: [fdt_next_node]:
 		pc: 000000001ad21650 sp: 000000001afbfd60 
cmd_process: [load_nomap_mem_config]:
 		pc: 000000001ad46128 sp: 000000001afbfda0 
cmd_process: [load_teeos_init]:
 		pc: 000000001ad990a0 sp: 000000001afbff10 
cmd_process: [start_armboot]:
 		pc: 000000001ad9a5fc sp: 000000001afbff70 
exception: 
dump_stack end.

As an update i tried to install via prebuilt uefi, as described in the folder “install-prebuilt-uefi”, It appeared to be successful for all steps until i had to leave recovery mode to normal mode and then the same behavior as above was observed. Looking closer at some of the log does it appear y hardware is damaged? I have been careful when handling it, no observable events have occurred that would seem to have damaged it.

Same log as above:
reboot_reason: enter [check_hardware_reset] reboot_reason: fdt_open_into failed. reboot_reason: get_sysctrl_reason_data is error ddr: reset dmc_rint_0:00000000 ddr: reset dmc_rint_1:00000000 ddr: reset dmc_rint_2:00000000 ddr: reset dmc_rint_3:00000000 ddr: new dmc_rint_0:00000000 ddr: new dmc_rint_1:00000000 ddr: new dmc_rint_2:00000000 ddr: new dmc_rint_3:00000000 bbox: save_tempbuffer_to_loop_area():727:storage_read fail[-1] reboot_reason: reboot_reason is FASTBOOT_S_PANIC reboot_reason: clear_reset_source in! reboot_reason: tmp =0x0effcc70 dtimage: -----can not find fastboot,charger node by compatible power: get_chargerIC_type: getU32byCompatible fastboot,charger, hw_charger_type failed! dtimage: -----can not find fastboot,coul node by compatible power: get_coul_type: get coul_type failed! power: get coul_type failed! power: hi6421v500 register coulometer ops fail! dtimage: -----can not find huawei,hisi_bci_battery node by compatible no_module: [hi6523_get_config_info]: can’t get battery board type dtimage: -----can not find fastboot,charger node by compatible no_module: get hi6523 i2c reg num fail! dtimage: -----can not find fastboot,charger node by compatible no_module: [hi6523_start_charging_by_init_params]: get ichrg_pre_limit fail dtimage: -----can not find huawei,hi6523_charger node by compatible no_module: [hi6523_start_charging_by_init_params]: get reg fail dtimage: -----can not find fastboot,buckboost node by compatible max77813: get_buckboost_type: getU32byCompatible fastboot,buckboost, hw_buckboost_type failed! max77813: get dts buckboost type fail! cpu_buck: pmu type3 not registered cpu_buck: Bad cpu buck info:1

When I try to fastboot flash anything i receive FAILED (remote: No such partition.)

When I flash the ptable prm_ptable.img, it is stuck writing for multiple hours and does not finish.

I don’t think mezzanine UART adapter board is necessary for recovery mode.

I don’t know if these is really caused by board broken. Because you don’t have mezzanine UART board, so which UART port you read the log from?

I checked for the script “install-prebuilt-uefi”, it’s out of date due we need use recovery.bin; BTW, what’s your switch configuration (on the back of board)? At my side, I can change it to (0: ON, 1: ON, 2: ON) for recovery mode and it also can force UEFI run into fastboot mode so you can download sequential images.

Could you try below script so it can automatically download images and flash images in one go? Please note the script I have included relay related operations, you might need to adjust or manually reboot board:

#!/bin/sh

rm hikey_idt l-loader.bin config fip.bin prm_ptable.img recovery.bin
rm hisi-sec_uce_boot.img hisi-sec_usb_xloader.img hisi-sec_xloader.img

wget https://builds.96boards.org/snapshots/reference-platform/components/uefi-staging/latest/hikey960/release/hikey_idt
wget https://builds.96boards.org/snapshots/reference-platform/components/uefi-staging/latest/hikey960/release/l-loader.bin
wget https://builds.96boards.org/snapshots/reference-platform/components/uefi-staging/latest/hikey960/release/config
wget https://builds.96boards.org/snapshots/reference-platform/components/uefi-staging/latest/hikey960/release/fip.bin
wget https://builds.96boards.org/snapshots/reference-platform/components/uefi-staging/latest/hikey960/release/prm_ptable.img
wget https://builds.96boards.org/snapshots/reference-platform/components/uefi-staging/latest/hikey960/release/hisi-sec_uce_boot.img
wget https://builds.96boards.org/snapshots/reference-platform/components/uefi-staging/latest/hikey960/release/hisi-sec_usb_xloader.img
wget https://builds.96boards.org/snapshots/reference-platform/components/uefi-staging/latest/hikey960/release/hisi-sec_xloader.img
wget https://builds.96boards.org/snapshots/reference-platform/components/uefi-staging/latest/hikey960/release/recovery.bin

# Reboot board with relay
ssh 192.168.2.44 "echo "relay1 off" > /dev/ttyACM0; sleep 2; echo "relay1 on" > /dev/ttyACM0"

sleep 2

chmod 777 hikey_idt
sudo ./hikey_idt -c config -p /dev/ttyUSB.hi3660
sleep 1

sudo fastboot flash ptable prm_ptable.img
sudo fastboot flash xloader hisi-sec_xloader.img
sudo fastboot flash fastboot l-loader.bin
sudo fastboot flash fip fip.bin

sleep 1

# Reboot board with relay
ssh 192.168.2.44 "echo "relay1 off" > /dev/ttyACM0; sleep 2; echo "relay1 on" > /dev/ttyACM0"

I have a serial board that enables it:

I followed your script and got the following:
Here I am trying again with the latest hikey960 release files as linked above in your script.
After correctly setting up recovery mode as you recommend with all pins high/on, my UEFI_70 directory to store all latest release files, and ttyUSB0 serial setup with picocom and ttyUSB1 for OTG console i run:

sudo ./hikey_idt -c config -p /dev/ttyUSB1
Using picocom reading ttyUSB0 i get:

hikey960 boarid:5301 xloader use UART6
scsysstat_value[0].
clear reset source
last_keypoint0,reboot_type0
secdbg not DCU.
SecDbgVer exit

xloader chipid is: 0x36600110, start at 122452ms.
Build Date: Dec 6 2017, 15:31:59
[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
UfsLuInit ret:0
UsbMode, nvData invalid
rtc_nve_read failed !
Hikey960[5301] no need avs_init.
ddr ft:0xf20332a3,mode:1 target:4
[USBI]driver init:0003e800 0003f840 00000000
[USBI]download start! total_frame:24
+1 0|+2 0|+3 0|+4 0|+5 0|+6 0|+7 0|+8 0|+9 0|+10 0|+11 0|+12 0|+13 0|+14 0|+15 0|+16 0|+17 0|+18 0|+19 0|+20 0|+21 0|+22 0|+23 0|+24 0|
[USBI]expected:23680, received:23680 (bytes)
[USBI]download suc
UceLdOk
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
timeout
timeout
timeout
timeout
density: 0x0c0c0c0c,0x00000000,0x0c0c0c0c,0x00000000,0x0c0c0c0c,0x00000000,0x0c0c0c0c,0x00000000
ddr info 0x00000306
400M
685M
1067M
C0R,V0x0000002c e:66
C1R,V0x0000002d e:66
C2R,V0x0000002d e:66
C3R,V0x0000002d e:66
C0R,V0x0000002d e:66
C1R,V0x0000002e e:66
C2R,V0x0000002e e:66
C3R,V0x0000002e e:66
C0R,V0x0000002e e:66
C1R,V0x0000002f e:66
C2R,V0x0000002f e:65
C3R,V0x0000002f e:66
C0R,V0x0000002f e:65
C1R,V0x00000030 e:65
C2R,V0x00000030 e:65
C3R,V0x00000030 e:66
1244M
1866M
C0R,V0x00000015 e:193
C3R,V0x00000015 e:113
C0R,V0x00000016 e:66
C3R,V0x00000016 e:66
C0R,V0x00000017 e:66
C2R,V0x00000017 e:66
C3R,V0x00000017 e:66
UsbMode, nvData invalid
UsbMode, nvData invalid
UsbMode, nvData invalid
[USBI]driver init:0003e800 0003f840 00000000
[USBI]download start! total_frame:1152
+1 0|+2 0|+3 0|+4 0|+5 0|+6 0|+7 0|+8 0|+9 0|+10 0|+11 0|+12 0|+13 0|+14 0|+15
0|+16 0|+17 0|+18 0|+19 0|+20 0|+21 0|+22 0|+23 0|+24 0|+25
DOWNLOADING…
0|+1150 0|+1151 0|+11520|
[USBI]expected:1179648, received:1179648 (bytes)
[USBI]download suc
iomcu_subsys_init
boot_c0 PROFILE 4
slave0 irq0:0x00000004
slave1 irq0:0x00000004
NOTICE: Booting Trusted Firmware
NOTICE: BL1: v1.5(release):v1.5-149-gda9d1d59
NOTICE: BL1: Built : 13:29:43, May 14 2018
NOTICE: BL1-FWU: FWU Process Started
UEFI firmware (version Alpha built at 13:29:12 on May 14 2018)
WARNING: CAN NOT BOOT KERNEL IN RECOVERY MODE!
Switch to normal boot mode, then reboot to boot kernel.

Press ESCAPE for boot options .Android Fastboot mode - version 0.7.
Press RETURN or SPACE key to quit.

ttyUSB1 Console:

Config name: config
Port name: /dev/ttyUSB1
0: Image: hisi-sec_usb_xloader.img Downalod Address: 0x20000
1: Image: hisi-sec_uce_boot.img Downalod Address: 0x6a908000
2: Image: recovery.bin Downalod Address: 0x1ac00000
Serial port open successfully!
Start downloading hisi-sec_usb_xloader.img@0x20000…
file total size 99584
downlaod address 0x20000
Finish downloading
Start downloading hisi-sec_uce_boot.img@0x6a908000…
file total size 23680
downlaod address 0x6a908000
Finish downloading
Start downloading recovery.bin@0x1ac00000…
file total size 1179648
downlaod address 0x1ac00000
Finish downloading

But then again i attempt to flash the ptable and fails:
fastboot flash ptable prm_ptable.img
ttyUSB0:

Downloading 24576 bytes
24576 / 24576 bytes downloaded (100%)
Flashing partition ptable

Synchronous Exception at 0x0000000000000000

ttyUSB1 Console:

target reported max download size of 134217728 bytes
sending ‘ptable’ (24 KB)…
OKAY [ 0.008s]
writing ‘ptable’…

I attempted with same procedure with pin 1 & 2 high, 3 low, and received the same result.
Hangs/Exception when writing ptable.

Thanks for sharing, @Erik_Koning.

I can confirm the latest Hikey960 boot binary release works well at my side, and you can flash other partitions but only ‘ptable’ partition failed; another evidence is you have tried Hisilicon legacy booting images as well but have the same result; So I am bias to this is hardware issue.

I suggest you could contact with board vendor for handling this case. You could show our discussion with them if this is helpful.

This problem was fixed by doing this:

git clone https://github.com/96boards-hikey/tools-images-hikey960.git
cd tools-images-hikey960/install-prebuilt-uefi
place hikey960 in restore mode 1:on 2:on 3:off
Connect as usb0 with type c usb
call below script with: sudo ./hikey960-efi-prebuilt.sh -r -v 57
form tools-images-hikey960 dir

The above line downloads & installs the uefi on the board
Note: 57 is the version of UEFI released by Linaro so make sure you download the correct one.It might change over a period of time.

#!/usr/bin/env bash
# Copyright 2017 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# The MIT License | Open Source Initiative

BASE_URL=https://snapshots.linaro.org/96boards/reference-platform/components/uefi-staging
VERSION=20
PRODUCT=hikey960
RELEASE=release
DEVICE=/dev/ttyUSB0

if [ $# -eq 0 ]; then
echo “Usage: hikey-efi-flash-image -h”
exit 0
fi

while [[ $# -gt 0 ]]
do
key="$1"

case $key in
-h)
echo “Look the file to get help”
echo “Use -d or -r to download debug or release version”
echo “Use -t to specify which terminal device to use to connect to the board”
echo “Use -v to specify build no.”
echo “Example: “$0” -r -t /dev/ttyUSB1 -v 20”
echo “this downloads build #20 release version and flashes the device”
echo “represented by /dev/ttyUSB1”
exit 0
;;
-d|–debug)
RELEASE=debug
;;
-r|–release)
RELEASE=release
;;
-t|–tty_device)
DEVICE=$2
shift
;;
-v|–version)
VERSION=$2
shift
;;
*)
echo “Unknown option. Use -h for help”
exit 0
;;
esac
shift
done

UEFI_DIR=${1:-./uefi}

UEFI_URL=${BASE_URL}/${VERSION}/${PRODUCT}/${RELEASE}/
echo Creating $UEFI_DIR…
mkdir -p “$UEFI_DIR”
cd “$UEFI_DIR”

echo Fetching $UEFI_URL…
wget -A bin,config,efi,hikey_idt,img,txt -m -nd -np “$UEFI_URL”

echo Running hikey_idt…
chmod +x hikey_idt
./hikey_idt -c config -p ${DEVICE}

echo “Sleeping till device resets… zzz”
sleep 15

fastboot flash ptable prm_ptable.img
fastboot flash xloader hisi-sec_xloader.img
fastboot flash fastboot l-loader.bin
fastboot flash fip fip.bin

# Use fastboot to flash OS after this point.

On hikey board switch to fastboot mode 1:on 2:off 3:on
call flash-starting-from-fastboot.sh script below from bbry_kerenel_hikey installer dir with stock android binaries.

#!/bin/bash

INSTALLER_DIR="dirname ${0}"

# for cases that don’t run "lunch hikey960-userdebug
if [ -z “${ANDROID_BUILD_TOP}” ]; then
ANDROID_BUILD_TOP=${INSTALLER_DIR}/…/…/…/…/…/
ANDROID_PRODUCT_OUT="${ANDROID_BUILD_TOP}/out/target/product/hikey960"
fi

if [ ! -d “${ANDROID_PRODUCT_OUT}” ]; then
echo “error in locating out directory, check if it exist”
exit
fi

echo “android out dir:${ANDROID_PRODUCT_OUT}”

fastboot flash fastboot “${INSTALLER_DIR}”/fastboot.img
fastboot flash nvme “${INSTALLER_DIR}”/nvme.img
fastboot flash fw_lpm3 “${INSTALLER_DIR}”/lpm3.img
fastboot flash trustfirmware “${INSTALLER_DIR}”/bl31.bin

fastboot flash boot “${ANDROID_PRODUCT_OUT}”/boot.img
fastboot flash dts “${ANDROID_PRODUCT_OUT}”/dt.img
fastboot flash system “${ANDROID_PRODUCT_OUT}”/system.img
#fastboot flash vendor “${ANDROID_PRODUCT_OUT}”/vendor.img
fastboot flash cache “${ANDROID_PRODUCT_OUT}”/cache.img
fastboot flash userdata “${ANDROID_PRODUCT_OUT}”/userdata.img

On hikey board switch to run mode 1:on 2:off 3:off plug in hdmi is desired and then power board.