other: 0.352 boot: 0.191 semantic: 0.106 device: 0.100 files: 0.049 graphic: 0.036 socket: 0.030 vnc: 0.025 permissions: 0.025 PID: 0.021 performance: 0.021 network: 0.019 debug: 0.013 KVM: 0.012 boot: 0.674 other: 0.103 semantic: 0.076 device: 0.023 files: 0.022 debug: 0.018 PID: 0.016 performance: 0.015 socket: 0.013 graphic: 0.010 network: 0.010 permissions: 0.009 KVM: 0.005 vnc: 0.004 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.