Hi,
Since UEFI boot menus don't persist[1], configuring boot is troublesome. The workaround is to use a "startup.nsh" script in the boot partition (/dev/mmcblk0p6). My script looks like:
fs0:\Image dtb=hi6220-hikey.dtb nfsroot=192.168.1.6:/data/srv/nfs/jessie-arm64,hard,intr,tcp,nfsvers=3 rootwait ip=dhcp console=ttyAMA0,115200 earlycon=pl011,0xf8015000 root=/dev/nfs rw quiet
During boot (serial cable required), interrupt the boot and select shell:
-snip- The default boot selection will start in 8 seconds [1] Linux from eMMC [2] Shell [3] Boot Manager Start: 2 -snip-
Unless you interrupt the shell, in 5sec it will run startup.nsh.
A quick breakdown of my command line:
fs0:\ - UEFI idea of boot partition Image - The filename of the kernel to boot dtb=hi6220-hikey.dtb - Name of the device tree file
Rest of the line is kernel command line. In my case I boot from NFSroot. Adapt to your setup. There is also the option I don't use:
initrd=fooo.img - Name of the initrd file. I don't use an initrd so this is not in my command line.
[1] https://github.com/96boards/bugs/issues/8 Efi shell script doc: https://software.intel.com/en-us/articles/efi-shells-and-scripting