QEMU With E2K User Support
Go to file
Laszlo Ersek 07abe45c48 hw/arm: pass pristine kernel image to guest firmware over fw_cfg
Introduce the new boolean field "arm_boot_info.firmware_loaded". When this
field is set, it means that the portion of guest DRAM that the VCPU
normally starts to execute, or the pflash chip that the VCPU normally
starts to execute, has been populated by board-specific code with
full-fledged guest firmware code, before the board calls
arm_load_kernel().

Simultaneously, "arm_boot_info.firmware_loaded" guarantees that the board
code has set up the global firmware config instance, for arm_load_kernel()
to find with fw_cfg_find().

Guest kernel (-kernel) and guest firmware (-bios, -pflash) has always been
possible to specify independently on the command line. The following cases
should be considered:

nr  -bios    -pflash  -kernel  description
             unit#0
--  -------  -------  -------  -------------------------------------------
1   present  present  absent   Board code rejects this case, -bios and
    present  present  present  -pflash unit#0 are exclusive. Left intact
                               by this patch.

2   absent   absent   present  Traditional kernel loading, with qemu's
                               minimal board firmware. Left intact by this
                               patch.

3   absent   present  absent   Preexistent case for booting guest firmware
    present  absent   absent   loaded with -bios or -pflash. Left intact
                               by this patch.

4   absent   absent   absent   Preexistent case for not loading any
                               firmware or kernel up-front. Left intact by
                               this patch.

5   present  absent   present  New case introduced by this patch: kernel
    absent   present  present  image is passed to externally loaded
                               firmware in unmodified form, using fw_cfg.

An easy way to see that this patch doesn't interfere with existing cases
is to realize that "info->firmware_loaded" is constant zero at this point.
Which makes the "outer" condition unchanged, and the "inner" condition
(with the fw_cfg-related code) dead.

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1419250305-31062-11-git-send-email-pbonzini@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2014-12-22 23:39:20 +00:00
audio audio: Don't free hw resources until after hw backend is stopped 2014-12-22 23:12:25 +00:00
backends Drop superfluous conditionals around g_strdup() 2014-12-10 11:30:55 +03:00
block linux-aio: simplify removal of completed iocbs from the list 2014-12-12 16:57:55 +00:00
bsd-user
default-configs sdhci: Support SDHCI devices on PCI 2014-12-15 17:34:44 +01:00
disas disas/mips: disable unused mips16_to_32_reg_map[] 2014-12-16 12:45:20 +00:00
docs sdhci: Define SDHCI PCI ids 2014-12-15 17:34:44 +01:00
dtc@bc895d6d09
fpu softfloat: add functions corresponding to IEEE-2008 min/maxNumMag 2014-10-14 13:28:51 +01:00
fsdev
gdb-xml
hw hw/arm: pass pristine kernel image to guest firmware over fw_cfg 2014-12-22 23:39:20 +00:00
include hw/arm: pass pristine kernel image to guest firmware over fw_cfg 2014-12-22 23:39:20 +00:00
libcacard libcacard: fix resource leak 2014-11-14 12:15:40 +01:00
libdecnumber
linux-headers linux-headers: update to 3.18-rc5 2014-11-18 11:24:31 +00:00
linux-user linux-user: Use the 5KEf processor for 64-bit emulation 2014-12-16 12:45:20 +00:00
migration Split the QEMU buffered file code out 2014-12-16 17:47:36 +05:30
net net: Use g_new() & friends where that makes obvious sense 2014-12-19 13:17:02 +00:00
pc-bios update ipxe from 69313ed to 35c5379 2014-12-17 14:11:39 +01:00
pixman@87eea99e44
po po: fix conflict with %.mo rule in rules.mak 2014-09-26 13:35:08 +02:00
qapi block/qapi: Add cache information to query-block 2014-12-10 10:31:09 +01:00
qga qga: fix false negative argument passing 2014-11-17 11:41:25 +01:00
qobject qjson: Drop trailing space for pretty formatting 2014-12-10 10:25:30 +01:00
qom cpu: initialize cpu->exception_index on reset 2014-12-20 20:38:07 +00:00
roms update ipxe from 69313ed to 35c5379 2014-12-17 14:11:39 +01:00
scripts get_maintainer.pl: Remove the --git-chief-penguins option 2014-12-10 11:46:43 +03:00
slirp slirp: udp: fix NULL pointer dereference because of uninitialized socket 2014-09-23 19:15:05 +01:00
stubs block: Code motion to get rid of stubs/blockdev.c 2014-10-20 13:41:26 +02:00
sysconfigs/target
target-alpha target-alpha: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:21 +01:00
target-arm target-arm: add cpu feature EL3 to CPUs with Security Extensions 2014-12-22 23:12:28 +00:00
target-cris qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
target-i386 qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
target-lm32 gdbstub: Allow target CPUs to specify watchpoint STOP_BEFORE_ACCESS flag 2014-10-06 14:25:43 +01:00
target-m68k target-m68k: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:21 +01:00
target-microblaze qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
target-mips Merge remote-tracking branch 'remotes/lalrae/tags/mips-20141216' into staging 2014-12-17 16:25:21 +00:00
target-moxie
target-openrisc target-openrisc: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:22 +01:00
target-ppc qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
target-s390x qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
target-sh4 target-sh4: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:22 +01:00
target-sparc qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
target-tricore target-tricore: Add instructions of RR1 opcode format, that have 0xb3 as first opcode 2014-12-21 18:35:49 +00:00
target-unicore32 target-unicore32: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:22 +01:00
target-xtensa target-xtensa: don't generate dead code 2014-12-17 05:49:32 +03:00
tcg tcg: add separate monitor command to dump opcode counters 2014-12-17 05:49:32 +03:00
tests target-xtensa: test cross-page opcode 2014-12-17 05:49:32 +03:00
trace trace: [hmp] Reimplement "trace-event" and "info trace-events" using QMP 2014-09-26 09:34:38 +01:00
ui sdl2: fixes, cleanups and opengl preparation. 2014-12-21 23:17:00 +00:00
util block: Don't add trailing space in "Formating..." message 2014-12-12 16:52:33 +00:00
.exrc
.gitignore
.gitmodules
.mailmap
.travis.yml .travis.yml: remove "make check" from main matrix 2014-09-26 21:05:06 +04:00
accel.c accel: Create accel object when initializing machine 2014-10-09 15:36:14 +02:00
aio-posix.c block: Use g_new0() for a bit of extra type checking 2014-12-10 10:31:21 +01:00
aio-win32.c block: Use g_new0() for a bit of extra type checking 2014-12-10 10:31:21 +01:00
arch_init.c migration: static variables will not be reset at second migration 2014-11-20 18:17:22 +05:30
async.c block: Use g_new0() for a bit of extra type checking 2014-12-10 10:31:21 +01:00
balloon.c
block.c block: Don't add trailing space in "Formating..." message 2014-12-12 16:52:33 +00:00
blockdev-nbd.c nbd: Change external interface to BlockBackend 2014-12-10 10:31:12 +01:00
blockdev.c blockdev: check for BLOCK_OP_TYPE_INTERNAL_SNAPSHOT 2014-12-10 10:31:13 +01:00
blockjob.c block: declare blockjobs and dataplane friends! 2014-11-03 11:41:49 +00:00
bootdevice.c bootdevice: add Error **errp argument for QEMUBootSetHandler 2014-12-22 14:39:21 +08:00
bt-host.c
bt-vhci.c
Changelog
CODING_STYLE
configure configure: Replace which(1) with "has" 2014-12-10 11:35:36 +03:00
COPYING
COPYING.LIB
coroutine-gthread.c
coroutine-sigaltstack.c coroutine-sigaltstack: Change jmp_buf to sigjmp_buf 2014-11-11 11:07:55 +03:00
coroutine-ucontext.c
coroutine-win32.c
cpu-exec.c cpu-exec: invalidate nocache translation if they are interrupted 2014-12-15 12:21:02 +01:00
cpus.c cpu: initialize cpu->exception_index on reset 2014-12-20 20:38:07 +00:00
cputlb.c qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
device_tree.c
device-hotplug.c blockdev: Eliminate drive_del() 2014-10-20 13:41:26 +02:00
disas.c
dma-helpers.c hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
dump.c dump: Fix dump-guest-memory termination and use-after-close 2014-11-02 10:04:34 +03:00
exec.c exec: allows 8-byte accesses in subpage_ops 2014-12-22 23:39:17 +00:00
gdbstub.c Add the "-semihosting-config" option. 2014-12-11 12:07:48 +00:00
HACKING
hmp-commands.hx hmp: Remove "info pcmcia" 2014-10-24 12:19:11 +01:00
hmp.c block/hmp: Allow node-name in 'info block' 2014-12-10 10:31:11 +01:00
hmp.h Add HMP command "info memory-devices" 2014-09-26 13:37:06 -04:00
iohandler.c
ioport.c
iothread.c async: aio_context_new(): Handle event_notifier_init failure 2014-09-22 11:39:48 +01:00
kvm-all.c coverity/s390x: avoid false positive in kvm_irqchip_add_adapter_route 2014-12-15 12:21:01 +01:00
kvm-stub.c pc: kvm: check if KVM has free memory slots to avoid abort() 2014-11-23 12:11:29 +02:00
LICENSE
main-loop.c Revert "main-loop.c: Handle SIGINT, SIGHUP and SIGTERM synchronously" 2014-10-27 15:05:09 +00:00
MAINTAINERS MAINTAINERS: Update for migrated migration code 2014-12-16 17:47:36 +05:30
Makefile trace: install trace-events file 2014-09-26 09:34:39 +01:00
Makefile.objs Start migrating migration code into a migration directory 2014-12-16 17:47:36 +05:30
Makefile.target bootdevice: move bootdevice related code to new file bootdevice.c 2014-10-15 09:49:48 +02:00
memory_mapping.c Add skip_dump flag to ignore memory region during dump 2014-10-31 11:29:01 +01:00
memory.c memory: expose alignment used for allocating RAM as MemoryRegion API 2014-11-23 12:11:30 +02:00
module-common.c
monitor.c bootdevice: add Error **errp argument for qemu_boot_set() 2014-12-22 14:39:20 +08:00
nbd.c nbd: Use BlockBackend internally 2014-12-10 10:31:12 +01:00
numa.c numa: make 'info numa' take into account hotplugged memory 2014-11-11 08:50:58 +03:00
os-posix.c os-posix: reorder parent notification for -daemonize 2014-11-02 10:04:34 +03:00
os-win32.c pidfile: stop making pidfile error a special case 2014-11-02 10:04:34 +03:00
page_cache.c
qapi-schema.json qapi-schema: fix typo about change-vnc-password 2014-12-10 11:51:08 +03:00
qdev-monitor.c qdev: Use qdev_get_device_class() for -device <type>,help 2014-11-04 17:50:00 +01:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c Drop superfluous conditionals around qemu_opts_del() 2014-12-10 11:27:02 +03:00
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-doc.texi block: vhdx - change .vhdx_create default block state to ZERO 2014-12-12 15:42:49 +00:00
qemu-img-cmds.hx qemu-img: Add progress output for amend 2014-11-03 11:41:48 +00:00
qemu-img.c qemu-img: Check create_opts before image amendment 2014-12-10 10:31:20 +01:00
qemu-img.texi qemu-img: Add progress output for amend 2014-11-03 11:41:48 +00:00
qemu-io-cmds.c qemu-io: Add sigraise command 2014-12-12 15:48:26 +00:00
qemu-io.c qemu-io: Allow explicitly specifying format 2014-12-10 10:31:12 +01:00
qemu-log.c qemu-log: add log category for MMU info 2014-12-16 18:43:19 +00:00
qemu-nbd.c qemu-nbd: Use BlockBackend where reasonable 2014-12-10 10:31:12 +01:00
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx target-arm queue: 2014-12-11 16:47:23 +00:00
qemu-seccomp.c seccomp: whitelist syscalls fallocate(), fadvise64(), inotify_init1() and inotify_add_watch() 2014-11-11 17:01:35 +01:00
qemu-tech.texi
qemu-timer.c - Migration and linuxboot fixes for 2.2 regressions 2014-12-15 16:43:42 +00:00
qemu.nsi
qemu.sasl
qmp-commands.hx qmp-command.hx: add missing docs for migration capabilites 2014-12-16 17:47:35 +05:30
qmp.c qmp: Print descriptions of object properties 2014-10-15 05:03:15 +02:00
qtest.c qtest: fix qtest log fd should be initialized before qtest chardev 2014-10-23 16:41:27 +02:00
README
rules.mak rules.mak: Allow .mo-objs and .mo-cflags in -y variables 2014-10-31 11:26:25 +01:00
savevm.c snapshot: Reset err to NULL to avoid double free 2014-11-03 09:48:41 +00:00
softmmu_template.h softmmu: provide softmmu access type enum 2014-11-03 11:48:34 +00:00
spice-qemu-char.c spice: remove spice-experimental.h include 2014-12-16 14:15:29 +01:00
tcg-runtime.c
tci.c Merge remote-tracking branch 'remotes/bonzini/softmmu-smap' into staging 2014-06-05 21:06:14 +01:00
thread-pool.c block: Rename BlockDriverCompletionFunc to BlockCompletionFunc 2014-10-20 13:41:27 +02:00
thunk.c
tpm.c
trace-events megasas: Fixup MSI-X handling 2014-10-31 11:29:01 +01:00
translate-all.c Xtensa updates for 2.3: 2014-12-17 17:31:26 +00:00
translate-all.h
user-exec.c
VERSION Open 2.3 development tree 2014-12-09 21:48:34 +00:00
version.rc
vl.c vl.c: add HMP help to machine 2014-12-22 23:12:27 +00:00
xen-common-stub.c accel: Move Xen registration code to xen-common.c 2014-10-04 08:59:15 +02:00
xen-common.c accel: Pass MachineState object to accel init functions 2014-10-09 12:57:10 +02:00
xen-hvm-stub.c
xen-hvm.c xen-hvm: Remove redundant variable 'xstate' 2014-11-11 17:34:53 +03:00
xen-mapcache.c

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team