QEMU does not provide non-Linux kernels with ATAGS structure on ARM targets This would be a useful feature. Many kernels, particularly hobbyist kernels, have support for ATAGS. QEMU doesn't care whether the kernel you provide it is Linux or something else. If you pass -kernel something that's not an ELF file, we'll load and boot it using the Linux boot protocol (including ATAGS, potentially). If you pass an ELF file or pass -bios a binary blob, we'll just start it in the way the CPU usually resets, on the assumption it can deal with whatever that is.