This worked! The system is a typical root on a two-disk ZFS mirror (ada0, ada1) installed from
FreeBSD-11.1-RELEASE-amd64-memstick.img. After that, a USB flash drive (da0) is configured to load UEFI like this:
Code:
gpart destroy -F da0
gpart create -s gpt da0
gpart add -s 800K -t efi da0
gpart add -t freebsd-ufs da0
gpart show da0
=> 40 31260592 da0 GPT (15G)
40 1600 1 efi (800K)
1640 31258992 2 freebsd-ufs (15G)
newfs_msdos da0p1
newfs -t da0p2
mount -t msdosfs /dev/da0p1 /mnt
mkdir -p /mnt/efi/boot
cp /boot/boot1.efi /mnt/efi/boot/BOOTx64.efi
mkdir -p /mnt/boot
cat > /mnt/boot/loader.rc << EOF
unload
set currdev=zfs:zroot/ROOT/default:
load boot/kernel/kernel
load boot/kernel/zfs.ko
autoboot
EOF
I was very surprised this worked but it seems to be getting the job done.
Edit: I forgot to mention that the machine's BIOS was configured to boot from the flash drive (da0) in UEFI mode for this to work.