Hi Peters,

I got some strange results since this commit:

commit 9776f636455b6f0d9c14dce112242ed653f954b4
Author: Peter Crosthwaite <crosthwaitepe...@gmail.com>
Date:   Fri Mar 4 11:30:21 2016 +0000

    arm: boot: Support big-endian elfs

Support ARM big-endian ELF files in system-mode emulation. When loading an elf, determine the endianness mode expected by the elf, and set the
    relevant CPU state accordingly.

With this, big-endian modes are now fully supported via system-mode LE,
    so there is no need to restrict the elf loading to the TARGET
    endianness so the ifdeffery on TARGET_WORDS_BIGENDIAN goes away.

    Signed-off-by: Peter Crosthwaite <crosthwaite.pe...@gmail.com>
    Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>
    [PMM: fix typo in comments]
    Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>

It seems that when I try to load a big endian image on a
Cortex-R5 it gets confused:
 * the instructions are fine it executes some code.
 * GDB address / insns are wrong endianness.
 * in monitor x command is good endianness.
 * the data order seems to be wrong endianness:
   Here is my Hello World: lleHlroW

We used to add a armeb-softmmu/qemu-system-armeb target for the
big endian cpu but it doesn't work anymore as it's double
reversed by the elf endianness (data_swab <= 2).

And I'm surprised we don't set the CPSR_E and SCTLR_EE bits
accordingly?

Thanks,
Fred

Reply via email to