qemu-e2k/hw
Peter Crosthwaite 7ef295ea5b loader: Add data swap option to load-elf
Some CPUs are of an opposite data-endianness to other components in the
system. Sometimes elfs have the data sections layed out with this CPU
data-endianness accounting for when loaded via the CPU, so byte swaps
(relative to other system components) will occur.

The leading example, is ARM's BE32 mode, which is is basically LE with
address manipulation on half-word and byte accesses to access the
hw/byte reversed address. This means that word data is invariant
across LE and BE32. This also means that instructions are still LE.
The expectation is that the elf will be loaded via the CPU in this
endianness scheme, which means the data in the elf is reversed at
compile time.

As QEMU loads via the system memory directly, rather than the CPU, we
need a mechanism to reverse elf data endianness to implement this
possibility.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-04 11:30:21 +00:00
..
9pfs all: Clean up includes 2016-02-23 12:43:05 +00:00
acpi ich9: Remove enable_tco arguments from init functions 2016-02-25 13:14:19 +02:00
alpha loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
arm loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
audio all: Clean up includes 2016-02-23 12:43:05 +00:00
block virtio-blk: do not use vring in dataplane 2016-02-25 13:14:18 +02:00
bt hw: Clean up includes 2016-01-29 15:07:25 +00:00
char virtio: introduce qemu_get/put_virtqueue_element 2016-02-06 20:44:08 +02:00
core loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
cpu hw: Clean up includes 2016-01-29 15:07:25 +00:00
cris loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
display qxl: lock current_async update in qxl_soft_reset 2016-03-01 07:51:32 +01:00
dma etraxfs_dma: Dont forward zero-length payload to clients 2016-02-20 00:17:48 +01:00
gpio ARM: PL061: Checking register r/w accesses to reserved area 2016-02-26 15:09:42 +00:00
i2c hw: Clean up includes 2016-01-29 15:07:25 +00:00
i386 loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
ide ahci: prohibit "restarting" the FIS or CLB engines 2016-02-10 13:29:40 -05:00
input qapi: rename input buttons 2016-03-01 08:19:07 +01:00
intc xics: report errors with the QEMU Error API 2016-02-28 16:19:02 +11:00
ipack hw: Clean up includes 2016-01-29 15:07:25 +00:00
ipmi ipmi: sensor number should not exceed MAX_SENSORS 2016-02-16 16:41:25 +01:00
isa ich9: Remove enable_tco arguments from init functions 2016-02-25 13:14:19 +02:00
lm32 loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
m68k loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
mem move get_current_ram_size to virtio-balloon.c 2016-02-23 12:55:16 +02:00
microblaze loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
mips loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
misc bcm2835_mbox/property: replace ldl_phys/stl_phys with endian-specific accesses 2016-03-04 11:30:18 +00:00
moxie loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
net all: Clean up includes 2016-02-23 12:43:05 +00:00
nvram fw_cfg: unbreak migration compatibility for 2.4 and earlier machines 2016-02-26 10:06:40 +01:00
openrisc loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
pci pci core: function pci_bus_init() cleanup 2016-02-25 13:14:18 +02:00
pci-bridge aer: impove pcie_aer_init to support vfio device 2016-02-19 09:42:28 -07:00
pci-host loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
pcmcia hw: Clean up includes 2016-01-29 15:07:25 +00:00
ppc loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
s390x loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
scsi virtio-scsi: do not use vring in dataplane 2016-02-25 13:14:19 +02:00
sd sdhci: Implement DeviceClass reset 2016-03-04 11:30:17 +00:00
sh4 sh4: Clean up includes 2016-01-29 15:07:24 +00:00
smbios hw: Clean up includes 2016-01-29 15:07:25 +00:00
sparc loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
sparc64 loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
ssi hw: Clean up includes 2016-01-29 15:07:25 +00:00
timer tusb6010: move from hw/timer to hw/usb 2016-02-23 10:38:00 +01:00
tpm hw: Clean up includes 2016-01-29 15:07:25 +00:00
tricore loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
unicore32 unicore: Clean up includes 2016-01-29 15:07:22 +00:00
usb usb-redirect: Avoid double free of data 2016-02-29 11:45:26 +01:00
vfio all: Clean up includes 2016-02-23 12:43:05 +00:00
virtio virtio-rng: ask for more data if queue is not fully drained 2016-03-03 17:42:26 +05:30
watchdog watchdog/diag288: avoid race condition on expired watchdog 2016-03-01 12:15:28 +01:00
xen xen: drop XenXC and associated interface wrappers 2016-02-10 12:01:24 +00:00
xenpv xen: Clean up includes 2016-01-29 15:07:23 +00:00
xtensa loader: Add data swap option to load-elf 2016-03-04 11:30:21 +00:00
Makefile.objs Add a base IPMI interface 2015-12-22 18:39:19 +02:00