hw/vexpress.c: Make motherboard peripheral memory map table-driven
Pull the addresses used for mapping motherboard peripherals intomemory out into a table. This will allow us to simply provide asecond table to implement the "Cortex-A Series" memory map used by...
hw/a15mpcore.c: Add Cortex-A15 private peripheral model
Add a model of the Cortex-A15 memory mapped private peripheralspace. This is fairly simple because the only memory mappedbit of the A15 is the GIC.
Note that we don't currently model a VGIC and therefore don't...
Exynos4210: added display controller implementation
Exynos4210 display controller (FIMD) has 5 hardware windows with alpha andchroma key blending functions.
Signed-off-by: Mitsyanko Igor <i.mitsyanko@samsung.com>Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com>...
hw/exynos4210.c: Add LAN support for SMDKC210.
SMDKC210 uses lan9215 chip, but lan9118 in 16-bit mode seems tobe enough.
Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com>Reviewed-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/lan9118: Add basic 16-bit mode support.
ARM: exynos4210: MCT support.
Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com>Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
ARM: exynos4210: basic Power Management Unit implementation
Patch adds basic model for Exynos4210 SoC PMU.This model implements PMU registers just as a bulk of memory. Currently,the only reason this device exists is that secondary CPU boot loaderuses PMU INFORM5 register as a holding pen....
ARM: exynos4210: PWM support.
ARM: exynos4210: UART support
Add basic support of exynos4210 UART
Signed-off-by: Maksim Kozlov <m.kozlov@samsung.com>Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com>Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
ARM: Samsung exynos4210-based boards emulation
Add initial support of NURI and SMDKC210 boards
ARM: exynos4210: IRQ subsystem support.
hw/arm: Remove redundant arguments from set_kernel_args*
The parameters initrd_size and base are already includedin the info parameter, so there is no need to pass themseparately.
Signed-off-by: Stefan Weil <sw@weilnetz.de>Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>,
pxa2xx_lcd: SRAM is valid location for the framebuffer
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
nseries: attach monitor powerdown request to menelaus
I noticed some unused code in the twl92230, probably from beforeqdev-ification. This patch makes the machine use the chip's pwrbtnsignal.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
Merge remote-tracking branch 'qemu-kvm/uq/master' into staging
Merge remote-tracking branch 'kraxel/usb.38' into staging
Merge remote-tracking branch 'kwolf/for-anthony' into staging
qom: Unify type registration
Replace device_init() with generalized type_init().
While at it, unify naming convention: type_init([$prefix_]register_types)Also, type_init() is a function, so add preceding blank line wherenecessary and don't put a semicolon after the closing brace....
device_add: don't add a /peripheral link until init is complete
Otherwise we end up with a dangling reference which causes qdev_free() to fail.
Reported-by: Michael Tsirkin <mst@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qdev: print error message before aborting
qdev_prop_set_* functions are always called by machine init functionsthat should know what they're doing, so they abort on error. Still,an assert(!errp) does not aid debugging. Print an error before aborting....
qdev: allow setting properties to NULL
SPARC and PPC set properties to NULL. This can be done with anempty string value.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
cfi02: Fix lazy ROMD switching - once again
The conversion to memory regions broke lazy ROMD switching by forgettingto update the rom_mode state variable.
Signed-off-by: Jan Kiszka <jan.kiszka@web.de>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
vga: Fix full updates in graphic mode
This fixes the regression introduced by cd7a45c95e: We lost the or'ingwith the full_update flag.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Fix memory dirty getting API change fallout
Fix confusion in length calculation in commitcd7a45c95ecf2404810f3c6becb7cb83c5010ad8.
Reported-by: Jan Kiszka <jan.kiszka@web.de>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
xhci: kill port arg from xhci_setup_packet
Unused argument, remove it.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
xhci: remote wakeup support
xhci: handle USB_RET_NAK
Add a field to XHCITransfer to correctly keep track of NAK'ed usbpackets. Retry transfers when the endpoint is kicked again. Implementwakeup_endpoint bus op so we can kick the endpoint when needed.
With this patch applied the emulated hid devices are working correctly...
usb: pass USBEndpoint to usb_wakeup
Devices must specify which endpoint has data to transfer now.The plan is to use the usb_wakeup() not only for remove wakeup support,but for "data ready" signaling in general, so we can move away fromconstant polling to event driven usb device emulation....
usb: add USBBusOps->wakeup_endpoint
Add usb bus op which is called whenever a usb endpoint becomes ready,so the host adapter emulation can react on that event.
xhci: signal low- and fullspeed support
xhci: add trb type name lookup support.
When logging TRBs add a the type name for more readable debug output.
xhci: stop on errors
When some error happened we'll have to stop processing the endpoint.
usb: maintain async packet list per endpoint
Maintain a list of async packets per endpoint. With the current codethe list will never receive more than a single item. I think you canguess what the future plan is though ;)
usb-hub: implement find_device
Implement the find_device callback for the usb hub. It'll loop over allports, calling usb_find_device for all enabled ports until it finds amatching device.
usb: handle dev == NULL in usb_handle_packet()
Allow passing in a NULL pointer, return USB_RET_NODEV in that case.Removes the burden to to a NULL pointer check from the callers.
usb-uhci: switch to usb_find_device()
Switch over UHCI to use the new usb_find_device()function for device lookup.
usb-ehci: switch to usb_find_device()
Switch over EHCI to use the new usb_find_device()function for device lookup.
usb-ohci: switch to usb_find_device()
Switch over OHCI to use the new usb_find_device()function for device lookup.
usb-musb: switch to usb_find_device()
Switch over musb to use the new usb_find_device()function for device lookup.
usb-xhci: switch to usb_find_device()
Switch over xHCI to use the new usb_find_device()function for device lookup.
usb: kill handle_packet callback
All drivers except usb-hub use usb_generic_handle_packet. The onlyreason the usb hub has its own function is that it used to be calledwith packets which are intended for downstream devices. With the new,separate device lookup step this doesn't happen any more, so the need...
usb: fold usb_generic_handle_packet into usb_handle_packet
There is no reason to have a separate usb_generic_handle_packet functionany more, fold it into usb_handle_packet(). Also call the do_token_*functions which handle control transfer emulation for control pipe...
usb: USBPacket: add status, rename owner -> ep
Add enum to track the status of USBPackets, use that instead of theowner pointer to figure whenever a usb packet is currently in flightor not. Add some more packet status sanity checks. Also rename theUSBEndpoint pointer from "owner" to "ep"....
usb: add USBEndpoint->{nr,pid}
Add a "nr" and "pid" fields to USBEndpoint so you can easily figure theendpoint number and direction of any given endpoint.
usb: Set USBEndpoint in usb_packet_setup().
With the separation of the device lookup (via usb_find_device) andpacket processing we can lookup device and endpoint before setting upthe usb packet. So we can initialize USBPacket->ep early and keep itvalid for the whole lifecycle of the USBPacket. Also the devaddr and...
usb: add usb_find_device()
Add usb_find_device(). This function will check whenever a device witha specific address is connected to the specified port. Usually thiswill just check state and address of the device hooked up to the port,but in case of a hub it will ask the hub to check all hub ports for a...
usb-ehci: Clear the portstatus powner bit on device disconnect
According to the EHCI spec port ownership should revert to the EHCI controlleron device disconnect. This fixes the problem of a port getting stuck on USB 1when using redirection and plugging in a USB 2 device after a USB 1 device...
usb: kill USB_MSG_{ATTACH,DETACH}
The USB subsystem pipes internal attach/detach notifications throughusb_handle_packet() with a special magic PID. This indirection is apretty pointless excercise as it ends up being handled byusb_generic_handle_packet anyway. Remove it....
usb: kill USB_MSG_RESET
The USB subsystem pipes internal reset notifications throughusb_handle_packet() with a special magic PID. This indirectionis a pretty pointless excercise as it ends up being handled byusb_generic_handle_packet anyway.
Replace the USB_MSG_RESET with a usb_device_reset() function...
usb: kill usb_send_msg
No users left. Zap it.
usb-uhci: implement bandwidth management
The OS is allowed to make the UHCI Controller run in circles. That isusually done to serve multiple connected USB devices in a robin-roundfashion, so the available USB bandwidth is evenly distributed betweendevices....
AHCI: Fix port reset race
bdrv_aio_cancel() can trigger bdrv_aio_flush() which makes all aiothat is currently in flight finish. So what we do is:
port reset detect ncq in flight cancel ncq delete ncq sg list
at which point we have double freed the sg list. Instead, with this...
AHCI: Masking of IRQs actually masks them
When masking IRQ lines, we should actually mask them out and not declarethem active anymore. Once we mask them in again, they are allowed to triggeragain.
Signed-off-by: Alexander Graf <agraf@suse.de>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
ARM devboards: Set arm_sysctl properties before init, not after
The ARM devboard models (vexpress-a9, realview, versatilepb, etc)were accidentally trying to set one of the arm_sysctl propertiesafter device init. This has now become a fatal error; set the property...
apic: Fix legacy vmstate loading for KVM
Also in case of loading pre-vmstate machines, we also need to open-codethe reading of the timer expires value and instead call the post_loadcallback to apply it (or not). This fixes loading of legacy states into...
kvm: Implement kvm_irqchip_in_kernel like kvm_enabled
To both avoid that kvm_irqchip_in_kernel always has to be paired withkvm_enabled and that the former ends up in a function call, implement itlike the latter. This means keeping the state in a global variable and...
Merge remote-tracking branch 'bonzini/qdev-props-for-anthony' into staging
Merge remote-tracking branch 'aneesh/for-upstream' into staging
Restore consistent formatting
Signed-off-by: malc <av1474@comtv.ru>
qdev: let QOM free properties
Drop the special free callback. Instead, register a "regular" release method in the non-legacy property.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
qdev: fix off-by-one
Integer properties did not work.
qdev: access properties via QOM
Do not poke anymore in the struct when accessing qdev properties.Instead, ask the object to set the right value.
qdev: inline qdev_prop_set into qdev_prop_set_ptr
qdev_prop_set is not needed anymore except for hacks, simplify it andinline it.
qdev: initialize properties via QOM
Similarly, use the object properties also to set the defaultvalues of the qdev properties. This requires reorderingregistration and initialization.
qdev: remove unused fields from PropertyInfo
qdev: remove direct calls to print/parse
There's no need to call into ->parse and ->print manually. TheQOM legacy properties do that for us.
Furthermore, in some cases legacy and static properties have exactlythe same behavior, and we could drop the legacy properties right away....
qdev: allow reusing get/set for legacy property
In some cases, a legacy property does need a special print methodbut not a special parse method. In this case, we can reuse the get/setfrom the static (non-legacy) property.
If neither parse nor print is needed, though, do not register the...
qdev: remove parse method for string properties
We need the print method to put double quotes, but parsing is not special.
qdev: remove print/parse methods from LostTickPolicy properties
Also generalize the code so that we can have more enum propertiesin the future.
qdev: remove parse/print methods for mac properties
qdev: make the non-legacy pci address property accept an integer
PCI addresses are set with qdev_prop_uint32. Thus we make the QOMproperty accept a device and function encoded in an 8-bit integer,instead of the magic dd.f hex string.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>...
qdev: remove parse/print methods for pointer properties
Pointer properties (except for PROP_PTR of course) should not need alegacy counterpart. In the future, relative paths will ensure thatQEMU will support the same syntax as now for drives etc..
s390x: fix qom-ification fall-out
Tested-by: Andreas Faerber <afaerber@suse.de>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
KVM: Fix breakages of QOM conversion
KVM APIC and PIC require instance sizes.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
memory: change dirty getting API to take a size
Instead of each device knowing or guessing the guest page size,just pass the desired size of dirtied memory area.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
vga: move Cirrus VGA template to its own file
Standard VGA does not use vga_draw_cursor_line_* functions.Move the template to cirrus_vga_template.h.
Add vga.h unmodified from Linux
vga.h: remove unused stuff and reformat
vga: use constants from vga.h
vga: improve documentation
Add links to chipset docs and FreeVGA site.
qdev: split out common init to instance_init
This gets us closer to being able to object_new() a qdev type and have afunctioning object verses having to call qdev_create().
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qdev: refactor away qdev_create_from_info
Note that the FIXME gets fixed in series 4/4. We need to convert BusState toQOM before we can make parent_bus a link.
qdev: split out UI portions into a new function
qdev-monitor.c deals with the -device, device_add, and info qdm/qtreeinterfaces.
qdev: nuke qdev_init_chardev()
I'm sure the intentions were good here, but there's no reason this should be inqdev. Move it to qemu-char where it belongs.
qom: move properties from qdev to object
This is mostly code movement although not entirely. This makes properties partof the Object base class which means that we can now start using Object in ameaningful way outside of qdev.
qdev: implement cleanup logic in finalize
info qdm: do not require a parent_bus to be set
container: make a decendent of Object
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>---v1 -> v2 - Add license (Paolo)
qdev: remove baked in notion of aliases (v2)
Limit them to the device_add functionality. Device aliases were a hack basedon the fact that virtio was modeled the wrong way. The mechanism for aliasingis very limited in that only one alias can exist for any device....
qdev: kill off DeviceInfo list
Teach the various bits of code that need to walk through available devices todo so via QOM.
Signed-off-by: Anthony Liguori
qdev: register all types natively through QEMU Object Model
This was done in a mostly automated fashion. I did it in three steps and thenrebased it into a single step which avoids repeatedly touching every file inthe tree.
The first step was a sed-based addition of the parent type to the subclass...
qdev: kill off DeviceInfo
It is no longer used in the tree since everything is done natively throughQEMU Object Model.
qdev: remove info from class
Now DeviceInfo is no longer used after object construction. All of therelevant members have been moved to DeviceClass.
qdev: allow classes to overload qdev functions
This allows us to drop per-Device registration functions by allowing theclass_init functions to overload qdev methods.
qdev: refactor device creation to allow bus_info to be set only in class
As we use class_init to set class members, DeviceInfo no longer holds thisinformation.
qdev: make DeviceInfo private
Introduce accessors and remove any code that directly accesses DeviceInfomembers.
usb-hid: simplify class initialization a bit
We can probably model USBHidDevice as a base class to get even better codesharing but for now, just use a common function to initialize the common classmembers.
usb: separate out legacy usb registration from type registration
Type registeration is going to get turned into a QOM call so decouple thelegacy support.
hw/vmmouse.c: Disable vmmouse after reboot
Bugfix after reboot when vmmouse was enabled and another OS which uses e.g. PS/2mouse.
Details:When a guest activated the vmmouse followed by a reboot the vmmouse was stillenabled and the PS/2 mouse was therefore unsusable. When another guest is then...
mc146818rtc: Use lost_tick_policy property
Allow to configure the MC146818 RTC via the new lost tick policyproperty and replace rtc_td_hack with this mechanism.