HiKey 960 Hardware Overview
The HiKey 960 was Linaro's 96Boards reference platform from 2017. The hardware was high-end for its era and still outperforms many current budget SBCs on raw CPU:
| Component | Specification |
|---|---|
| SoC | HiSilicon Kirin 960 (4× Cortex-A73 @ 2.36 GHz + 4× Cortex-A53 @ 1.8 GHz) |
| RAM | 3 GB LPDDR4 |
| Storage | 32 GB UFS 2.1 |
| GPU | Mali-G71 MP8 |
| Connectivity | Gigabit Ethernet (via USB 3.0 adapter), USB 3.0, USB 2.0, HDMI 1.2a |
| Expansion | 96Boards Consumer Edition headers (40-pin LS, 60-pin HS) |
| Boot | UEFI firmware (Linaro), fastboot-capable |
Product details are on the LeMaker HiKey 960 page. For the original HiKey (Kirin 620), see the HiKey product page — different hardware, different instructions.
Realistic Expectations for 2026
The HiKey 960 is now 9 years old. Before investing time, understand what you're getting into:
- Mainline kernel support: Partial. The Kirin 960 device-tree landed in mainline, but GPU, video decode, camera, and some power management features have no upstream driver. Kernel 6.6 LTS boots, but you're running on basic device-tree support.
- Vendor kernel: The original 4.9 vendor kernel from Linaro is ancient and unsupported. Don't use it for anything internet-facing.
- Distro images: Debian ports (arm64) works. Ubuntu 24.04 works. Dedicated board-specific images are increasingly rare.
- UEFI firmware: Linaro's UEFI still works and is required for boot. Don't upgrade it unless you have a specific reason — the risk outweighs the benefit.
- Community: Effectively dead. The 96Boards programme wound down. You are on your own for debugging.
Community Image Sources
These are the known working image sources as of early 2026. Links can go stale — verify checksums and dates before trusting anything.
Linaro snapshots (most reliable)
# Linaro's build service — look for the hikey960 directory
# https://snapshots.linaro.org/96boards/hikey960/linaro/
# Contains UEFI firmware, Debian-based reference images, and boot binaries
wget https://snapshots.linaro.org/96boards/hikey960/linaro/debian/latest/hikey960-debian-*.img.gz
wget https://snapshots.linaro.org/96boards/hikey960/linaro/debian/latest/MD5SUMS
md5sum -c MD5SUMS
Debian ports (generic arm64)
Debian's arm64 installer works on the HiKey 960 if UEFI is functional. Download the netinst ISO from debian.org/ports/arm64 and boot it via USB or network.
Armbian
Armbian had unofficial HiKey 960 builds. Check the community forum for the latest status — these images are not maintained and should be treated as experimental. If available, prefer the CLI Bookworm variant with the 6.6 LTS kernel.
UEFI Firmware Update Procedure
The HiKey 960 boots via UEFI firmware stored on UFS. Updating it requires fastboot mode and a USB-C connection to a host PC.
Entering fastboot mode
- Power off the board
- Set jumper J2001 pins 1-2 to ON (auto-power-on) and pins 3-4 to ON (fastboot mode) — check silk screen markings
- Connect USB-C to your host PC
- Apply power — the board should appear as a fastboot device
# On the host PC, verify fastboot sees the device
fastboot devices
# Should show a serial number
# If nothing appears, check:
# - USB-C cable (some are charge-only, no data)
# - Jumper settings
# - Try a different USB port
Flashing UEFI
# Download the UEFI binaries from Linaro
wget https://snapshots.linaro.org/96boards/hikey960/linaro/uefi/latest/l-loader.bin
wget https://snapshots.linaro.org/96boards/hikey960/linaro/uefi/latest/fip.bin
wget https://snapshots.linaro.org/96boards/hikey960/linaro/uefi/latest/prm_ptable.img
# Flash the bootloader components
fastboot flash ptable prm_ptable.img
fastboot flash xloader sec_xloader.img
fastboot flash fastboot l-loader.bin
fastboot flash fip fip.bin
# Remove the fastboot jumper (J2001 pins 3-4 → OFF)
# Power cycle
Flashing a Linux Image
With working UEFI firmware, you can flash a Linux image to the UFS storage via fastboot:
# Flash the system partition (adjust filename to your image)
fastboot flash system hikey960-debian-bookworm.img
# Or, for a Linaro reference image with separate partitions:
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash userdata userdata.img
# Reset jumpers to normal boot mode and power cycle
fastboot reboot
Alternative: boot from USB
The UEFI firmware can boot from USB. Copy the Linux ISO to a USB drive and select it from the UEFI boot menu (press Escape during boot to enter the menu).
First Boot and Verification
Connect a serial console (via the 96Boards LS header or a USB-to-serial adapter on the low-speed expansion connector) at 115200 baud:
# On your host
screen /dev/ttyUSB0 115200
After boot, verify essentials:
# Kernel and architecture
uname -a
# Should show aarch64, kernel 6.x
# CPU topology
lscpu
# 8 cores: 4× A73 + 4× A53
# Storage
lsblk
# UFS shows as /dev/sda (via ufshcd driver)
# RAM
free -h
# Should show ~2.8 GB usable (of 3 GB)
# Network — requires USB Ethernet adapter
ip link
# Look for an ethX or enpXsY interface from your adapter
Known Brick Scenarios
The HiKey 960 can be bricked in ways that are hard or impossible to recover from. Know these before you start:
| Scenario | Severity | Recovery |
|---|---|---|
| Bad UEFI flash (mismatched binaries) | High | Recovery mode via jumper + fastboot re-flash — works if xloader is intact |
| Corrupted xloader | Critical | Board may not enter fastboot at all. Requires Kirin-specific recovery tool (hisi-idt) via serial |
| Wrong partition table flashed | High | Re-flash ptable via fastboot, then all partitions |
| UFS storage hardware failure | Fatal | No recovery — hardware replacement |
| Power loss during UEFI flash | High | Depends on which stage was interrupted — xloader corruption is worst case |
Recovery via Serial Console
If the board won't enter fastboot mode normally, you need the HiSilicon recovery tool (hisi-idt):
# Clone the recovery tool
git clone https://github.com/96boards-hikey/tools-images-hikey960.git
cd tools-images-hikey960
# Connect serial console via the low-speed expansion header
# Set recovery jumper (board-specific — check documentation)
# Power on the board
# Run the recovery tool to push xloader via serial
python3 hisi-idt.py -d /dev/ttyUSB0 --img1 sec_xloader.img
# Once xloader is running, fastboot should be available
# Re-flash UEFI as described above
Bootloader Repair
If UEFI boots but Linux doesn't, the fix is usually simpler:
# Enter fastboot mode via jumper
# Re-flash just the boot image
fastboot flash boot boot.img
# If the root filesystem is corrupt, reflash system
fastboot flash system system.img
# If partitions are scrambled, start from scratch
fastboot flash ptable prm_ptable.img
fastboot flash xloader sec_xloader.img
fastboot flash fastboot l-loader.bin
fastboot flash fip fip.bin
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot reboot
Always verify image integrity before flashing. Checksum every file:
sha256sum *.img *.bin
# Compare against the published checksums from Linaro
What Works, What Doesn't
On mainline Linux 6.6+ with the Linaro UEFI firmware:
| Feature | Status | Notes |
|---|---|---|
| CPU (big.LITTLE) | Works | All 8 cores detected and frequency-scaled |
| RAM | Works | Full 3 GB available |
| UFS storage | Works | ufshcd driver, good performance |
| USB 3.0 | Works | Host mode, USB Ethernet works fine |
| HDMI | Partial | Basic framebuffer — no hardware acceleration |
| GPU (Mali-G71) | Broken | No mainline driver, Panfrost does not support G71 |
| Wi-Fi (if equipped) | Unreliable | Depends on mezzanine board and firmware availability |
| Bluetooth | Unreliable | Same dependency on mezzanine and firmware |
| Audio (HDMI) | Broken | No driver support |
| Thermal management | Works | CPUfreq thermal throttling functional |
Should You Still Use a HiKey 960 in 2026?
If you already have one in a drawer, it's a competent headless ARM64 build box or test node. The octa-core CPU and 3 GB RAM handle compilation, containers, and CI workloads respectably.
If you're buying hardware specifically for a project, skip the HiKey 960. Here's why:
- No native Ethernet — USB adapter dependency is a reliability liability
- Dead community — you debug alone
- GPU is non-functional on mainline — useless for desktop or display projects
- UEFI firmware is fragile — one bad flash and you're reaching for recovery tools
- Better-supported ARM64 boards exist at every price point