How can we deploy latest image with UEFI on hikey960?



Be honest, I also encountered this issue before but I forgot what’s the fixing; I am curious if below are helpful or not?

sudo apt-get install linux-libc-dev:i386 build-essential


Now where do i get the initrd.img ramdisk image from, or do i need to build
from aosp source?


you can extract one from some public image


abootimg seems to be a better option


Seem to be stuck at the android logo now…


@ric96 I built the android so finally I can get one ramdisk: aosp/out/target/product/hikey960/ramdisk.img; and use it to generate boot.img.

If you don’t like to build Android, you could try one prebuilt image:


Building aosp is not an issue, I’ve tried with both ramdisk from build and initrd from decompression of boot.img seems to get stuck in a bootloop


it build fine but i also get this message:
CC fs/squashfs/inode.o
CC net/ipv6/ipcomp6.o
CC net/ipv6/xfrm6_tunnel.o
CC fs/squashfs/namei.o
CC net/mac80211/key.o
CC net/ipv4/fib_rules.o
grep: include/linux/mali/mali_utgard_uk_types.h: No such file or directory
LD drivers/gpu/arm/utgard/built-in.o
LD drivers/gpu/arm/built-in.o
CC net/ipv4/esp4.o
CC fs/squashfs/super.o
CC net/ipv6/tunnel6.o
CC net/ipv6/xfrm6_mode_transport.o
CC drivers/gpu/arm_gpu/mali_kbase_device.o
CC fs/squashfs/symlink.o


It worked now, I kept forgetting to flash userdata. I usually don’t do it to keep all the bench-marking apps install but I guess after flashing the partition image while install uefi i needed to reformat userdata and that is why it was stuck at boot loop.
Anyways, Thanks for the help @leo-yan, it works well no. any eta on when this will be default on newer build of aosp?


@ric96 Please see this patch, which is to fix the build error info:


Let me check the schedule for migration to UEFI+ARM-TF.


Any update on this thread yet?

I am trying to build kernel from mainline where hikey960 seems to be supported.

Any idea?


@rakshithpatkar I don’t think using mainline kernel is good idea, so far it still misses many patches. If you want to use mainline kernel, I suggest you use Hisilicon landing team kernel v4.12 branch:

BTW, we are working on integration UEFI+ARM-TF into AOSP and Debian distro, but I cannot give your exactly schedule. We need insure the parity quality with using legacy booting images, so far I saw there still have 2 bugs (one is LED, another is seldom USB booting panic) and after this we need approvement for AOSP integration. So I think we still need more time for this, alternatively could you refer this doc as temporarily solution and welcome to bring up question on forum for it:


@leo-yan Thank you for the response. Watching this thread for further updates. Look forward to it.


Are there pre-built files available or is it necessary to go all the way through the build instructions to boot UEFI images?

The build instructions are not clear . e.g.

  1. which arm-trusted-firmware branch do I have to use? master or integration ? The branches are currently hidden behind the links, explicit git clone commands would be much easier to follow.
  2. where is prm_ptable.img coming from? Looks like is generating this file?
  3. You are creating symbolic links to l-loader.bin , but not to prm_ptable.img , why not?
  4. Which linux boot image and rootfs is compatible after the firmware upgrade?


Hi @ric96, How did you get kernel 4.9 booted through UEFI? Any instructions I can follow?


after getting uefi setup, boot into fastboot and on your host system download two files from

  1. boot-0.0+AUTOINC+*uefi.img
  2. rpb-console-image-hikey960-*.rootfs.img.gz then extract it

and flash the using fastboot

fastboot flash boot boot-0.0+AUTOINC+*uefi.img
fastboot flash system rpb-console-image-hikey960-*.rootfs.img

Install UEFI on HiKey960 from Binaries [Instructions]

@ric96, Thanks. Now when I power on the target, the grub menu doesn’t show any entries even after flashing

  1. boot-0.0+AUTOINC+*uefi.img
  2. rpb-console-image-hikey960-*.rootfs.img.gz

rakshith@patkar007:~/Projects/UEFI-source/tools-images-hikey960$ telnet localhost 2004
Connected to localhost.
Escape character is ‘^]’.

ser2net port 2004 device /dev/ttyUSB0 [115200 N81] (Debian GNU/Linux)

…[Bds]Booting Android Fastboot
add-symbol-file /home/buildslave/workspace/96boards-reference-uefi-staging/13/edk2/Build/HiKey960/DEBUG_GCC49/AARCH64/EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp/DEBUG/AndroidFastbootApp.dll 0xBA1C3000
Loading driver at 0x000BA1C2000 EntryPoint=0x000BA1C3000 AndroidFastbootApp.efi
Android Fastboot mode - version 0.6.
Press RETURN or SPACE key to quit.
Fastboot platform: check for partition-type:boot
Downloading 67108864 bytes
67108864 / 67108864 bytes downloaded (100%)
Flashing partition boot
Fastboot platform: check for partition-type:system
Erasing partition system
Downloading 104607770 bytes
104607770 / 104607770 bytes downloaded (100%)
Flashing partition system

On target boot and hotkey [esc], I can see the following menu:

  Select Language            <Standard English>         This is the option     
                                                     one adjusts to change  

Device Manager the language for the
Boot Manager current system
Boot Maintenance Manager


^v=Move Highlight =Select Entry

  • When i select boot manager > Grub, it shows something like this:


[Bds]Booting Grub
Loading driver at 0x000B9A9B000 EntryPoint=0x000B9A9B400
Loading driver at 0x000B9A9B000 EntryPoint=0x000B9A9B400
Welcome to GRUB!

error: no such device: rootfs.

                      GNU GRUB  version 2.02~beta3

Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists possible
device or file completions.




my mistake you do need to extract the .img.gz file and flash the .img file…
i’ll edit it in the upper post as well


@ric96 Did the above modification.


boot manager > grub > *CE Reference Platform (HiKey960 rpb)

error: file /boot/Image' not found. error: file/boot/hi3660-hikey960.dtb’ not found.

Press any key to continue…