Hi Mike,
Here is a copy of an EFI binary for the camkes-arm-vm tk1 project that runs on our tk1 development board internally: https://cloudstor.aarnet.edu.au/plus/s/FHVMZi0ei1Q6IYA.
A reason why ELF works for seL4test and not for camkes-arm-vm is potentially because the Elfloader doesn't get started in monitor mode and is unable to start the kernel in Hyp mode. Here is some output from our build logs:
U-Boot 2019.04-00592-g6c5f8dd540 (Apr 24 2019 - 12:42:58 +1000)
TEGRA124
Model: NVIDIA Jetson TK1
Board: NVIDIA Jetson TK1
DRAM: 2 GiB
MMC: sdhci@700b0400: 1, sdhci@700b0600: 0
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 2
0
Tegra124 (Jetson TK1) # pci enum && setenv autoload no && dhcp && tftpboot 0x81000000 jetson1/sel4-image
pci enum && setenv autoload no && dhcp && tftpboot 0x81000000 jetson1/sel4-image
Warning: eth_rtl8169 using MAC address from ROM
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
DHCP client bound to address 10.13.1.186 (1262 ms)
Using eth_rtl8169 device
TFTP from server 10.13.0.28; our IP address is 10.13.1.186
Filename 'jetson1/sel4-image'.
Load address: 0x81000000
Loading: * #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
##################################################
4 MiB/s
done
Bytes transferred = 20762864 (13cd0f0 hex)
Tegra124 (Jetson TK1) # bootelf 0x81000000 || bootefi 0x81000000
bootelf 0x81000000 || bootefi 0x81000000
## No elf image at address 0x81000000
7 8MMC: no card present
Scanning disk sdhci@700b0400.blk...
Disk sdhci@700b0400.blk not ready
Scanning disk sdhci@700b0600.blk...
Found 3 disks
WARNING: booting without device tree
## Starting EFI application at 81000000 ...
ELF loader: monitor mode init done
Copy monitor mode vector from fb6785bc to a7f00000 size 50
Number of IRQs: 192
Load seL4 in nonsecure HYP mode 600001da
ELF-loader started on CPU: ARM Ltd. Cortex-A15 r3p3
paddr=[fb671000..fca3efff]
No DTB passed in from boot loader.
Looking for DTB in CPIO archive...found at fb7423a4.
Loaded DTB from fb7423a4.
paddr=[80059000..80069fff]
ELF-loading image 'kernel'
paddr=[80000000..80058fff]
vaddr=[e0000000..e0058fff]
virt_entry=e0000000
ELF-loading image 'capdl-loader'
paddr=[8006a000..81442fff]
vaddr=[10000..13e8fff]
virt_entry=17b1c
relocating from fb671000-fca3f000 to dec30000-dfffe000... size=0x13ce000 (padded size = 0x13d0000)
ELF loader relocated, continuing boot...
Enabling hypervisor MMU and paging
Jumping to kernel-image entry point...
Bootstrapping kernel
Total 28 IOASID set up
Region [c to 28) for SMMU caps
Booting all finished, dropped to user space