Hikey UEFI not working

I’m trying to follow the instructions to install UEFI onto the Hikey: https://github.com/96boards/documentation/wiki/HiKeyUEFI

I followed the steps exactly and all the steps were completed with no errors. However, it seems that there are no changes and it still uses uboot after I finish the steps.

To clarify: I first downloaded the 5 files from the “Install from prebuilt binaries” section. Then, the wiki says to skip to the “Flash binaries to eMMC” section, which I do. I followed all the steps in the flashing section (except for connecting the debug UART) and everything finishes with no error.

I then remove the pins from J15 (keeping only pins 1-2). When I turn on the hikey again, it still boots with uboot (or whatever the default is called) and I see no changes. I also can’t use the serial on pins 11/13 on the low speed connector.

The latest images calls/boots Grub from UEFI to boot Linux. They also use pins 11/13 (UART3) on the LS connector as the default debug UART instead of the original UART0 (https://github.com/96boards/arm-trusted-firmware/pull/45). To revert back to UART0, you need to recompile ARM-TF (fip.bin) with something like:
make PLAT=hikey
CROSS_COMPILE=aarch64-linux-gnu-
CONSOLE_BASE=PL011_UART0_BASE
CRASH_CONSOLE_BASE=PL011_UART0_BASE

See https://github.com/96boards/arm-trusted-firmware/pull/48 for reference.

To get into the UEFI menu, you need the debug UART and also connect pins 5-6 on J15.

What changes are you expecting to see?

Instead of using the serial on pins 11/13 (UART3) on the LS connector, perhaps you can use pins 2/4 (UART0) on J16 instead? You might have to solder a pin header onto it first.

See also https://github.com/96boards/edk2/pull/39

Also https://github.com/96boards/edk2/pull/32

If you recompile ARM-TF to use UART0, you should recompile EDK2 as well, all part of fip.bin.