I managed to build and run haiku_loader.efi on QEMU for 32 bit ARM. I used clang and lld-link with arm-unknown-mingw32 target. Unlike current crt0-efi-arm.S that don’t work at all, it allows to produce native PE executables. I don’t know how to integrate clang/lld to Haiku build system, so I copied parts of Haiku sources and build it with shell script. I made some modifications to fix clang build and 32 bit support (currently haiku_loader.efi is only working on 64 bit platforms). I also stubbed vsnprintf, because it crashes with unknown reason.

Currently menu is working, but partition detection and kernel loading is not working.