Commit Graph

6387 Commits

Author SHA1 Message Date
aliguori
7aea4412b6 Convert IDE to directly access guest memory (Avi Kivity)
Instead of copying to a temporary buffer, map guest memory for IDE DMA
transactions.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6398 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-22 16:59:28 +00:00
aliguori
3b69e4b9ad Vectored block device API (Avi Kivity)
Most devices that are capable of DMA are also capable of scatter-gather.
With the memory mapping API, this means that the device code needs to be
able to access discontiguous host memory regions.

For block devices, this translates to vectored I/O.  This patch implements
an aynchronous vectored interface for the qemu block devices.  At the moment
all I/O is bounced and submitted through the non-vectored API; in the future
we will convert block devices to natively support vectored I/O wherever
possible.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6397 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-22 16:59:24 +00:00
aliguori
44e3ee8a2a I/O vector helpers (Avi Kivity)
In general, it is not possible to predict the size of of an I/O vector since
a contiguous guest region may map to a disconiguous host region.  Add some
helpers to manage I/O vector growth.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6396 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-22 16:59:20 +00:00
aliguori
ba223c29da Add map client retry notification (Avi Kivity)
The target memory mapping API may fail if the bounce buffer resources
are exhausted.  Add a notification mechanism to allow clients to retry
the mapping operation when resources become available again.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6395 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-22 16:59:16 +00:00
aliguori
6d16c2f88f Add target memory mapping API (Avi Kivity)
Devices accessing large amounts of memory (as with DMA) will wish to obtain
a pointer to guest memory rather than access it indirectly via
cpu_physical_memory_rw().  Add a new API to convert target addresses to
host pointers.

In case the target address does not correspond to RAM, a bounce buffer is
allocated.  To prevent the guest from causing the host to allocate unbounded
amounts of bounce buffer, this memory is limited (currently to one page).

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6394 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-22 16:59:11 +00:00
aliguori
d268de04f2 Fix build with --disable-sdl
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6393 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-22 16:18:33 +00:00
aliguori
9a717b55df Add BIOS fixes from KVM tree
See each patch for individual Signed-off-by's/commit logs



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6392 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 21:46:20 +00:00
blueswir1
9043b62d4c Fix nographic mode and VNC
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6391 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 19:28:13 +00:00
aliguori
f497f140d9 re-fix screendump (Stefano Stabellini)
Removing the assumption about a single graphic console made
get_graphic_console return NULL when called by vga_screen_dump.
In this case returning NULL is correct but since NULL is not handled in
qemu_console_resize it causes a segmentation fault.
Just returning immediately from qemu_console_resize is sufficient to fix the
problem.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6390 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 19:18:00 +00:00
aliguori
68f0099640 fix curses interface (Stefano Stabellini)
Hi all,
this patch fixes the curses interface: when we switch from one console
to another we need to change the displaystate width and height even
though in the curses case the backing buffer remains of the same size.
I am also putting back the call to text_console_resize in
text_console_invalidate so that resizeable text consoles can be properly
handled.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6389 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:59:12 +00:00
aliguori
428c570512 Stop VM on ENOSPC error. (Gleb Natapov)
This version of the patch adds new option "werror" to -drive flag.
Possible values are:

report    - report errors to a guest as IO errors
ignore    - continue as if nothing happened
stop      - stop VM on any error and retry last command on resume
enospc    - stop vm on ENOSPC error and retry last command on resume
            all other errors are reported to a guest.

Default is "report" to maintain current behaviour.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6388 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:59:04 +00:00
aliguori
7da03b1d26 Adds null check for DisplayStatus (Stefano Stabellini)
Allocate a DisplaySurface in dumb_display_init if none else does it.
The DisplaySurface will be used for the qemu monitor, serial and
parallel ports, etc.

Signed-off-by: Andrew May  <acmay@acmay.homeip.net>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6387 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:58:51 +00:00
aliguori
7cff316ed9 cirrus: unify unmapping of vram (Jan Kiszka)
Switc vram unmapping in map_linear_vram to the simpler pattern used by
unmap_linear_vram.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6386 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:31:42 +00:00
aliguori
fefe54e3f0 cirrus: cleanup reset handler (Jan Kiszka)
We should not re-register the cirrus io-memory regions on each reset.
Moreover, this patch removes some dead code and pushes other static
field initializations from reset to init_common.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6385 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:31:35 +00:00
aliguori
f8b237af00 cirrus: avoid resetting vga dirty logging unnecessarily (Avi Kivity)
cirrus bitblt reset will stop and start dirty logging even when there is no
need; this causes full redraws.

avoid by only updating memory access when exiting cpu-to-video update mode.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6384 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:31:26 +00:00
aliguori
ba7349cd5d cirrus: stop dirty logging during remaps (Jan Kiszka)
Cleaned-up port from kvm-userspace: We have to stop any vram logging
while doing remaps. Otherwise the logger gets confused. This reward is
enormously accelerated cirrus vga in kvm mode.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6383 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:31:16 +00:00
aliguori
ee50c6bc61 cirrus: unmap vram on reset (Jan Kiszka)
Fix the broken text mode after reset by unmapping potentially mapped
vram.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6382 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:31:05 +00:00
aliguori
93a0dba7ea Consolidate library creation (Avi Kivity)
Put archive utility (ar) invocations into a rule, and have it generate
quiet output by default.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6381 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:13:16 +00:00
aliguori
4f188f8887 Make make output quieter (Avi Kivity)
Spew out less noise when compiling.  This helps review make output for
information such as compilation warnings, rather than extra long compiler
invocations.

The full output can be generated by supplying a 'V=1' parameter to make.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6380 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:13:09 +00:00
aliguori
3aa892d75f Consolidate linker rules (Avi Kivity)
Use generic rules where posssible, and a LINK macro where not.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6379 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:13:02 +00:00
aliguori
17759187b6 Introduce rules.mak (Avi Kivity)
Add a file for common makefile rules.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6378 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:12:52 +00:00
aliguori
807544e27d Consolidate compiler invocations (Avi Kivity)
Instead of specifying the compilation command over and over, use a single
rule and adjust it as necessary using target specific target overrides.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6377 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:12:44 +00:00
aliguori
c7328801d8 Drop OP_CFLAGS (Avi Kivity)
OP_CFLAGS is no longer used, except for machine.c, where it is not needed.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6376 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 18:12:27 +00:00
aliguori
055479feab Always return latest pmsts instead of the old one (Xiantao Zhang)
It may lead to the issue when booting windows guests with acpi=1
if return the old pmsts.

Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6375 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 16:31:20 +00:00
pbrook
14778c2064 Coalesce virtual console screen updates.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6374 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 03:02:52 +00:00
pbrook
6e60065f88 Fix SDL slowness.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6373 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 01:50:17 +00:00
malc
413bfb7cfc Remove real_screen->pixels checks
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6372 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-21 00:34:46 +00:00
blueswir1
2e77eac62d Fix user emulator breakage, based on patch by Riku Voipio
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6371 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-20 16:57:34 +00:00
pbrook
4892792678 Fix NAND flash save/restore.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6370 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-20 04:15:47 +00:00
aliguori
8f391ab41a Remove dumb_display (Stefan Stabellini)
However I think the following fix is cleaner: we do not need a
dumb_display_init that creates an empty DisplayChangeListener any more.
We do need a dumb_display_init that allocates a zeroed DisplayState
structure if none else does it.

Tested-by: Shin-ichiro KAWASAKI <kawasaki@juno.dti.ne.jp>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6369 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-19 16:34:10 +00:00
aurel32
65e1d81b29 USB OHCI: add support for big endian targets
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6368 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-18 20:56:30 +00:00
aurel32
470d86b736 mips_malta: map the CBUS UART as the third serial port
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6367 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-18 14:28:20 +00:00
aurel32
b47543c4f0 serial: open a null device if the CharDriverState argument is null
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6366 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-18 14:28:10 +00:00
aurel32
ceecf1d158 add an init function parameter to qemu_chr_open()
And use it for the malta emulation. Fix segfault introduced in
revision 6352.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6365 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-18 14:08:04 +00:00
aurel32
9c554c1c0b cuda: fix crash on Windows
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6364 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-18 12:16:26 +00:00
aurel32
f50dc0acab Update openbios-ppc to revision 418
- fix milliseconds PROM call
- fix PCI I/O ports assignation
- misc fixes

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6363 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-18 12:16:15 +00:00
blueswir1
5653494a49 Remove unused info_str parameter to pcnet_common_init()
I noticed that pcnet_common_init() takes an unused 'info_str'
parameter, added in r2142.  Since then, we always pass "pcnet"
to register_savevm() (and never "lance").

Note that r6218 changed vc->info_str to "lance" for sun4m emulation.

On the assumption that it's not needed, this patch removes the
parameter.  If reverting the change in r2142, and registering with
"lance" would be preferable, I can submit a patch to do so.

Signed-off-by: Stuart Brady <stuart.brady@gmail.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6362 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-17 20:47:10 +00:00
blueswir1
3b898ddaf3 Switch to CMD646 IDE
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6361 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-17 18:41:53 +00:00
blueswir1
c9db92fcc1 Use kill instead of sigqueue: re-enables AIO on OpenBSD
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6360 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-17 06:49:15 +00:00
malc
63c75dcd66 Avoid calling qemu_mallocz with zero size
Currently qemu_mallocz calls malloc and handling of zero by malloc is
implementation defined behaviour:
http://www.opengroup.org/onlinepubs/7990989775/xsh/malloc.html

malloc(0) on AIX returns NULL[1] and qcow2 images without snapshots
are thus unusable

[1] Unless special Linux compatibility define is used when compiling

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6359 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 22:32:33 +00:00
aliguori
4c62180560 Make sure monitor appears as a vc
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6358 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 21:48:20 +00:00
aurel32
35730fa055 hpet config mask fix
I discovered a bug in the hpet code that caused Windows to boot without
hpet. The config mask I was using was preventing the guest from placing
the hpet into 32 bit mode.

(Beth Kon)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6357 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 21:38:58 +00:00
aurel32
0add30cff4 G364 video adapter enhancement
This patch improves G364 video card emulation (used in MIPS Magnum machine):
- Use memory dirty tracking to not refresh whole screen each time
- Use macros for debugging messages
- Add support for hardware cursor
- Handle Y-panning
- Raise irq at each screen redraw
- Support retrieving of some registers
- Add load/save support

The emulation has been tested in Linux 2.1 and Windows NT 3.5, in
640x480, 800x600, 1024x768 and 1280x1024 resolutions.

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6356 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 21:13:58 +00:00
aurel32
f0f2f976cf console: remove trailing spaces
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6355 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 21:13:49 +00:00
aliguori
fdb868e410 Squash warnings in console.c
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6354 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 21:06:20 +00:00
aliguori
42aa98e884 Remove assumption about a single graphic console.
This fixes a fault with the jazz_led since it has two graphic consoles.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6353 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 21:01:48 +00:00
aliguori
2796dae08a Fix character devices after DisplayState refactoring
The DisplayState refactoring changed the machine init function to create a
DisplayState for each VGA device instead of being passed an existing
DisplayState.  This change is critical to enable multiple graphics device
support.

Unfortunately, the serial/parallel/console code is structured today to run
before machine init to fill out the CharDriverState table which the machine
init function uses to determine whether to create the required devices.

Since a 'vc' is a type of CharDriverState, the CharDriverState code requires
that a DisplayState exist before it runs creating a circular dependency.

To fix this, this splits the creation of the initial CharDriverState from
the initialization of the text console.  We can then in a second step associate
a DisplayState with all TextConsoles.  This allows us to create the
CharDriverState's first, machine init, then associate the TextConsoles with
a DisplayState.

This code screams for more cleanup.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6352 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 20:23:27 +00:00
aurel32
5403281aeb Fix a warning in hw/blizzard.c
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6351 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 20:07:19 +00:00
aliguori
846c54a72d Fix compilation of blizzard.c
ppm_save's signature changed so it needs updating.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6350 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 19:51:14 +00:00
aurel32
e369709222 Fix vga on PPC
Fix crash introduced in revision 6336.

(Stefano Stabellini)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6349 c046a42c-6fe2-441c-8c8c-71466251a162
2009-01-16 19:45:28 +00:00