From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60155) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brP3y-0000AO-HN for qemu-devel@nongnu.org; Tue, 04 Oct 2016 08:43:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1brP3s-0006Qs-TX for qemu-devel@nongnu.org; Tue, 04 Oct 2016 08:43:14 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:47191) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1brP3s-0006Qc-La for qemu-devel@nongnu.org; Tue, 04 Oct 2016 08:43:08 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.84_2) (envelope-from ) id 1brP3s-0005s7-4v for qemu-devel@nongnu.org; Tue, 04 Oct 2016 13:43:08 +0100 From: Peter Maydell Date: Tue, 4 Oct 2016 13:42:52 +0100 Message-Id: <1475584975-25099-25-git-send-email-peter.maydell@linaro.org> In-Reply-To: <1475584975-25099-1-git-send-email-peter.maydell@linaro.org> References: <1475584975-25099-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PULL 24/27] docs: Add a generic loader explanation document List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org From: Alistair Francis Signed-off-by: Alistair Francis Reviewed-by: Peter Maydell Message-id: 9d991a2df990cf55e2630410a5a03ea48930af5d.1475195078.git.alistair.francis@xilinx.com Signed-off-by: Peter Maydell --- docs/generic-loader.txt | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 docs/generic-loader.txt diff --git a/docs/generic-loader.txt b/docs/generic-loader.txt new file mode 100644 index 0000000..8fcb550 --- /dev/null +++ b/docs/generic-loader.txt @@ -0,0 +1,84 @@ +Copyright (c) 2016 Xilinx Inc. + +This work is licensed under the terms of the GNU GPL, version 2 or later. See +the COPYING file in the top-level directory. + + +The 'loader' device allows the user to load multiple images or values into +QEMU at startup. + +Loading Data into Memory Values +--------------------- +The loader device allows memory values to be set from the command line. This +can be done by following the syntax below: + + -device loader,addr=,data=,data-len= + [,data-be=][,cpu-num=] + + - The address to store the data in. + - The value to be written to the address. The maximum size of + the data is 8 bytes. + - The length of the data in bytes. This argument must be + included if the data argument is. + - Set to true if the data to be stored on the guest should be + written as big endian data. The default is to write little + endian data. + - The number of the CPU's address space where the data should + be loaded. If not specified the address space of the first + CPU is used. + +All values are parsed using the standard QemuOps parsing. This allows the user +to specify any values in any format supported. By default the values +will be parsed as decimal. To use hex values the user should prefix the number +with a '0x'. + +An example of loading value 0x8000000e to address 0xfd1a0104 is: + -device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 + +Setting a CPU's Program Counter +--------------------- +The loader device allows the CPU's PC to be set from the command line. This +can be done by following the syntax below: + + -device loader,addr=,cpu-num= + + - The value to use as the CPU's PC. + - The number of the CPU whose PC should be set to the + specified value. + +All values are parsed using the standard QemuOps parsing. This allows the user +to specify any values in any format supported. By default the values +will be parsed as decimal. To use hex values the user should prefix the number +with a '0x'. + +An example of setting CPU 0's PC to 0x8000 is: + -device loader,addr=0x8000,cpu-num=0 + +Loading Files +--------------------- +The loader device also allows files to be loaded into memory. This can be done +similarly to setting memory values. The syntax is shown below: + + -device loader,file=[,addr=][,cpu-num=][,force-raw=] + + - A file to be loaded into memory + - The addr in memory that the file should be loaded. This is + ignored if you are using an ELF (unless force-raw is true). + This is required if you aren't loading an ELF. + - This specifies the CPU that should be used. This is an + optional argument and will cause the CPU's PC to be set to + where the image is stored or in the case of an ELF file to + the value in the header. This option should only be used + for the boot image. + This will also cause the image to be written to the specified + CPU's address space. If not specified, the default is CPU 0. + - Forces the file to be treated as a raw image. This can be + used to specify the load address of ELF files. + +All values are parsed using the standard QemuOps parsing. This allows the user +to specify any values in any format supported. By default the values +will be parsed as decimal. To use hex values the user should prefix the number +with a '0x'. + +An example of loading an ELF file which CPU0 will boot is shown below: + -device loader,file=./images/boot.elf,cpu-num=0 -- 2.7.4