lm32: system control model
This patch add support for a system control block. It is supposed toact as helper for the emulated program. E.g. shutting down the VM orprinting test results. This model is intended for testing purposes only anddoesn't fit to any real hardware. Therefore, it is not added to any board...
lm32: support for creating device tree
This patch adds helper functions to create a ROM, which contains a hardwaredescription of a board. This is used in Theobromas LM32 Linux port.
Signed-off-by: Michael Walle <michael@walle.cc>Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
lm32: EVR32 and uclinux BSP
This patch adds support for the following two BSPs: - LM32 EVR32 BSP (as used by RTEMS) - uclinux BSP by Theobroma Systems
lm32: todo and documentation
This patch adds general target documentation and a todo list.
lm32: opcode testsuite
This patch creates tests/lm32 directory and adds tests for everyLatticeMico32 opcode.
LatticeMico32 target support
This patch adds support for the LatticeMico32 softcore processor by LatticeSemiconductor.
lm32: translation routines
This patch adds the main translation routine. All opcodes of theLatticeMico32 processor are supported and translated to TCG ops.
lm32: translation code helper
This patch adds translation helper functions.
lm32: machine state loading/saving
This patch adds support for saving and loading the processor state.
lm32: gdbstub support
This patch adds lm32 support to the gdbstub.
lm32: interrupt controller model
This patch adds the interrupt controller of the lm32. Because the PIC isaccessed through special control registers and opcodes, there are callbacksfrom the lm32 translation code to this model.
Signed-off-by: Michael Walle <michael@walle.cc>...
lm32: juart model
This patch adds the JTAG UART model. It is accessed through special controlregisters and opcodes. Therefore the translation uses callbacks to thismodel.
lm32: pic and juart helper functions
This patch adds init functions for the PIC and JTAG UART commonly usedin the board initialization.
lm32: timer model
This patch adds support for the LatticeMico32 system timer.
lm32: uart model
This patch add support for the LatticeMico32 UART.
target-arm: Implement a minimal set of cp14 debug registers
Newer ARM kernels try to probe for whether the CPU has hardware breakpointsupport. For this to work QEMU has to implement a minimal set of the cp14debug registers. The architecture requires v7 cores to implement debug...
target-arm: Use TCG temporary leak debugging facilities
Use the new TCG temporary leak debugging facilities tocheck that each ARM instruction does not leak temporaries.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-arm: Remove ad-hoc leak checking code
This commit removes the ad-hoc resource leak checking code fromtarget-arm. This includes replacing all uses of new_tmp() withtcg_temp_new_i32() and all uses of dead_tmp() withtcg_temp_free_i32().
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>...
tcg: Add support for debugging leakage of temporaries
Add support (if CONFIG_DEBUG_TCG is defined) for debugging leakageof temporary variables. Generally any temporaries created bya target while it is translating an instruction should be freedby the end of that instruction; otherwise carefully crafted...
target-arm: Integrate secondary CPU reset in arm_boot
Integrate secondary CPU reset into arm_boot, removing it from realview.c.On non-Linux systems secondary CPUs start with the same entry as the bootCPU.
Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de>...
target-arm: Implement cp15 VA->PA translation
Implement VA->PA translations by cp15-c7 that went through unchangedpreviously.
Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-arm: Fix soft interrupt in GIC distributor
Fix selection of target list filter mode.
Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de>Reviewed-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-arm: Set carry flag correctly for Thumb2 ORNS
The code for Thumb2 ORNS (or negated and set flags) was trashinga TCG input register which was needed later for use in calculatingflags, with the effect that the carry flag was always set withthe wrong sense. Fix this by using the TCG orc op instead of...
ioport: Improve error output
When failing due to conflicting I/O port registrations,include the offending I/O port address in the message.
Cc: Aurelien Jarno <aurelien@aurel32.net>Signed-off-by: Andreas Färber <andreas.faerber@web.de>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
tracetool: Add optional argument to specify dtrace probe names
Optional feature allowing a user to generate the probe list to matchthe name of the binary, in case they wish to install qemu under adifferent name than qemu-{system,user},<arch>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>...
target-arm: Handle VMOV between two core and VFP single regs
Fix two bugs in the translation of the instructions VMOV sa,sb,rx,ry andVMOV rx,ry,sa,sb (which copy between a pair of ARM core registers and apair of VFP single precision registers):
w32: Add support for curses
MinGW optionally includes pdcurses, so add support for it.
Signed-off-by: Stefan Weil <weil@mail.berlios.de>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-arm: Don't decode old cp15 WFI instructions on v7 cores
In v7 of the ARM architecture, WFI (wait for interrupt) is a first-classinstruction, but in previous versions this functionality was providedvia a cp15 coprocessor register. Add correct feature checks to the...
net: Add the missing option declaration of "vhostforce"
Signed-off-by: Jason Wang <jasowang@redhat.com>Acked-by: Michael S. Tsirkin <mst@redhat.com>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
vmstate: remove grackle_pci savevm code
It was migrating the wrong structures, no way it would work
Signed-off-by: Juan Quintela <quintela@redhat.com>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
vmstate: remove uninorth savevm code
gt64xxx: remove savevm support
net: remove parse_host_src_port() function
It was deprecated, and it has no users.
hw/sd.c: fix sd_set_cb() crash when bdrv == NULL
sd_set_cb() calls bdrv_is_read_only() and bdrv_is_inserted() even ifno block driver is associated with the card reader.
This patch fixes the issues by not setting the irq in this case, thisfixes ARM versatile crash....
net: Use iov helper functions
Signed-off-by: Benjamin Poirier <benjamin.poirier@gmail.com>Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>Acked-by: Jason Wang <jasowang@redhat.com>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
docs: Update stderr and simple backend, add systemtap backend
The following additions to the tracing documentation are included:
1. Move "stderr" backend documentation to top-level and out of "simple" backend. Include hints on when this backend is useful....
simpletrace: Make simpletrace.py a Python module
The simpletrace.py script pretty-prints a binary trace file. Most ofthe code can be reused by trace file analysis scripts, so turn it into amodule.
Here is an example script that uses the new simpletrace module:...
linux-user: Fix large seeks by 32 bit guest on 64 bit host
When emulating a 32 bit Linux user-mode program on a 64 bit targetwe implement the llseek syscall in terms of lseek. Correct a bugwhich meant we were silently casting the result of host lseek()...
hw/irq: Add qemu_irq_split() so one GPIO output can feed two inputs
Add a qemu_irq_split() function which allows a board to wire a singleGPIO output up to two GPIO inputs. This is needed for realview boards,where the MMC card status is visible both in a system register and...
hw/realview: Wire up the MMC card status
Instantiate the three PL061 GPIO modules the realview boards have.Connect the MMC card status outputs of the PL181 MMC controllerto both the system registers and the GPIO module which handlesinternal devices.
hw/arm_sysctl.c: Wire MCI register MMC card status bits to GPIO inputs
Implement some GPIO inputs which a board can connect up to set theMMC card status bits in the MCI register.
hw/pl061.c: Implement ARM PL061 as well as Luminary one
ARM's PL061 has a different set of ID registers to the one in theLuminary Stellaris; implement this so that the Linux driver canidentify the Realview PBX PL061 correctly.
hw/pl181: Implement GPIO output pins for card status
Add two GPIO output pins to the PL181 model to indicate the cardpresent and readonly status information. On ARM boards these usuallyare reflected in a system register.
lsi53c895a: Update dnad when skipping MSGOUT bytes
Update not only dbc but also dnad when skipping bytes during the MSGOUTphase. Previously only dbc was updated which is probably wrong andcould lead to bogus message codes being read.
Tested on Linux and Windows Server 2003....
WIN32: Add missing include for 'struct timeval', used in vnc.h
Signed-off-by: Herv Poussineau <hpoussin@reactos.org>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
hw/pcnet.c: Fix EPROM contents to suit AMD netware drivers
bugfix under DOS for AMD netware driver:AMD PCNTNW Ethernet MLID v3.10 (960115), network card not found
bugfix works well under DOS with:1.) AMD NDIS driver v2.0.12.) AMD PCNTNW Ethernet MLID v3.10 (960115)...
net: fix qemu_can_send_packet logic
If any of the clients is not ready to receive (ie it has a can_receivecallback and can_receive() returns false), we don't want to startsending, else this client may miss/discard the packet.
I got this behaviour with the following setup :...
net: fix trace when debug is activated in slirp
make the code compile correctly when DEBUG is activated.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
linux-user: fix compile failure if !CONFIG_USE_GUEST_BASE
If CONFIG_USE_GUEST_BASE is not defined, gcc complains: linux-user/mmap.c:235: error: comparison of unsigned expression >= 0 is always true
because RESERVED_VA is #defined to 0. Since mmap_find_vma_reserved()...
virtio-net: Fix lduw_p() pointer argument of wrong size
A pointer to a size_t variable was passed as the void * pointer tolduw_p() in virtio_net_receive(). Instead of acting on the 16-bit valuethis caused failure on big-endian hosts.
Avoid this issue in the future by using stw_p() instead. In general we...
target-sh4: move intr_at_halt out of cpu_halted()
All targets except SH4 have the same cpu_halted() routine, and it hasonly one caller. It is therefore a good candidate for inlining.
The difference is the handling of the intr_at_halt, which is necessary...
pxa2xx: port pxa2xx_rtc to using qdev/vmstate
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
pxa2xx_dma: Get rid of a forward declaration.
pxa2xx_dma: port to qdev/vmstate
vmstate: move VMSTATE_PCIE_AER_ERRS to hw/hw.h
VMSTATE_PCIE_AER_ERRS is indeed useful for other emulation drivers.Move it to hw/hw.h under the name of VMSTATE_STRUCT_VARRAY_POINTER_UINT16.Also add VMSTATE_STRUCT_VARRAY_POINTER_INT32 which is more or less...
pxa2xx_dma: drop unused pxa2xx_dma_handler_t/handler field
pxa2xx_timer: Store relevant irq line in each timer.
pxa2xx_timer: switch to using qdev/vmstate
pxa2xx_timer: change info struct name to comply with guidelines
It should be PXA2xxTimerInfo, not pxa2xx_timer_info. Replace alloccurences of old name with the new one.
pxa2xx_pic: Set base address for sysbus device.
Thid device's registration was broken sincee1f8c729fa890c67bb4532f22c22ace6fb0e1aaf, this should fix it.
vmstate: add VMSTATE_STRUCT_ARRAY_TEST
This is a _TEST variant of VMSTATE_STRUCT_ARRAY, necessary e.g.for future patch changing pxa2xx_timer to use vmstate.
microblaze: Correct copy+paste:o in defconfigs
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
HACKING: Update status of format checking
Hopefully all functions with printf like arguments now use format checking.
This was tested with default build configuration on linuxand windows hosts (including some cross compilations),so chances are good that there remain few (if any) functions...
vnc: fix a memory leak in threaded vnc server
VncJobQueue's buffer is intended to be used foras the output buffer for all operations in this queue,but unfortunatly.
vnc_async_encoding_start() is in charge of setting thisbuffer as the current output buffer, but...
Use sigwait instead of sigwaitinfo.
Fix compilation failure on Darwin.
Signed-off-by: Tristan Gingold <gingold@adacore.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
bitops: fix error on OpenBSD and mingw32
Fix this error: CC bitops.oIn file included from /src/qemu/bitops.c:14:/src/qemu/bitops.h:69: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unsigned'
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
bitops: fix test_and_change_bit()
./bitops.h:192: warning: ‘old’ is used uninitialized in this function
Signed-off-by: Corentin Chary <corentincj@iksaif.net>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
slirp: Remove some type casts caused by bad declaration of x.tp_buf
x.tp_buf was declared as a uint8_t array, but always used asa char array (which needed a lot of type casts).
The patch includes these changes:
Fixing tap adapter for win32
This fix allows connection of internal VLAN to the external TAP interface.If tap_win32_write function always returns 0, the TAP network interfacein QEMU is disabled.
Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@gmail.com>...
Fixing network over sockets implementation for win32
MSDN includes the following in WSAEALREADY error description for connect()function: "To preserve backward compatibility, this error is reported asWSAEINVAL to Winsock applications that link to either Winsock.dll or...
pxa2xx_pic: update to use qdev
Use qdev/sysbus framework to handle pxa2xx-pic. Instead of exposing IRQsvia array, reference them via qdev_get_gpio_in().
Patch has been modified by the committer.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>...
mst_fpga: correct irq level settings
Final corrections for IRQ levels that are set by mst_fpga:
Add TAGS and *~ to .gitignore
Add the etags output generated by "make TAGS" and editor backup filesto .gitignore.
This patch has previously appeared in my series of patches to addpSeries emulation support. However, it obviously has no realconnection to that, and can be applied seperately....
virtio-serial: kill VirtIOSerialDevice
VirtIOSerialDevice is like VirtIOSerialPort with just the first twofields, which makes it pretty pointless. Using VirtIOSerialPortdirectly works equally well and is less confusing.
[Amit: - rebase - rename 'dev' to 'port' in function params in virtio-serial.h ]...
ui/vnc-enc-tight.c: Fix compile failure if CONFIG_VNC_JPEG not defined
Add some missing #ifdefs to fix compilation failures in the !CONFIG_VNC_JPEGcase introduced by commit ce702e93.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/sd.c: Add missing state change for SD_STATUS, SEND_NUM_WR_BLOCKS
The SD_STATUS and SEND_NUM_WR_BLOCKS commands are supposed to causethe card to send data back to the host. However sd.c was missing thestate change to sd_sendingdata_state for these commands, with the effect...
softfloat: move all default NaN definitions to softfloat.h.
These special values are needed to implement some helper functions,which return/use these values in some cases.
Signed-off-by: Christophe Lyon <christophe.lyon@st.com>Reviewed-by: Peter Maydell <peter.maydell@linaro.org>...
softfloat: add _set_sign(), _infinity and _half for 32 and 64 bits floats.
These constants and utility function are needed to implement somehelpers. Defining constants avoids the need to re-compute them atruntime.
Signed-off-by: Christophe Lyon <christophe.lyon@st.com>...
target-arm: Introduce float64_256 and float64_512 constants.
These two constants will be used by helper functions such as recpe_f32and rsqrte_f32.
target-arm: fix support for VRECPE.
Now use the same algorithm as described in the ARM ARM.
Signed-off-by: Christophe Lyon <christophe.lyon@st.com>Reviewed-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-arm: fix support for VRSQRTE.
vnc: fix lossy rect refreshing
The for loop in send_lossy_rect was totally wrong, and we can'tcall vnc_set_bits() because it does not really do what it should.Use vnc_set_bit() directly instead.
Signed-off-by: Corentin Chary <corentincj@iksaif.net>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
bitmap: add a generic bitmap and bitops library
Add most used bitmap and bitops functions into bitmap.c and bitops.c.Theses functions are mostly copied from Linux kernel source.
Some of these functions are already redefined in the VNC server. Someof them could be used for some block stuff. The yet yo be submitted...
vnc: use the new generic bitmap functions
Switch to bitmap.h and bitops.h instead of redefining our own bitmaphelpers.
vnc: don't try to send bigger updates that client height
Respect client size if it doesn't not support desktop resizing.
vnc: tight: tweak adaptive tight settings
The force_jpeg threshold was too low.
vnc: add a non-adaptive option
This option allow to disable adaptive behaviors in some encodings.
vnc: Fix fatal crash with vnc reverse mode
Reverse mode is unusable:
qemu -vnc localhost:5500,reverse
crashes in vnc_refresh_server_surface because some pointers are NULL.
Fix this by calling vnc_dpy_resize (which initializes these pointers)before calling vnc_refresh....
vnc: don't set the quality if lossy encoding are disabled
This should not change the current behavior, but if any newencoding try to use the tight quality, it will always be setto -1 when lossy encodings are disabled.
Signed-off-by: Corentin Chary <corentincj@iksaif.net>...
vnc: add a way to get the update frequency for a given region
This patch compute the update frequency (in Hz) for each 64x64 rects.Any adaptive encoding can get this value using vnc_update_freq(), andswitch to a lossy encoding if the value is too high....
vnc: refresh lossy rect after a given timeout
If an adaptive encoding has choosen to send a lossy updatebased on the result of vnc_update_freq(), then it should advertiseit with vnc_sent_lossy_rect(). This will allow to automatically refreshthis rect once it's static again....
vnc: tight: use the update frequency to choose between lossy and lossless
Use the new update frequency infrastructure to use jpeg for regions withhigh update frequency.
vnc: palette: use a pool to reduce memory allocations
We now that the palette will never have more than 256elements. Let's use a pool to reduce malloc calls.
vnc: palette: add palette_init calls
This allow to use palette on the stack instead of alwaysallocating them.
vnc: palette: and fill and color calls.
These two helpers are needed for zrle and zywrle.
vnc: Add ZRLE and ZYWRLE encodings.
Add ZRLE [1] and ZYWRLE [2] encodings. The code is inspire^W stolenfrom libvncserver (again), but have been rewriten to match QEMU codingstyle.
[1] http://www.realvnc.com/docs/rfbproto.pdf[2] http://micro-vnc.jp/research/remote_desktop_ng/ZYWRLE/publications/...
vnc: fix uint8_t comparisons with negative values
pls3adsp1800: Base load_elf endianness on target endianness
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
microblaze: Allow targeting little-endian mb
do not use qemu_icount_delta in the !use_icount case
The !use_icount code is the same for iothread and non-iothread,except that the timeout is different. Since the timeout might aswell be infinite and is only masking bugs, use the higher value.With this change the !use_icount code is handled equivalently...