From: Alistair Francis <alistair.francis@xilinx.com>
To: qemu-devel@nongnu.org, peter.maydell@linaro.org
Cc: alistair.francis@xilinx.com, crosthwaitepeter@gmail.com,
armbru@redhat.com, cov@codeaurora.org, pbonzini@redhat.com
Subject: [Qemu-devel] [PATCH v11 0/8] Add a generic loader
Date: Tue, 20 Sep 2016 07:54:07 -0700 [thread overview]
Message-ID: <cover.1474331683.git.alistair.francis@xilinx.com> (raw)
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.
V9:
- Logic and documentation corrections
- Add address space loading support for uImages and targphys
V8:
- Allow custom AddressSpaces when loading images
- Move ELF architecture handling code
- Rebase
- Corrections to loading code
- Corrections to documentation
V7:
- Fix typo in comment
- Rebase
V6:
- Add error checking
V5:
- Rebase
V4:
- Re-write documentation
- Allow the loader to work with every architecture
- Move the file to hw/core
- Increase the maximum number of CPUs
- Make the CPU operations conditional
- Convert the cpu option to cpu-num
- Require the user to specify endianess
V2:
- Add an entry to the maintainers file
- Add some documentation
- Perform bounds checking on the data_len
- Register and unregister the reset in the realise/unrealise
Changes since RFC:
- Add support for BE
Alistair Francis (8):
loader: Allow ELF loader to auto-detect the ELF arch
loader: Use the specified MemoryRegion
loader: Allow a custom AddressSpace when loading ROMs
loader: Add AddressSpace loading support to ELFs
loader: Add AddressSpace loading support to uImages
loader: Add AddressSpace loading support to targphys
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 +++++++++++++++++++++++++++++++++++++++
hw/core/loader.c | 89 ++++++++++++++----
include/hw/core/generic-loader.h | 46 +++++++++
include/hw/elf_ops.h | 10 +-
include/hw/loader.h | 73 ++++++++++++++-
8 files changed, 479 insertions(+), 25 deletions(-)
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
next reply other threads:[~2016-09-20 15:27 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-20 14:54 Alistair Francis [this message]
2016-09-20 14:54 ` [Qemu-devel] [PATCH v11 1/8] loader: Allow ELF loader to auto-detect the ELF arch Alistair Francis
2016-09-20 14:54 ` [Qemu-devel] [PATCH v11 2/8] loader: Use the specified MemoryRegion Alistair Francis
2016-09-20 14:54 ` [Qemu-devel] [PATCH v11 3/8] loader: Allow a custom AddressSpace when loading ROMs Alistair Francis
2016-09-20 14:54 ` [Qemu-devel] [PATCH v11 4/8] loader: Add AddressSpace loading support to ELFs Alistair Francis
2016-09-20 14:54 ` [Qemu-devel] [PATCH v11 5/8] loader: Add AddressSpace loading support to uImages Alistair Francis
2016-09-20 14:54 ` [Qemu-devel] [PATCH v11 6/8] loader: Add AddressSpace loading support to targphys Alistair Francis
2016-09-20 14:54 ` [Qemu-devel] [PATCH v11 7/8] generic-loader: Add a generic loader Alistair Francis
2016-09-20 14:54 ` [Qemu-devel] [PATCH v11 8/8] docs: Add a generic loader explanation document Alistair Francis
2016-09-20 17:41 ` [Qemu-devel] [PATCH v11 0/8] Add a generic loader Peter Maydell
2016-09-20 18:22 ` Alistair Francis
2016-09-21 6:05 ` Markus Armbruster
2016-09-21 15:46 ` Alistair Francis
2016-09-21 15:53 ` Paolo Bonzini
2016-09-22 9:19 ` Markus Armbruster
2016-09-22 9:22 ` Paolo Bonzini
2016-09-22 11:50 ` Markus Armbruster
2016-09-22 14:01 ` Peter Maydell
2016-09-23 8:10 ` Markus Armbruster
2016-09-23 8:18 ` Paolo Bonzini
2016-09-27 13:28 ` Markus Armbruster
2016-09-27 14:14 ` Paolo Bonzini
2016-09-27 15:40 ` Markus Armbruster
2016-09-27 16:24 ` Alistair Francis
2016-09-28 2:04 ` Markus Armbruster
2016-09-28 22:48 ` Alistair Francis
2016-09-27 15:17 ` Peter Maydell
2016-09-21 15:54 ` Daniel P. Berrange
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1474331683.git.alistair.francis@xilinx.com \
--to=alistair.francis@xilinx.com \
--cc=armbru@redhat.com \
--cc=cov@codeaurora.org \
--cc=crosthwaitepeter@gmail.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.