On Mon, Jul 24, 2017 at 11:21 PM, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 24 July 2017 at 21:03, Hua Yanghao <huayang...@gmail.com> wrote: >> Sounds good PPM! currently I am working around this by >> objcopy a pure binary and it looks like qemu-system-arm is >> loading a binary at loader address + 0x10000. From man page >> it claims it also supports multiboot image which I thought I could >> remove this loader address + 0x10000 limiation however with >> no luck. but the binary works pretty fine though at the fixed address. >> not as convenient as elf image which I can run from any address. > > If you give -kernel on ARM (non-M-profile) systems something > that isn't an ELF file this means "I am a Linux kernel and > want the calling convention documented for the kernel" (which > includes that load address, among other things). If you're > not a Linux kernel then don't do that. > > You probably want the "-device loader" documented in > docs/generic-loader.txt, which is (as the name suggests) > a generic way to load an arbitrary binary into memory, > and lets you specify whatever load address you want. >
It works like a charm, thanks PPM. I think this already solves my problem for using elf, now I just use objcopied binary. However if qemu could support elf type with overlapping segments that is even better. ;-)