This work is based on the original work by Li Guang with extra features added by Peter C and myself.
The idea of this loader is to allow the user to load multiple images or values into QEMU at startup. Memory values can be loaded like this: -device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 Images can be loaded like this: -device loader,file=./images/u-boot.elf,cpu=0 This can be useful and we use it a lot in Xilinx to load multiple images into a machine at creation (ATF, Kernel and DTB for example). Tested with the latest Xilinx ZynqMP machine, if I enable EL3 and EL2 I can boot ATF through to u-boot using the loader to load the images. It can also be used to set registers. This patch series makes the load_elf() function more generic by not requiring an architecture. It also adds new functions load_elf_as(), load_uimage_as and load_image_targphys_as which allows custom AddressSpaces when loading images. V12: - All patches have been reviewed - Most patches have been merged - The commit message of the actual device patch has been updated to justify why it is a device. Alistair Francis (2): generic-loader: Add a generic loader docs: Add a generic loader explanation document MAINTAINERS | 6 ++ docs/generic-loader.txt | 81 ++++++++++++++++ hw/core/Makefile.objs | 2 + hw/core/generic-loader.c | 197 +++++++++++++++++++++++++++++++++++++++ include/hw/core/generic-loader.h | 46 +++++++++ 5 files changed, 332 insertions(+) create mode 100644 docs/generic-loader.txt create mode 100644 hw/core/generic-loader.c create mode 100644 include/hw/core/generic-loader.h -- 2.7.4