summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* tcg/mips: fix crash in tcg_out_qemu_ld()Aurelien Jarno2010-02-091-2/+2
| | | | | | | | The address register is overriden when it corresponds to v0 and the fast path is taken, which leads to a crash. Fix that by using the a0 register instead. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* target-sh4: MMU: separate execute and read/write permissionsAurelien Jarno2010-02-091-21/+6
| | | | | | | | | On SH4, the ITLB and UTLB configurations are memory mapped, so loading ITLB entries from UTLB has to be simulated correctly. For that the QEMU TLB has to be handle the execute (ITLB) and read/write permissions (UTLB) seperately. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* target-sh4: MMU: fix store queue addressesAurelien Jarno2010-02-091-1/+1
| | | | | | The store queues are located from 0xe0000000 to 0xe3ffffff. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* target-sh4: MMU: remove dead codeAurelien Jarno2010-02-091-18/+0
| | | | Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* target-sh4: MMU: reduce the size of a TLB entryAurelien Jarno2010-02-091-12/+11
| | | | | | | Reduce the size of the TLB entry from 32 to 16 bytes, reorganising members and using a bit field. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* target-sh4: MMU: optimize UTLB accessesAurelien Jarno2010-02-091-24/+14
| | | | | | | | | | | | | | | With the current code, the QEMU TLB is setup to match the read/write mode of the MMU fault. This means when read access is done, the page is setup in read-only mode. When the page is later accessed in write mode, an MMU fault happened, and the page is switch in write-only mode. This flip-flop causes a lot of calls to the MMU code and slow down the emulation. This patch changes the MMU emulation, so that the QEMU TLB is setup to match the UTLB protection key. This impressively increase the speed of the emulation. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* target-sh4: MMU: fix ITLB priviledge checkAurelien Jarno2010-02-091-1/+1
| | | | | | | There is an ITLB access violation if SR_MD=0 (user mode) while the high bit of the protection key is 0 (priviledge mode). Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* target-sh4: MMU: simplify call to tlb_set_page()Aurelien Jarno2010-02-091-6/+3
| | | | | | | tlb_set_page() doesn't need addresses with offset, but simply the page aligned addresses. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* target-sh4: MMU: fix mem_idx computationAurelien Jarno2010-02-091-1/+1
| | | | | | | | The mem_idx is wrongly computed. As written in target-sh4/cpu.h, mode 0 corresponds to kernel mode (SR_MD = 1), while mode 1 corresponds to user mode (SR_MD = 0). Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* sh7750: handle MMUCR TI bitAurelien Jarno2010-02-093-2/+25
| | | | | | | When the MMUCR TI bit is set, all the UTLB and ITLB entries should be flushed. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* tcg/mips: implement setcond2Aurelien Jarno2010-02-091-12/+80
| | | | Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* Merge remote branch 'linux-user/linux-user-for-upstream' into staging-tmpAnthony Liguori2010-02-080-0/+0
|\
| * target-arm: refactor cp15.c13 register accessRiku Voipio2010-02-052-16/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Access the cp15.c13 TLS registers directly with TCG ops instead of with a slow helper. If the the cp15 read/write was not TLS register access, fall back to the cp15 helper. This makes accessing __thread variables in linux-user when apps are compiled with -mtp=cp15 possible. legal cp15 register to acces from linux-user are already checked in cp15_user_ok. While at it, make the cp15.c13 Thread ID registers available only on ARMv6K and newer. Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
| * linux-user: remove signal handler before calling abort()Riku Voipio2010-02-051-0/+9
| | | | | | | | | | | | | | | | | | Qemu may hang in host_signal_handler after qemu has done a seppuku with cpu_abort(). But at this stage we are not really interested in target process coredump anymore, so unregister host_signal_handler to die grafefully. Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
| * fix locking error with current_tbRiku Voipio2010-02-051-2/+2
| | | | | | | | Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
| * linux-user: adapt uname machine to emulated CPULoïc Minier2010-02-054-2/+76
| | | | | | | | | | | | | | | | | | This patch for linux-user adapts the output of the emulated uname() syscall to match the configured CPU. Tested with x86, x86-64 and arm emulation. Signed-off-by: Riku Voipio <riku.voipio@iki.fi> Signed-off-by: Loïc Minier <lool@dooz.org>
* | Merge remote branch 'qemu-kvm/uq/master' into staging-tmpAnthony Liguori2010-02-088-17/+49
|\ \
| * | Fix incoming migration with iothreadMarcelo Tosatti2010-02-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Do not allow the vcpus to execute if the vm is stopped. Fixes -incoming with CONFIG_IOTHREAD enabled. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
| * | KVM: Move and rename regs_modifiedJan Kiszka2010-02-032-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | Touching the user space representation of KVM's VCPU state is - naturally - a per-VCPU thing. So move the dirty flag into KVM_CPU_COMMON and rename it at this chance to reflect its true meaning. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
| * | KVM: Make vmport KVM-compatibleJan Kiszka2010-02-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | The vmport "device" accesses the VCPU registers, so it requires proper cpu_synchronize_state. Add it to vmport_ioport_read, which also synchronizes vmport_ioport_write. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
| * | KVM: x86: Fix up misreported CPU featuresJan Kiszka2010-02-031-1/+7
| | | | | | | | | | | | | | | | | | | | | From qemu-kvm: Kernels before 2.6.30 misreported some essential CPU features via KVM_GET_SUPPORTED_CPUID. Fix them up. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
| * | KVM: Request setting of nmi_pending and sipi_vectorJan Kiszka2010-02-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The final version of VCPU events in 2.6.33 will allow to skip nmi_pending and sipi_vector on KVM_SET_VCPU_EVENTS. For now let's write them unconditionally, which is unproblematic for upstream due to missing SMP support. Future version which enable SMP will write them only on reset. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
| * | kvm: Flush coalesced MMIO buffer periodlySheng Yang2010-02-035-8/+26
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default action of coalesced MMIO is, cache the writing in buffer, until: 1. The buffer is full. 2. Or the exit to QEmu due to other reasons. But this would result in a very late writing in some condition. 1. The each time write to MMIO content is small. 2. The writing interval is big. 3. No need for input or accessing other devices frequently. This issue was observed in a experimental embbed system. The test image simply print "test" every 1 seconds. The output in QEmu meets expectation, but the output in KVM is delayed for seconds. Per Avi's suggestion, I hooked flushing coalesced MMIO buffer in VGA update handler. By this way, We don't need vcpu explicit exit to QEmu to handle this issue. Signed-off-by: Sheng Yang <sheng@linux.intel.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
* | tcg/mips: implement setcondAurelien Jarno2010-02-081-0/+65
| | | | | | | | Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* | configure: fix the static compilation for sdlTeLeMan2010-02-081-2/+5
| | | | | | | | | | | | | | | | The static compilation for sdl is broken after 79427693174a553d62f3da44aacd3f19ba8df3a7. Signed-off-by: TeLeMan <geleman@gmail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* | configure: Add --enable-docs and --disable-docs to --helpDirk Ullrich2010-02-081-0/+2
| | | | | | | | | | | | | | | | This patch adds the documentation-related options "--enable-docs" and "--disable-docs" to the help message of "configure". Signed-off-by: Dirk Ullrich <dirk.ullrich@googlemail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* | target-sh4: minor optimisationsAurelien Jarno2010-02-081-26/+26
| | | | | | | | Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* | SH4/R2D: fix poweroffAurelien Jarno2010-02-081-4/+5
| | | | | | | | | | | | | | The write the the PA_POWOFF register is currently ignored. Fix that by calling qemu_system_shutdown_request() when a poweroff is requested. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* | tcg: move setcond* ops to non-optional sectionAurelien Jarno2010-02-081-35/+37
| | | | | | | | | | | | setcond is not an optional op, move it to the non-optional section. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* | tcg: add setcondi pseudo-opAurelien Jarno2010-02-081-0/+18
| | | | | | | | Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* | block/curl: %Z is not a valid conversion specifiermalc2010-02-081-1/+1
| | | | | | | | Signed-off-by: malc <av1474@comtv.ru>
* | vl.c: avoid preprocessor directives in a printf callPaolo Bonzini2010-02-082-10/+12
| | | | | | | | | | | | | | | | Similar to the qemu-img.c patch, but I also have to unescape remaining % signs in qemu-options.hx. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: malc <av1474@comtv.ru>
* | do not interpolate % from vl.c to qemu-options.hPaolo Bonzini2010-02-082-13/+7
| | | | | | | | | | | | | | | | Since qemu-options.h is only used in vl.c, we can avoid using brittle interpolation from a generated file. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: malc <av1474@comtv.ru>
* | cope with printf macro definition in readline.cPaolo Bonzini2010-02-081-0/+1
| | | | | | | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: malc <av1474@comtv.ru>
* | qemu-img: avoid preprocessor directives in a printf callPaolo Bonzini2010-02-081-4/+5
| | | | | | | | | | | | | | | | Other choices include using "(printf)", but this one is not bad in terms of readability. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: malc <av1474@comtv.ru>
* | Revert "On some systems printf is a macro"malc2010-02-083-52/+48
| | | | | | | | This reverts commit bc5b6004588ad17370e0416e40b4aa9cf977023b.
* | dec: actually implement PCI bridgingBlue Swirl2010-02-072-0/+28
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | esp: use CamelCaseFunc for function typesBlue Swirl2010-02-072-7/+7
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | fw_cfg: don't use reserved _ prefixBlue Swirl2010-02-072-3/+3
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | fdc: don't use reserved _ prefixBlue Swirl2010-02-071-6/+6
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | fdc: don't use reserved _t suffixBlue Swirl2010-02-074-192/+190
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | escc: don't use reserved _t suffixBlue Swirl2010-02-071-4/+4
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | m48t59: don't use reserved _t suffixBlue Swirl2010-02-075-55/+52
| | | | | | | | Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* | tcg/ppc64: implement setcondmalc2010-02-071-0/+133
| | | | | | | | Signed-off-by: malc <av1474@comtv.ru>
* | tcg/ppc32: proper setcond implementationmalc2010-02-071-25/+25
| | | | | | | | Signed-off-by: malc <av1474@comtv.ru>
* | tcg/ppc32: implement setcond[2]malc2010-02-071-14/+157
| | | | | | | | Signed-off-by: malc <av1474@comtv.ru>
* | On some systems printf is a macromalc2010-02-073-48/+52
| | | | | | | | Signed-off-by: malc <av1474@comtv.ru>
* | Do not use dprintfmalc2010-02-0714-204/+204
| | | | | | | | | | | | | | | | | | dprintf is already claimed by POSIX[1], and on at least one system is implemented as a macro [1] http://www.opengroup.org/onlinepubs/9699919799/functions/dprintf.html Signed-off-by: malc <av1474@comtv.ru>
* | arm host: fix compiler warningStefan Weil2010-02-062-27/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compilation for arm (native or cross) results in this warning: fpu/softfloat-native.c: In function ‘float64_round_to_int’: fpu/softfloat-native.c:387: error: control reaches end of non-void function float64_round_to_int uses special assembler code for arm and has no explicit return value. As there is no obvious reason why arm should need special code, all fpu related conditionals were removed. The remaining code is standard (C99) and compiles for arm, too. Signed-off-by: Stefan Weil <weil@mail.berlios.de> Acked-by: Laurent Desnogues <laurent.desnogues@gmail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* | tcg-i386: Implement setcond.Richard Henderson2010-02-061-3/+70
| | | | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
OpenPOWER on IntegriCloud